Proxy Headers
وقتی یک record proxied است، انسین به requestی که به origin شما میفرستد HTTP headerهایی اضافه میکند، و چند تای دیگر هم به response. آنها را بخوانید تا بازدیدکننده واقعی، موقعیتش، و یک request id برای troubleshooting را بازیابی کنید.
همه headerهای انسین از prefix Nsn-* استفاده میکنند.
Headerهای اضافهشده به request (انسین → origin شما)
Section titled “Headerهای اضافهشده به request (انسین → origin شما)”| دسته | Header | مثال | معنی |
|---|---|---|---|
| IP بازدیدکننده | Nsn-Connecting-IP | 203.0.113.10 | IP واقعی بازدیدکننده. برای شناسایی client از این استفاده کنید. |
| IP بازدیدکننده | X-Forwarded-For | 203.0.113.10, 198.51.100.1 | زنجیره استاندارد proxy؛ بازدیدکننده اولین entry است. |
| IP بازدیدکننده | X-Real-IP | 203.0.113.10 | IP بازدیدکننده (یک مقدار). |
| IP بازدیدکننده | Forwarded | for="203.0.113.10";host="...";proto=https | فرم ساختاریافته RFC 7239. |
| Protocol و host | X-Forwarded-Proto | https | protocolی که بازدیدکننده استفاده کرد. برای اجبار HTTPS / ساخت URL مطلق از آن استفاده کنید. |
| Protocol و host | X-Forwarded-Host | app.example.com | hostnameی که بازدیدکننده درخواست کرد. |
| Protocol و host | X-Forwarded-Port | 443 | portی که بازدیدکننده به آن وصل شد. |
| Geolocation | Nsn-Country | NL | کد کشور دو حرفی ISO. XX وقتی نامشخص است. |
| Geolocation | Nsn-Continent | EU | کد قاره (AF، AS، EU، NA، OC، SA، AN). وقتی نامشخص است حذف میشود. |
| Tracing | Nsn-Ray | 8e9c123456789abc | شناسه یکتای request. برای ردیابی یک request بین سیستمها آن را log کنید. |
| Tracing | Nsn-Edge | EDGES | PoP (edge) انسین که request را handle کرد. |
| Tracing | CDN-Loop | nsin | نشانگر جلوگیری از loop (RFC 8586). requestی که دوباره وارد edge انسین شود و از قبل nsin را حمل کند رد میشود — origin خودتان را دوباره به انسین اشاره ندهید. |
Nsn-Connecting-IP را ترجیح دهید: برخلاف خانواده X-Forwarded-*، یک proxy دیگر
جلوی origin شما نمیتواند آن را با مقدار خودش overwrite کند.
Header بالادستی Host همان hostnameی است که بازدیدکننده درخواست کرده (مثلاً
api.example.com برای یک record wildcard، نه *)، مگر اینکه روی آن record یک
Host Header Override تنظیم کرده باشید.
Geolocation بهترینتلاش و وابسته به شبکه است. شهر، منطقه، کد پستی، مختصات، یا timezone ندارد.
Headerهای اضافهشده به response (انسین → بازدیدکننده)
Section titled “Headerهای اضافهشده به response (انسین → بازدیدکننده)”| Header | مثال | معنی |
|---|---|---|
Nsn-Ray | 8e9c123456789abc | همان request id بالا، برای support/debugging به بازدیدکننده برگردانده میشود. |
Nsn-Edge | EDGES | PoP انسین که request را serve کرد. |
Nsn-Cache-Status | HIT | cache چطور با request برخورد کرد. |
Nsn-Cache-Rule | default | وقتی request توسط static caching پیشفرض انسین handle شده، نه یکی از cache ruleهای شما، حاضر است؛ Nsn-Cache-Status باز هم میگوید HIT، MISS یا BYPASS بود. |
Server | NSIN | edge انسین را شناسایی میکند. |
مقادیر Nsn-Cache-Status:
| مقدار | معنی |
|---|---|
HIT | از cache انسین serve شد؛ با origin شما تماسی گرفته نشد. |
MISS | در cache نبود؛ از origin شما گرفته شد (و ممکن است حالا cache شده باشد). |
BYPASS | cache عمداً رد شد (مثلاً بهخاطر cookie، authorization، یا یک cache rule). |
DYNAMIC | قابل cache نیست — مستقیم از origin serve شد. |
خواندن IP واقعی بازدیدکننده
Section titled “خواندن IP واقعی بازدیدکننده”framework یا reverse proxy خودتان را به header connecting-IP اشاره دهید. nginx:
real_ip_header Nsn-Connecting-IP;# set_real_ip_from <nsin edge IPs>; # فقط به این header از سمت انسین اعتماد کنیدهمچنین Domain Modes را برای proxied در برابر DNS-only و Security Headers را برای headerهای اختیاری پاسخ که میتوانید برای هر domain فعال کنید ببینید.