דלגו לתוכן

Reverse proxy ו-URL base

הגדרה

שים את HolyArrs בכתובת כמו https://home.example/holyarrs מאחורי ה-reverse proxy שלך.

Reverse proxy הוא שרת האינטרנט שעומד לפני האפליקציות שלך ושולח כל כתובת לקונטיינר הנכון. URL base הוא הנתיב ש-HolyArrs יושב תחתיו.

  1. הוסף את הנתיב לקובץ ה-Compose שלך:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. הפעל מחדש את הקונטיינר.

  3. הוסף כלל proxy מתוך דוגמאות ל-proxy.

  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
  • Forward hostname 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. אל תוסיף middleware מסוג 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
}
}
}

שמות מארח וכתובות proxy

קישור אל שמות מארח וכתובות proxy
  • אם אנשים מגיעים ל-HolyArrs דרך שם מארח, הוסף אותו ל-HOLYARRS_ALLOWED_HOSTS.
  • אם ה-proxy מוסיף X-Forwarded-For, הוסף את הכתובת של ה-proxy ל-HOLYARRS_TRUSTED_PROXIES. בלי זה, ההתחברות לא יכולה לדעת מי נמצא ברשת הביתית שלך.
תסמין סיבה פתרון
כל דף אומר שלא נמצא ה-proxy מסיר את הנתיב הסר את הגדרת ההסרה או את הסלאש בסוף.
עדכונים חיים אף פעם לא מגיעים ה-proxy שומר תשובות במאגר (buffer) כבה את ה-buffering (proxy_buffering off, flush_interval -1).
נתיב ששמרת נעל אותך בחוץ הנתיב השמור שגוי הפעל עם HOLYARRS_URL_BASE=/ כדי להתעלם ממנו.
ההתחברות מתייחסת אליך כאל מי שמחוץ לרשת שלך ה-proxy לא מהימן שלח X-Real-IP ו-X-Forwarded-For, והגדר HOLYARRS_TRUSTED_PROXIES.

פתרונות נוספים: פתרון בעיות.

כללי הנתיב
  • תווים מותרים: אותיות, ספרות, -, _, . ו-/. בלי .. או //.
  • holyarrs, /holyarrs ו-/holyarrs/ כולם אומרים /holyarrs.
  • HolyArrs מתעלם מנתיב שמור שאינו תקין.
  • הכול עובר תחת הנתיב: דפים, ה-API, עדכונים חיים, התחברות, וקישורים ש-HolyArrs בונה (קישורי הזמנה, פיד לוח השנה).
  • /healthz ו-/readyz עונים גם בשורש, כך שבדיקת התקינות של האימג’ עצמו ממשיכה לעבוד.
  • כל כתובת אחרת מחוץ לנתיב עונה שלא נמצא.
מה ה-proxy חייב לעשות
צורך למה
להעביר את הנתיב כמו שהוא HolyArrs מנתב לפי הנתיב המלא.
לשמור על הכותרת Host בדיקות המארח והקישורים הנבנים משתמשים בה.
בלי buffering של תשובות עדכונים חיים זורמים על תשובה פתוחה אחת.
זמן קריאה ארוך (שעה) זרם העדכונים החיים נשאר פתוח.

HolyArrs חינמי. אם זה חסך לך זמן, תן לו כוכב ב-GitHub, תמוך בפרויקט או קנה לי קפה.