رفتن به محتوا
nsin docs

استفاده از یک Gateway

هر gateway یک hostname روی domain خودتان به شما می‌دهد. هر چیزی را که به سرویس اشاره می‌دادید، به‌جایش به آن اشاره دهید.

پنجره How to use در dashboard خطوط دقیق هر gateway را می‌دهد — این صفحه شکل کلی آن‌ها را پوشش می‌دهد. hostname خودتان را جایگزین کنید.

بیشتر SDKها یک base URL می‌گیرند — همه چیزی است که عوض می‌کنید.

import OpenAI from 'openai';
const openai = new OpenAI({
baseURL: 'https://ai-40218.example.ir/v1',
apiKey: process.env.OPENAI_API_KEY,
});
from anthropic import Anthropic
client = Anthropic(
base_url="https://claude-18830.example.ir",
api_key=os.environ["ANTHROPIC_API_KEY"],
)

Streaming همان‌طور که می‌رسد عبور می‌کند، بدون buffer.

Streaming، WebSocket و پاسخ‌های کند

Section titled “Streaming، WebSocket و پاسخ‌های کند”

responseهای stream: true تکه‌تکه به شما می‌رسند. ارتقای WebSocket — realtime و voice — هم عبور می‌کنند.

edge فقط انتظار برای اولین byte upstream را محدود می‌کند: پنج دقیقه روی یک gateway. وقتی یک stream شروع شد، هرقدر بخواهد می‌تواند ادامه دهد.

یک تماس غیر-streaming باید در همان پنج دقیقه تمام شود. یک 504 روی یک request طولانی بدون stream: true یعنی: streaming را روشن کنید.

برای یک تماس ساده HTTP، فقط host را عوض کنید:

Terminal window
GW=https://tg-60412.example.ir
curl -s "$GW/bot$TOKEN/sendMessage" \
-d chat_id=$CHAT_ID \
-d text='deploy finished'

این‌ها یک registry یا index URL می‌گیرند، نه یک base URL.

Terminal window
npm config set registry https://npm-51074.example.ir/

برای هر پروژه، در یک .npmrc کنار package.json:

registry=https://npm-51074.example.ir/

pnpm: همان command. Yarn 2+: npmRegistryServer در .yarnrc.yml.

path /simple/ را نگه دارید — این index API است، نه یک path وب‌سایت.

Terminal window
pip config set global.index-url https://pypi-33915.example.ir/simple/
# pyproject.toml, for uv
[[tool.uv.index]]
name = "nsin"
url = "https://pypi-33915.example.ir/simple/"
default = true

hostname تبدیل به prefix رجیستری اسم image می‌شود:

Terminal window
docker pull docker-77228.example.ir/library/nginx:latest
docker pull docker-77228.example.ir/grafana/grafana:latest

چرا registryها به کار اضافه نیاز ندارند

Section titled “چرا registryها به کار اضافه نیاز ندارند”

یک registry اغلب با یک redirect به host دیگر پاسخ می‌دهد: Docker Hub به blob CDN و سرویس auth خودش، index PyPI به files.pythonhosted.org، crates.io به static.crates.io، index NuGet به api.nuget.org. یک proxy ساده اینجا خراب می‌شود — client نمی‌تواند به آن host برسد.

انسین آن لینک‌ها را به یک prefix روی hostname gateway خودتان بازنویسی می‌کند:

https://docker-77228.example.ir/_nsin/auth.docker.io/token?service=…

host واقعی هنوز همان path واقعی را می‌گیرد، پس URLهای امضاشده validate می‌شوند و range requestها و resumeها هم کار می‌کنند. تنظیمی لازم نیست — allowlist با preset می‌آید.

اسم تولیدشده <service>-<5 رقم> است. آن را در dashboard rename کنید — models، registry، push — و config خودتان را به‌روز کنید، چون hostname عوض می‌شود.

نمی‌تواند wildcard باشد، و نمی‌تواند apex domain باشد.

همه چیز 403 برمی‌گرداند و پنل یک نوار quota در 100% نشان می‌دهد. از سقف rolling 30 روزه plan رد شده‌اید. فقط hostnameهای gateway مسدود می‌شوند — مصرف منقضی می‌شود، یا سقف را با تغییر plan بالا ببرید. Gateway چیست؟ را ببینید.

یک docker pull یا pip install شروع می‌شود، بعد نیمه‌راه شکست می‌خورد. path را چک کنید: library/ برای imageهای رسمی Docker Hub، /simple/ برای PyPI. هنوز خراب می‌شود؟ command را برای ما بفرستید — شاید یک preset جدید به یک host دیگر روی allowlist نیاز داشته باشد.

Provider اعتبارنامه من را رد کرد یا account را قفل کرد. Providerها traffic gateway را از آدرس‌های egress مشترک انسین می‌بینند. آدرس‌های egress مشترک را ببینید.

صفحه می‌گوید gateway روی plan این domain نیست. Plans & Limits را ببینید.

صفحه Gateways می‌گوید domain از DNS خارجی استفاده می‌کند. یک gateway یک record روی zone شماست، پس انسین باید DNS شما را اجرا کند. Nameservers را ببینید.