نسخه سبک، امن و کمهزینه XHTTP Relay برای Vercel
داستان این نسخه چیه؟
🟥 این نسخه برای این ساخته شده که دیپلوی روی Vercel تمیزتر، کمهزینهتر و قابلمدیریتتر بشه. الان دو مسیر اصلی داری: Rewrite mode برای کمترین هزینه و بدون Function، و Node mode برای وقتی که کنترل کاملتر، لاگ، throttle و ظرفیت بالاتر میخوای.
📣 جهت دریافت اطلاعات و نکات بیشتر به کانال تلگرامی من مراجعه کنید: B3hnamR@. 📌 نکته مهم: لطفاً این راهنما رو تا انتها و با دقت بخونید تا موقع ستاپ کردن هیچ مشکلی براتون پیش نیاد.
🔒 برای ساخت اکانت، مطالعه این آموزش کاملاً ضروری است: Anti-Ban-Tutorial.md
توجه خیلی مهم: این پروژه بهخودیخود هیچ تاثیری در بن شدن اکانت ندارد؛ عامل بن فقط فرآیند ساخت اکانت است و این موضوع 100% تست شده.
توجه خیلی مهم: با ساخت رایگان اکانت پرو ترایال میتونید استفاده کنید ❤️
⚠️ هشدار خیلی مهم رفقا لطفا پروژه رو به هیچوجه Fork نکنید. برای اینکه اکانتتون امن بمونه و شبکهتون شناسایی نشه، از بالای همین صفحه روی دکمه سبز Code کلیک کنید، بعد Download ZIP رو بزنید و حتماً برای دیپلوی از اینستالر ویندوزی پروژه استفاده کنید.
- 🔥 مود پیشنهادی جدید:
FAST_PIPE_LEGACYمسیر پیشفرض Fast Pipe است؛ سریع، سبک، بدون Function Runtime و معمولاً سازگارتر برای اپهایی مثل Instagram و YouTube. - 🧠 Node mode برای کنترل کامل: اگر throttle، timeout، log و ظرفیت قابلتنظیم میخوای، دو پروفایل Node آماده و یک حالت Custom داری.
- 🔐 توکنمحور شدن اتصال به Vercel: اسکریپت پروژهها رو با Token/API میخونه، نه از روی لینک قدیمی پوشه
.vercel. - 🧹 بازسازی لینک لوکال: اگر فولدر قبلاً دیپلوی داشته باشه، اسکریپت لینک محلی رو از روی پروژه انتخابشده دوباره میسازه تا اشتباهی روی پروژه قبلی نره.
- 🧾 ENV Editor واقعی: میتونی پروژه رو انتخاب کنی، ENVهای فعلی رو ببینی، چند مقدار رو تغییر بدی و آخرش یک Confirm بزنی تا Redeploy انجام بشه.
- 🌍 Region چندتایی برای Node: میتونی یک یا چند Function Region انتخاب کنی؛ مثل
arn1,fra1. - ⚙️ Custom Build کامل: Fluid Compute، Function CPU، Function Regions، Max Duration، timeout، throttle و log control قابل تنظیم دستی هستند.
- 🧪 Health/Smoke سادهتر: متن تستها برای کاربر عادی قابلفهمتر شده؛ مخصوصاً خطاهای 400/404/500.
- 📡 لاگهای قابلفهم: لاگها و Live Logs الان خلاصه وضعیت، معنی خطا و قدم بعدی رو نشون میدن.
- 🛣️ لندینگ استاتیک خودکار: موقع Build یک Frontend استاتیک ساخته میشه تا دامنه فقط API-محور دیده نشه.
این حالت پیشنهادی برای شروعه و داخل اینستالر دو مدل دارد:
FAST PIPE LEGACY: مدل پیشنهادی با/path/(.*)و$1برای سازگاری بیشتر.FAST PIPE MODERN: مدل رسمیتر Vercel با/path/:path*.
در این مدل Vercel فقط Rewrite انجام میده؛ یعنی درخواست از Edge ورسل رد میشه و مستقیم به TARGET_DOMAIN فوروارد میشه. اینجا کد Node پروژه اجرا نمیشود، پس دیتایی که میاد و میره عملاً بدون پردازش، بدون throttle و بدون کنترل نرمافزاری از سمت ما عبور میکنه.
خیلی سادهتر بگم: Rewrite مثل یک مسیر عبوریه. ورسل درخواست رو میگیره و به مقصد میفرسته؛ ما وسط مسیر نمیتونیم روی حجم، سرعت، تعداد کانکشن، timeout داخلی، لاگ Node یا منطق امنیتی Node کنترل بذاریم. تنها قفل اختیاری این مود همون شرط هدر x-relay-key داخل قانون Rewrite است، نه داخل کد Node.
در نتیجه در Rewrite mode:
- هیچ ENV روی Vercel ست نمیشود.
- Fluid Compute نیاز ندارد.
- Function Region نیاز ندارد.
- Function CPU نیاز ندارد.
- Function Max Duration نیاز ندارد.
- لاگ Node/Function ندارد، چون اصلاً Node Function اجرا نمیشود.
- اگر پسورد بذاری، قفل با هدر
x-relay-keyداخلvercel.jsonاعمال میشه. - rewrite فقط روی همان مسیر انتخابی ساخته میشود، نه روی کل سایت. یعنی حالت strict path دارد.
- برای مسیر relay هدرهای
Cache-Control،CDN-Cache-ControlوVercel-CDN-Cache-Controlبا مقدار no-store ست میشوند تا کش/CDN کمتر در مسیر تونل دخالت کند. - محدودیتهایی مثل
MAX_INFLIGHT،MAX_UP_BPS،MAX_DOWN_BPSوUPSTREAM_TIMEOUT_MSروی این مود اعمال نمیشوند. - لاگهای حرفهای و Live Logs اینستالر برای این مود skip میشوند، چون runtime ای وجود ندارد که لاگ تولید کند.
- هزینه Fluid/Function/CPU/Memory برای این مود صفر است.
- مصرفی که ممکنه ببینی مربوط به
Fast Data TransferوEdge Requestsاست، نه Fluid Compute.
در Fast Pipe، هدر پسورد اختیاری است. برای امنیت، مسیر را سخت و رندوم انتخاب کن؛ مثلاً:
/api-b7f39xrelay
همین مسیر باید هم در اینستالر و هم در inbound سرور خارجی یکی باشد.
اگر موقع ساخت Fast Pipe مقدار RELAY_KEY وارد کنی، کلاینت حتماً باید این هدر رو بفرسته:
{
"headers": {
"x-relay-key": "YourPassword"
}
}مسیر در Rewrite mode چطور حساب میشه؟
در Rewrite، همان path که کاربر روی دامنه Vercel میزند به TARGET_DOMAIN هم منتقل میشود. یعنی اگر کلاینت /api بزند، مقصد هم /api را دریافت میکند. پس مسیر کلاینت و مسیر اینباند مقصد را یکی بگیر تا دردسر نداشته باشی.
اگر Instagram/YouTube روی Fast Pipe خوب نبود:
- اول
FAST PIPE LEGACYرا تست کن، چون مدل خامتر rewrite معمولاً برای tunnel سازگاری بهتری دارد. - سمت کلاینت Mux را هم ON با concurrency پایین مثل 4 یا 8 تست کن، هم OFF تست کن. برای ویدئو همیشه Mux بهتر نیست.
- اگر کلاینت heartbeat/keepalive دارد، 15 تا 20 ثانیه را تست کن. مقدار خیلی کم Edge Requests را بالا میبرد.
- روی سرور خارجی BBR را فعال نگه دار.
- MTU مثل 1350 یا 1280 فقط تستی است؛ اگر route موبایل stall دارد ممکنه کمک کند، ولی راهحل قطعی نیست.
این حالت برای زمانی خوبه که کنترل دقیقتر میخوای:
TARGET_DOMAINRELAY_PATHPUBLIC_RELAY_PATHMAX_INFLIGHTMAX_UP_BPSMAX_DOWN_BPSUPSTREAM_TIMEOUT_MS- کنترل لاگها
- Function Region
- Fluid Compute
- Function CPU
- Function Max Duration
در Node mode لاگ و Live Log معنی دارد و ابزارهای دیباگ کاملتر کار میکنند.
تفاوت اصلی Node با Rewrite اینه که اینجا درخواست وارد کد api/index.js میشه. پس پروژه میتونه مسیر رو چک کنه، متدهای اضافه رو ببنده، هدرها رو تمیز کنه، x-relay-key رو داخل کد بررسی کنه، سرعت آپلود/دانلود رو محدود کنه، timeout بذاره، تعداد درخواست همزمان رو کنترل کنه و لاگ قابلفهم تولید کنه.
پس اگر کنترل، محدودیت سرعت، ظرفیت، لاگ و دیباگ میخوای، باید Node mode بزنی. اگر کمترین هزینه و عبور مستقیم میخوای، Rewrite mode مناسبتره.
برای رفقایی که نمیخوان با ترمینال درگیر بشن، دو فایل آماده شده:
Run-Deploy-Windows.batDeploy-Windows.ps1
چطور استفاده کنیم؟
۱. فایل ZIP پروژه رو Extract کن.
۲. فیلترشکن رو روی TUN Mode یا تونل کل سیستم روشن کن.
۳. روی Run-Deploy-Windows.bat دابلکلیک کن.
۴. اگر پرسید Auth Mode، گزینه Token mode رو انتخاب کن.
۵. Token Vercel رو وارد کن.
۶. اگر پروژه موجود داشتی، از لیست انتخاب کن؛ اگر نداشتی، Deploy as NEW project رو بزن.
Token mode چرا پیشنهاد میشه؟
چون اسکریپت پروژهها رو مستقیم از Vercel API میخونه. این یعنی حتی اگر داخل فولدر .vercel از قبل یک لینک قدیمی وجود داشته باشه، اسکریپت نباید کورکورانه از اون استفاده کنه. پروژه از روی Token انتخاب میشه و لینک لوکال بعدش دوباره ساخته میشه.
در Token mode میتونی توکن رو امن داخل همین پوشه ذخیره کنی:
.vercel-token.dpapi
این فایل با DPAPI ویندوز ذخیره میشه و برای همین کاربر/سیستم فعلی قابل استفاده است.
چند کار مهمی که اسکریپت خودش انجام میده:
- اگر
npmیاvercelنصب نباشه، تلاش میکنه نصب/آمادهشون کنه. - پروژهها رو با Token/API میخونه و اگر پروژه موجود باشه، انتخابش میکنی.
- لینک محلی
.vercel/project.jsonرو از روی پروژه انتخابشده بازسازی میکنه. - برای Node mode، ENVهای production رو ست میکنه.
- برای Rewrite mode،
vercel.jsonموقت میسازه و بعد از Deploy برمیگردونه. Vercel Authenticationپروژه رو اگر دسترسی API بده خاموش میکنه تا دامنه عمومی درست باز بشه.- قبل از Deploy، بخشی از metadata مثل
package.jsonوvercel.jsonرو موقت randomize میکنه و بعدش برمیگردونه.
نام داخلی پروفایل: FAST_PIPE_LEGACY
Rewrite (RECOMMENDED / NO FLUID COST / BEST COMPATIBILITY)
بهترین گزینه برای شروع و مخصوصاً برای اپهایی که request زیاد و ریز دارند. سریع و سبک است، Vercel Function مصرف نمیکند، header پسورد لازم ندارد و باید با یک RELAY_PATH سخت/رندوم استفاده شود.
مراحلش ساده است:
۱. Scope رو انتخاب میکنی.
۲. Preset اول یعنی FAST PIPE LEGACY رو انتخاب میکنی.
۳. TARGET_DOMAIN رو وارد میکنی.
۴. RELAY_PATH سخت و رندوم وارد میکنی، مثل /api-b7f39xrelay.
۵. همان path را در inbound سرور خارجی هم میگذاری.
۶. Confirm میکنی و Deploy انجام میشه.
نام داخلی پروفایل: FAST_PIPE_MODERN
Rewrite (NO FLUID COST / OFFICIAL PATH SYNTAX)
این مدل از syntax رسمی Vercel با :path* استفاده میکند. اگر Legacy روی یک مسیر خاص خوب جواب نداد، این مدل را تست کن.
در هر دو Fast Pipe، RELAY_KEY اختیاری است. خالی بگذاری یعنی بدون هدر؛ مقدار بدهی یعنی کلاینت باید x-relay-key را بفرستد.
نام داخلی پروفایل: FAST_PIPE_SIMPLE
Rewrite (SINGLE RULE / NO FLUID COST)
این مدل فقط یک rule با syntax قدیمیتر میسازد:
{ "source": "/api/(.*)", "destination": "https://server:port/api/$1" }در این مدل headerهای no-store، base path جدا، fallback landing و x-relay-key ساخته یا پرسیده نمیشود.
نام داخلی پروفایل: FAST_PIPE_SIMPLE_MODERN
Rewrite (SINGLE RULE / MODERN SYNTAX / NO FLUID COST)
این مدل فقط یک rule با syntax رسمی :path* میسازد:
{ "source": "/api/:path*", "destination": "https://server:port/api/:path*" }در این مدل هم headerهای no-store، base path جدا، fallback landing و x-relay-key ساخته یا پرسیده نمیشود.
نام داخلی پروفایل: BALANCED_LOW_TIMEOUT
Node + Fluid ON برای استفاده متعادل.
MAX_INFLIGHT=256
MAX_UP_BPS=5242880
MAX_DOWN_BPS=5242880
UPSTREAM_TIMEOUT_MS=60000
Function Max Duration=800
Function CPU=standard
نام داخلی پروفایل: MAX_STABILITY_HIGH_CONN
Node + Fluid ON برای ظرفیت اتصال بالاتر.
MAX_INFLIGHT=512
MAX_UP_BPS=10485760
MAX_DOWN_BPS=10485760
UPSTREAM_TIMEOUT_MS=60000
Function Max Duration=800
Function CPU=standard
نام داخلی پروفایل: CUSTOM_BUILD
برای کسی که میخواد همه چیز رو خودش تنظیم کنه.
داخل Custom Build میتونی این موارد رو تعیین کنی:
- Runtime:
nodeیاrewrite - Fluid Compute: روشن یا خاموش
- Function Regions: یک یا چند ریجن
- Function CPU
MAX_INFLIGHTMAX_UP_BPSMAX_DOWN_BPSUPSTREAM_TIMEOUT_MS- Function Max Duration
Function CPU وقتی Fluid روشنه:
Standard: یک vCPU و 2GB MemoryPerformance: دو vCPU و 4GB Memory
Function CPU وقتی Fluid خاموشه:
Basic: حدود 0.6 vCPU و 1GB MemoryStandard: حدود 1 vCPU و 1.7GB MemoryPerformance: حدود 1.7 vCPU و 3GB Memory
ریجنهای آماده داخل اینستالر:
| کد | منطقه | توضیح |
|---|---|---|
cdg1 |
Paris, France | Europe West / eu-west-3 |
arn1 |
Stockholm, Sweden | Europe North / eu-north-1 |
dub1 |
Dublin, Ireland | Europe West / eu-west-1 |
lhr1 |
London, United Kingdom | Europe West / eu-west-2 |
fra1 |
Frankfurt, Germany | Europe Central / eu-central-1 |
iad1 |
Washington, D.C., USA | US East / us-east-1 |
dxb1 |
Dubai, United Arab Emirates | Middle East Central / me-central-1 |
برای چند ریجن، میتونی اینجوری وارد کنی:
arn1,fra1
بعد از اینکه پروژه انتخاب یا ساخته شد، منوی مدیریت میاد:
[1] Select project from Vercel list
[2] Redeploy selected project
[3] Update production ENV vars (choose project + editor)
[4] List recent deployments (selected project)
[5] Deploy as NEW project
[6] Run health + smoke checks
[7] Show readable logs (summary + fixes)
[8] Run load-test lite
[9] ENV drift detector
[10] Profile benchmark runner
[11] Live readable logs (press Q to stop)
[12] View deployment ENV config (full)
[13] Delete Project (choose from list)
[14] Billing / Usage monitor (REST API)
[15] Exit
گزینه 3 دقیقاً چیکار میکنه؟
این گزینه پروژهها رو نشون میده، پروژه رو انتخاب میکنی، ENVهای فعلی production رو میبینی، بعد هر چندتا ENV خواستی انتخاب و مقدار جدید میدی. آخرش با Confirm نهایی تغییرات اعمال میشه و Redeploy میره.
گزینه 7 و 11 برای کدوم مودهاست؟
برای Node mode.
اگر پروژه با یکی از حالتهای FAST_PIPE_REWRITE_* ساخته شده باشه، لاگ و Live Log مربوط به Node وجود نداره و اسکریپت هم درست skip میکنه.
گزینه 14 چیه؟
این گزینه از REST API رسمی Vercel یعنی /v1/billing/charges استفاده میکنه و مصرف اکانت/تیم رو از روی Billing API میخونه. خروجی به شکل ساده نشون داده میشه، مثلاً:
Fast Data Transfer: 23.00 GB / 100 GB | Charge $0.00
Edge Requests: 2.17M / 1M | Charge $0.00
Fluid Active CPU: 18h 55m / 4h | Charge $0.00
برای بعضی ردیفها، Vercel داخل charge row فقط مقدار مصرف و هزینه رو میده، نه سقف پلن رو. برای همین عدد سمت راست مثل 100 GB یا 1M طبق allowance شناختهشده Pro نمایش داده میشه تا کاربر بفهمه نسبت مصرف چقدره.
برای Rewrite mode این گزینه خیلی کاربردیه، چون سریع میفهمی مصرف Fluid/Function واقعاً صفر مونده و فقط Fast Data Transfer / Edge Requests بالا رفته یا نه.
گزینه 13 چطور حذف میکنه؟
Delete Project اول دوباره لیست پروژههای Vercel رو از Token/API میاره. پروژهای که میخوای حذف کنی رو از لیست انتخاب میکنی، بعد برای امنیت باید اول DELETE و بعد نام دقیق پروژه رو تایپ کنی. بعد از حذف، لیست پروژهها دوباره refresh میشه تا بتونی یک پروژه دیگه انتخاب کنی یا Deploy as NEW project بزنی.
اگر Node Runtime استفاده میکنی، ENVهای مهم اینها هستند:
| متغیر | وضعیت | دیفالت هسته | توضیح |
|---|---|---|---|
TARGET_DOMAIN |
🔴 اجباری | - | آدرس سرور مقصد، مثل https://domain.com:443 |
RELAY_PATH |
🔴 اجباری | - | مسیر واقعی اینباند روی سرور خارج، مثل /api |
PUBLIC_RELAY_PATH |
⚪ اختیاری | /api |
مسیر عمومی روی دامنه Vercel |
LANDING_TEMPLATE |
⚪ اختیاری | random | اگر ست بشه، تمپلیت ثابت انتخاب میشه |
AUTO_FRONTEND |
⚪ اختیاری | 1 |
اگر 0 بشه، تولید لندینگ خودکار خاموش میشه |
UPSTREAM_TIMEOUT_MS |
⚪ اختیاری | 25000 |
سقف انتظار برای upstream |
MAX_INFLIGHT |
⚪ اختیاری | 128 |
سقف درخواست همزمان داخل هر instance |
MAX_UP_BPS |
⚪ اختیاری | 2621440 |
سقف آپلود بر حسب byte/sec |
MAX_DOWN_BPS |
⚪ اختیاری | 2621440 |
سقف دانلود بر حسب byte/sec |
SUCCESS_LOG_SAMPLE_RATE |
⚪ اختیاری | 0 |
نرخ نمونهگیری لاگ موفقها |
SUCCESS_LOG_MIN_DURATION_MS |
⚪ اختیاری | 3000 |
فقط موفقهای کندتر از این مقدار لاگ میشن |
ERROR_LOG_MIN_INTERVAL_MS |
⚪ اختیاری | 5000 |
فاصله حداقلی بین لاگ خطاها |
UPSTREAM_DNS_ORDER |
⚪ اختیاری | ipv4first |
ترتیب DNS برای اتصال به upstream |
RELAY_KEY |
⚪ اختیاری | - | اگر دستی ست بشه، کلاینت باید x-relay-key بفرسته |
ℹ️ نکته: در Rewrite mode این ENVها deploy نمیشن و نیاز هم نیستند.
اینستالر بعد از Deploy میتونه چند تست ساده بگیره.
در Node mode:
- Root باید بالا باشد.
- مسیر اشتباه معمولاً باید
404بده. - متد اشتباه معمولاً باید
405بده. - مسیر درست Relay نباید
404باشد. - اگر
400دیدی، همیشه بد نیست؛ ممکنه یعنی مسیر پیدا شده ولی تست خام، فریم واقعی کلاینت نیست. - اگر
500/502/504دیدی، معمولاً مشکل از مقصد، پورت، timeout یا فشار runtime است.
در Rewrite mode:
تستهای عمیق Node skip میشوند، چون Node Function نداریم. اگر برای درخواستهای مرورگری 404 دیدی، الزاماً یعنی کانفیگ خراب نیست؛ ممکنه مقصد به probe ساده جواب 404 بده.
در نسخه جدید، لاگها برای کاربر عادیتر نوشته شدند.
به جای اینکه فقط چیزی مثل این ببینی:
st=500 m=GET path=/api
الان خلاصه میبینی:
- Status چی بوده.
- معنی ساده خطا چیه.
- قدم بعدی چیه.
- آیا مشکل از path، key، timeout، DNS، target server یا ظرفیت است.
نمونه معنیها:
| وضعیت | معنی ساده |
|---|---|
200 |
درخواست موفق بوده |
400 |
مسیر جواب داده ولی probe یا فرمت درخواست کامل نبوده |
403 |
کلید x-relay-key اشتباه یا ارسال نشده |
404 |
Path اشتباه است |
405 |
متد اشتباه است و این معمولاً برای تستها خوبه |
429/503 |
فشار یا تعداد درخواست زیاد است |
500/502/504 |
مشکل سمت مقصد، پورت، timeout یا runtime |
برای دیباگ:
۱. گزینه 7 رو بزن و window مثلاً 5 یا 30 دقیقه بده. ۲. اگر میخوای همزمان تست بزنی، گزینه 11 رو باز کن. ۳. کلاینت رو روشن کن و یک تست اتصال بزن. ۴. اگر Rewrite mode هستی، دنبال Node logs نگرد؛ وجود نداره.
MAX_UP_BPS و MAX_DOWN_BPS بر اساس بایت بر ثانیه هستند.
فرمول:
Mbps × 131072 = bytes/sec
چند مقدار آماده:
| سرعت | مقدار |
|---|---|
| 10 Mbps | 1310720 |
| 20 Mbps | 2621440 |
| 40 Mbps | 5242880 |
| 80 Mbps | 10485760 |
نمونه کلی:
vless://UUID-HERE@vercel.com:443?encryption=none&security=tls&sni=vercel.com&fp=chrome&alpn=h2&insecure=0&allowInsecure=0&type=xhttp&host=YOUR-VERCEL-DOMAIN&path=%2Fapi&mode=auto#XHTTP-ECO
یادت نره:
hostباید دامنه Vercel پروژه خودت باشه.pathباید با مسیر عمومی پروژه یکی باشه.%2Fapiیعنی/api.- اگر Rewrite Secure با پسورد ساختی، در بخش XHTTP Extra هدر
x-relay-keyرو هم وارد کن.
200: همهچی خوبه.400: مسیر جواب داده ولی درخواست تست/کلاینت ممکنه کامل نباشه.403: پسورد یا هدرx-relay-keyاشتباهه.404: مسیر اشتباهه؛RELAY_PATHیا Path کلاینت رو چک کن.405: متد اشتباهه؛ برای بعضی smoke testها طبیعی و خوبه.429: درخواست زیاد در زمان کم.500: ENV یا runtime مشکل دارد، یا کد به تنظیمات لازم نرسیده.502: Relay به سرور مقصد وصل نشده.503: سقف همزمانی یا فشار ترافیک.504: timeout؛ مقصد دیر جواب داده یا در دسترس نیست.
تمپلیتها داخل این مسیر هستند:
templates/landing/
هر Build یک تمپلیت انتخاب میکند و خروجی استاتیک میسازد. اگر LANDING_TEMPLATE ست نکرده باشی، انتخاب بهصورت رندم انجام میشه.
توکنهای قابل جایگزینی داخل تمپلیتها:
{{BUILD_CODE}}
{{PUBLIC_RELAY_PATH}}
{{RELAY_PATH}}
{{GENERATED_AT}}
{{TEMPLATE_NAME}}
بعد از Deploy، اسکریپت یک خلاصه قابل اشتراک از تنظیمات میسازه، مثل:
build-profile-20260507-153950.txt
داخلش اطلاعات حساس مثل مقدار واقعی پسورد نوشته نمیشود؛ فقط مشخص میکند که کلید ست شده یا نه. این فایل برای این خوبه که بعداً بفهمی دقیقاً با چه پروفایلی Deploy کردی.
اگر دنبال کمترین هزینه هستی، اول FAST_PIPE_LEGACY رو تست کن، چون Function Runtime ندارد و ENV/CPU/Duration هم برایش معنی ندارد. اگر syntax رسمیتر Vercel میخواهی، بعدش FAST_PIPE_MODERN را تست کن.
هزینه در Rewrite mode:
در Rewrite mode هیچ Function ای اجرا نمیشود. یعنی:
- Fluid Compute: صفر
- Function CPU: صفر
- Function Memory: صفر
- Function Max Duration: بیمعنی و بدون هزینه
- Observability/Node Logs: عملاً لاگ Node نداری
اما این به معنی «هیچ مصرفی در کل اکانت» نیست. چیزی که ممکنه مصرف بشه اینهاست:
Fast Data TransferEdge Requests
پس اگر جایی در داشبورد Vercel مصرف دیدی، برای Rewrite معمولاً از جنس انتقال دیتا و درخواستهای Edge است، نه Fluid.
اگر Node mode استفاده میکنی، هزینه بیشتر از این بخشها میاد:
- Function Invocations
- Active CPU / Fluid Compute
- Provisioned Memory
- Fast Origin Transfer
- Observability / Logs
برای همین در Node presetها لاگهای موفق محدود شدند و خطاها هم rate-limit دارند تا لاگ بیخودی زیاد نشه.
اگر نمیخوای از اسکریپت ویندوز استفاده کنی:
npm i -g vercel
vercel login
vercel deployبعد داخل Dashboard پروژه، ENVهای Node mode رو ست کن و Redeploy بزن.
برای Rewrite mode پیشنهاد جدی اینه از اسکریپت استفاده کنی، چون vercel.json موقت و مسیرها رو خودش درست میسازه.
باید یادی کنیم از منبع اصلی این حرکت؛ این پروژه در واقع فورک و توسعهیافته از ایدههای ناب و زحمات بچههای کانال تلگرامی Avaco Cloud هست. دم تیم آواکو کلاود گرم که این مسیر رو برای وبگردی آزاد و توسعه ابزارهای اینچنینی باز کردن. حتماً به کانالشون سر بزنید و از محتواشون حمایت کنید! 🤝
اگر این پروژه براتون مفید بود و دوست داشتید از ادامه توسعهاش حمایت کنید، میتونید از آدرسهای زیر استفاده کنید:
Tron (TRX) / USDT (TRC-20):
TTfYReJ7aJEvx4CfwgtY3UV8hJHXTrTwnn
BNB / USDT (BEP-20):
0x25CAc03F80C12FFc30D8264e4b90423AFfA2E6Ac
MIT