پروژه ساده ریلی با Netlify Edge Function
ساخته شده توسط amirs
نسخه انگلیسی: README.md
از این پروژه فقط برای دامنه و سرور خودت استفاده کن یا جایی که اجازه استفاده داری.
از دامنههای شخص ثالث برای address، host یا sni استفاده نکن، مگر اینکه اجازه داشته باشی.
- ریلی با Netlify Edge Function
- راهاندازی ساده
- قابل استفاده با سایت Netlify و Netlify CLI
- تنظیم مقصد با Environment Variable
- پشتیبانی از دامنه مقصد همراه با پورت
.
├── netlify/
│ └── edge-functions/
│ └── relay.js
├── public/
│ └── index.html
├── netlify.toml
├── package.json
├── README.md
└── README_FA.mdاین روش کار میکند، ولی برای اکثر کاربران توصیه نمیشود.
روش پیشنهادی این است که پروژه را دانلود/کپی کنی و نسخه خودت را دیپلوی کنی.
باید این مقدار را تنظیم کنی:
TARGET_DOMAIN=https://your-domain.com:443دامنه حتماً باید همراه پورت باشد.
نمونه درست:
https://example.com:443
https://sub.example.com:443
https://api.example.com:8443نمونه اشتباه:
https://example.com
example.com:443
http://example.com:443
localhost:443
127.0.0.1:443از همین پروژه استفاده کن.
وارد Netlify شو:
https://app.netlify.comبعد بزن:
Add new project → Import an existing projectریپوی پروژه را انتخاب کن.
اینها را بگذار:
| تنظیم | مقدار |
|---|---|
| Build command | npm run build |
| Publish directory | public |
برو به:
Site configuration → Environment variables → Add variableاضافه کن:
Key: TARGET_DOMAIN
Value: https://your-domain.com:443مثال:
TARGET_DOMAIN=https://example.com:443بعد از اضافه کردن TARGET_DOMAIN حتماً دوباره deploy کن:
Deploys → Trigger deploy → Deploy siteاین روش کار میکند، ولی برای اکثر کاربران توصیه نمیشود.
روش پیشنهادی این است که پروژه را دانلود/کپی کنی و نسخه خودت را دیپلوی کنی.
- پروژه تو به تاریخچه ریپوی اصلی وصل میماند
- گزینههای Fork و Sync برای مبتدیها ممکن است گیجکننده باشد
- اگر پروژه تمیز و شخصی میخواهی، کپی کردن فایلها بهتر است
- پروژه را در GitHub باز کن
- روی Fork بزن
- اکانت GitHub خودت را انتخاب کن
- بعد از ساخته شدن Fork، وارد Netlify شو
- بزن:
Add new project → Import an existing project → GitHub- ریپوی Fork شده را انتخاب کن
- تنظیمات Build را اینطور بگذار:
| تنظیم | مقدار |
|---|---|
| Build command | npm run build |
| Publish directory | public |
- Environment Variable را اضافه کن:
TARGET_DOMAIN=https://your-domain.com:443- سایت را Deploy کن
بعد از تغییر TARGET_DOMAIN همیشه باید دوباره deploy بزنی.
npm install -g netlify-clicd path/to/projectمثلاً:
cd Desktop/netlify-relaynetlify loginاگر سایت از قبل داخل Netlify ساخته شده:
netlify linkاگر میخواهی با CLI سایت بسازی:
netlify initمقدار حتماً باید پورت داشته باشد:
netlify env:set TARGET_DOMAIN "https://your-domain.com:443" --scope functions --context productionمثال:
netlify env:set TARGET_DOMAIN "https://example.com:443" --scope functions --context productionnetlify env:listیا:
netlify env:get TARGET_DOMAIN --context productionnetlify deploy --prod| چیزی که باز میکنی | مقصدی که به آن وصل میشود |
|---|---|
https://your-site.netlify.app/ |
https://your-domain.com:443/ |
https://your-site.netlify.app/path |
https://your-domain.com:443/path |
https://your-site.netlify.app/api/test |
https://your-domain.com:443/api/test |
مقدارهای نمونه را با اطلاعات خودت جایگزین کن.
vless://UUID@YOUR_NETLIFY_DOMAIN:443?encryption=none&security=tls&sni=YOUR_NETLIFY_DOMAIN&fp=chrome&alpn=h2%2Chttp%2F1.1&insecure=0&allowInsecure=0&type=xhttp&host=YOUR_NETLIFY_DOMAIN&path=YOUR_PATH&mode=auto&extra=%7B%22xPaddingBytes%22%3A%22100-1000%22%7D#net| مقدار | معنی |
|---|---|
UUID |
UUID خودت |
YOUR_NETLIFY_DOMAIN |
دامنه Netlify خودت، مثل your-site.netlify.app |
YOUR_PATH |
مسیر بکاند خودت |
دامنه برای sni - adress
kubernetes.io
helm.sh
letsencrypt.orgSite → Deploys → Latest deploy → View logsSite → Edge Functions → relay → Logsnetlify env:list
netlify env:get TARGET_DOMAIN --context productioncurl -I "https://your-domain.com:443"اگر این دستور خطا داد، اول مشکل دامنه، SSL یا پورت سرور را حل کن.
| خطا | دلیل | راهحل |
|---|---|---|
dns error |
دامنه resolve نمیشود | DNS دامنه را چک کن |
connection refused |
پورت بسته است | پورت درست را باز کن |
SSL/TLS error |
مشکل گواهی یا SNI | دامنه و SSL را درست کن |
| هنوز دامنه قبلی را میخواند | env یا deploy قدیمی است | env را دوباره ست کن و redeploy بزن |
404 |
مشکل route | فایل netlify.toml را چک کن |
-
TARGET_DOMAINتنظیم شده -
TARGET_DOMAINباhttps://شروع میشود -
TARGET_DOMAINحتماً پورت دارد - دامنه مقصد عمومی resolve میشود
- پورت مقصد باز است
- بعد از تغییر env دوباره deploy زدی
Solana:
E7S8EBUE5tkY5UaTgDvhaanJMeCi2DxPGYZukJGrJV8Jhttps://t.me/avaco_cloud@ShakerFPSamirs
MIT License © amirs