رفتن به محتوا

ریورس پراکسی و URL base

راه‌اندازی

HolyArrs را پشت ریورس پراکسی خودتان روی نشانی‌ای مثل https://home.example/holyarrs قرار دهید.

ریورس پراکسی وب‌سروری است که جلوی برنامه‌های شما قرار می‌گیرد و هر نشانی را به کانتینر درست می‌فرستد. URL base مسیری است که HolyArrs زیر آن قرار می‌گیرد.

مسیر را تعیین کنید

پیوند به مسیر را تعیین کنید
  1. مسیر را به فایل Compose خود اضافه کنید:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. کانتینر را راه‌اندازی مجدد کنید.

  3. یک قانون پراکسی از نمونه‌های پراکسی اضافه کنید.

  4. https://home.example/holyarrs/ را باز کنید. باید صفحهٔ ورود را ببینید. Settings > This app (تنظیمات > این برنامه) مسیر در حال استفاده را نشان می‌دهد.

مسیر را کجا تعیین کنید

پیوند به مسیر را کجا تعیین کنید
کجا کی اعمال می‌شود
HOLYARRS_URL_BASE هنگام شروع. بر بقیه اولویت دارد.
پرچم -url-base /holyarrs هنگام شروع، وقتی متغیر تعیین نشده باشد.
Settings > This app در شروع بعدی، فقط وقتی هم متغیر و هم پرچم تعیین نشده باشند.

نمونه‌های پراکسی

پیوند به نمونه‌های پراکسی

nginx-proxy-manager. یک proxy host برای دامنهٔ خود بسازید، سپس یک custom location اضافه کنید:

  • Location: /holyarrs
  • نام میزبان مقصد holyarrs، پورت 6262. در آخر اسلش نگذارید، وگرنه مسیر حذف می‌شود.
  • در کادر چرخ‌دندهٔ همان location:
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_buffering off;
proxy_read_timeout 1h;

Traefik. میدل‌ور StripPrefix اضافه نکنید.

labels:
- traefik.enable=true
- traefik.http.routers.holyarrs.rule=Host(`home.example`) && PathPrefix(`/holyarrs`)
- traefik.http.services.holyarrs.loadbalancer.server.port=6262

Caddy. از handle استفاده کنید. handle_path مسیر را حذف می‌کند.

home.example {
handle /holyarrs* {
reverse_proxy holyarrs:6262 {
flush_interval -1
}
}
}

نام‌های میزبان و نشانی‌های پراکسی

پیوند به نام‌های میزبان و نشانی‌های پراکسی
  • اگر کسی با یک نام میزبان به HolyArrs می‌رسد، آن را به HOLYARRS_ALLOWED_HOSTS اضافه کنید.
  • اگر پراکسی X-Forwarded-For اضافه می‌کند، نشانی پراکسی را به HOLYARRS_TRUSTED_PROXIES اضافه کنید. بدون آن، ورود نمی‌تواند تشخیص دهد چه کسی روی شبکهٔ خانگی شماست.
نشانه علت راه‌حل
هر صفحه «پیدا نشد» می‌گوید پراکسی مسیر را حذف می‌کند تنظیم حذف یا اسلش آخر را بردارید.
به‌روزرسانی‌های زنده هرگز نمی‌رسند پراکسی پاسخ‌ها را بافر می‌کند بافر را خاموش کنید (proxy_buffering off، flush_interval -1).
مسیر ذخیره‌شده راه ورود شما را بسته است مسیر ذخیره‌شده اشتباه است با HOLYARRS_URL_BASE=/ شروع کنید تا نادیده گرفته شود.
ورود شما را بیرون از شبکه‌تان حساب می‌کند به پراکسی اعتماد نشده است X-Real-IP و X-Forwarded-For را بفرستید و HOLYARRS_TRUSTED_PROXIES را تعیین کنید.

راه‌حل‌های بیشتر: عیب‌یابی.

قواعد مسیر
  • نویسه‌های مجاز: حروف، ارقام، -، _، . و /. بدون .. یا //.
  • holyarrs، /holyarrs و /holyarrs/ همه یعنی /holyarrs.
  • مسیر ذخیره‌شدهٔ نامعتبر نادیده گرفته می‌شود.
  • همه‌چیز زیر مسیر می‌رود: صفحه‌ها، API، به‌روزرسانی‌های زنده، ورود و پیوندهایی که HolyArrs می‌سازد (پیوندهای دعوت، فید تقویم).
  • /healthz و /readyz در ریشه هم جواب می‌دهند، تا بررسی سلامت خود ایمیج کار کند.
  • هر نشانی دیگر بیرون از مسیر «پیدا نشد» جواب می‌دهد.
پراکسی باید چه کند
نیاز چرا
مسیر را بدون تغییر عبور دهد HolyArrs بر اساس مسیر کامل مسیریابی می‌کند.
هدر Host را نگه دارد بررسی میزبان و پیوندهای ساخته‌شده از آن استفاده می‌کنند.
پاسخ را بافر نکند به‌روزرسانی‌های زنده روی یک پاسخ باز جریان می‌یابند.
مهلت خواندن طولانی (1 ساعت) جریان به‌روزرسانی زنده باز می‌ماند.

HolyArrs رایگان است. اگر در وقتتان صرفه‌جویی کرد، در GitHub به آن ستاره بدهید، حمایت مالی کنید یا برای من یک قهوه بخرید.