پراکسی در Next.js به شما اجازه میدهد قبل از تکمیل درخواست، منطق دلخواه اجرا کنید. میتوانید درخواست ورودی را بررسی کرده و پاسخ را با ریدایرکت، بازنویسی مسیر، تغییر هدرها یا پاسخ مستقیم تغییر دهید. این قابلیت برای کنترل مسیر، تست A/B و مدیریت هدرها بسیار مفید است.
پراکسی برای موارد زیر مناسب نیست:
نکته: استفاده از fetch با گزینههای cache، next.revalidate یا next.tags در پراکسی بیاثر است.
فایل proxy.ts را در ریشهٔ پروژه یا داخل پوشهٔ src ایجاد کنید (در کنار پوشههای pages یا app). فقط یک فایل پراکسی در هر پروژه پشتیبانی میشود.
برای سازماندهی بهتر، میتوانید منطق پراکسی را در فایلهای جداگانه بنویسید و در proxy.ts وارد کنید. این کار باعث تمرکز کنترل و جلوگیری از تداخل لایههای پراکسی میشود.
// proxy.ts
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'
export function proxy(request: NextRequest) {
return NextResponse.redirect(new URL('/home', request.url))
}
export const config = {
matcher: '/about/:path*',
}در این مثال، هر درخواستی به مسیر /about یا زیرمسیرهای آن به /home هدایت میشود. میتوانید matcher را برای مسیرهای دلخواه تنظیم کنید.
ویژگی matcher مشخص میکند پراکسی روی کدام مسیرها اعمال شود. میتوانید از الگوهایی مانند :path* برای پوشش مسیرهای تو در تو استفاده کنید.
پراکسی در Next.js ابزاری قدرتمند برای کنترل سطح پایین درخواستهاست. چه بخواهید کاربران را ریدایرکت کنید، مسیرها را بازنویسی کنید یا هدرها را تغییر دهید، فایل proxy.ts امکان مدیریت متمرکز و سریع را فراهم میکند.