Files
3x-ui/docs/content/docs/fa/operations/reverse-proxy.mdx
T
MHSanaei 9b91f0f42e docs: vendor the documentation site into the monorepo
Fold the standalone 3x-ui-docs project (Next.js 16 + Fumadocs, deployed to
docs.sanaei.dev) into docs/ so the panel and its documentation share a single
source of truth, the way sing-box keeps its docs in-tree. The old repo becomes
redundant and can be retired.

- Import the full site under docs/ (app, components, content, lib, public,
  scripts, config). The self-contained pnpm project sits alongside the existing
  engineering notes with no filename collisions.
- Re-point "Edit on GitHub" links from MHSanaei/3x-ui-docs to this repo's
  docs/content/docs path (docs/lib/shared.ts, docs/app/.../page.tsx).
- Add docs-ci.yml and docs-deploy.yml under .github/workflows/, scoped to
  docs/** and run with working-directory: docs, since GitHub only runs
  workflows from the repo-root .github/. deploy-static.yml's GitHub Pages
  publish (CNAME docs.sanaei.dev) carries over unchanged.

Follow-up (outside this commit): attach the docs.sanaei.dev custom domain to
this repository's Pages (or set the Vercel project's root directory to docs),
confirm the site is live from the monorepo, then delete MHSanaei/3x-ui-docs.
2026-07-07 23:07:14 +02:00

52 lines
2.4 KiB
Plaintext

---
title: پراکسی معکوس
description: قرار دادن پنل و اشتراک 3x-ui پشت Nginx یا Caddy همراه با TLS از Let's Encrypt.
icon: Waypoints
---
پراکسی معکوس به شما امکان می‌دهد پنل و اشتراک را روی یک دامنه تمیز با HTTPS خودکار
ارائه دهید و پورت‌های واقعی را پشت پورت‌های 80/443 پنهان کنید. ترجیح می‌دهید خودِ
پنل مستقیماً TLS را مدیریت کند؟ به‌جای آن، گواهی را از طریق
[منوی SSL در `x-ui`](/docs/config/ssl-certificates) دریافت کنید.
## ساخت یک پیکربندی
<ReverseProxyGenerator />
<Callout type="info">
پنل برای به‌روزرسانی‌های زنده از WebSockets استفاده می‌کند، بنابراین پراکسی باید
هدرهای `Upgrade`/`Connection` را عبور دهد (خروجی Nginx بالا این کار را انجام
می‌دهد). Caddy ارتقاهای WebSocket را به‌صورت خودکار مدیریت می‌کند.
</Callout>
## Nginx + گواهی
با Nginx، گواهی را با `certbot` (یا `acme.sh`) دریافت کنید و در بلوک server به آن
ارجاع دهید:
```bash title="certbot"
certbot certonly --nginx -d panel.example.com
```
پس از نصب گواهی، Nginx را بارگذاری مجدد کنید و تمدید خودکار را راه‌اندازی کنید
(`certbot renew` به‌صورت پیش‌فرض روی یک تایمر اجرا می‌شود).
## Caddy
Caddy گواهی‌ها را برای شما دریافت و تمدید می‌کند — یک Caddyfile را به پنل اشاره
دهید و همه‌چیز کار می‌کند:
```text title="Caddyfile"
panel.example.com {
reverse_proxy 127.0.0.1:2053
}
```
## نکته‌ها
- حتی پشت یک پراکسی هم **مسیر پایه وب** پنل را حفظ کنید؛ دفاع لایه‌به‌لایه.
- اگر TLS را در پراکسی مدیریت می‌کنید، ممکن است بخواهید `XUI_SKIP_HSTS=true` را روی
پنل تنظیم کنید — به [مرجع متغیرهای محیطی](/docs/reference/env-vars) مراجعه کنید.
- سرور [اشتراک](/docs/config/subscription) را هم پراکسی کنید تا محتوای آن نیز روی
HTTPS ارائه شود.