3x-ui3x-ui
عملیات

پراکسی معکوس

قرار دادن پنل و اشتراک 3x-ui پشت Nginx یا Caddy همراه با TLS از Let's Encrypt.

پراکسی معکوس به شما امکان می‌دهد پنل و اشتراک را روی یک دامنه تمیز با HTTPS خودکار ارائه دهید و پورت‌های واقعی را پشت پورت‌های 80/443 پنهان کنید. ترجیح می‌دهید خودِ پنل مستقیماً TLS را مدیریت کند؟ به‌جای آن، گواهی را از طریق منوی SSL در x-ui دریافت کنید.

ساخت یک پیکربندی

Reverse-proxy config generator

Generate an Nginx or Caddy reverse-proxy config (with WebSocket support) and a matching certificate command.

nginx server block
server {
    listen 443 ssl http2;
    server_name panel.example.com;

    ssl_certificate     /etc/letsencrypt/live/panel.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/panel.example.com/privkey.pem;

    location /panel/ {
        proxy_pass http://127.0.0.1:2053;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }
}
Obtain a certificate
certbot certonly --nginx -d panel.example.com

پنل برای به‌روزرسانی‌های زنده از WebSockets استفاده می‌کند، بنابراین پراکسی باید هدرهای Upgrade/Connection را عبور دهد (خروجی Nginx بالا این کار را انجام می‌دهد). Caddy ارتقاهای WebSocket را به‌صورت خودکار مدیریت می‌کند.

Nginx + گواهی

با Nginx، گواهی را با certbot (یا acme.sh) دریافت کنید و در بلوک server به آن ارجاع دهید:

certbot
certbot certonly --nginx -d panel.example.com

پس از نصب گواهی، Nginx را بارگذاری مجدد کنید و تمدید خودکار را راه‌اندازی کنید (certbot renew به‌صورت پیش‌فرض روی یک تایمر اجرا می‌شود).

Caddy

Caddy گواهی‌ها را برای شما دریافت و تمدید می‌کند — یک Caddyfile را به پنل اشاره دهید و همه‌چیز کار می‌کند:

Caddyfile
panel.example.com {
    reverse_proxy 127.0.0.1:2053
}

نکته‌ها

  • حتی پشت یک پراکسی هم مسیر پایه وب پنل را حفظ کنید؛ دفاع لایه‌به‌لایه.
  • اگر TLS را در پراکسی مدیریت می‌کنید، ممکن است بخواهید XUI_SKIP_HSTS=true را روی پنل تنظیم کنید — به مرجع متغیرهای محیطی مراجعه کنید.
  • سرور اشتراک را هم پراکسی کنید تا محتوای آن نیز روی HTTPS ارائه شود.

On this page