İçeriğe geç

Ters proxy ve URL base

Kurulum

HolyArrs’ı ters proxy’nin arkasında https://home.example/holyarrs gibi bir adrese koy.

Ters proxy, uygulamalarının önünde duran ve her adresi doğru konteynere gönderen web sunucusudur. URL base ise HolyArrs’ın altında durduğu yoldur.

  1. Yolu Compose dosyana ekle:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Konteyneri yeniden başlat.

  3. Proxy örnekleri bölümünden bir proxy kuralı ekle.

  4. https://home.example/holyarrs/ adresini aç. Giriş sayfasını görmelisin. Settings > This app (Ayarlar > Bu uygulama) kullanılan yolu gösterir.

Nerede Ne zaman geçerli olur
HOLYARRS_URL_BASE Başlangıçta. Diğerlerinden önceliklidir.
-url-base /holyarrs bayrağı Başlangıçta, değişken ayarlı değilse.
Settings > This app Bir sonraki başlatmada, yalnızca değişken ve bayrak ikisi de ayarsızsa.

nginx-proxy-manager. Alan adın için bir proxy host oluştur, sonra özel bir location ekle:

  • Location: /holyarrs
  • Forward hostname holyarrs, port 6262. Sonda eğik çizgi olmasın, yoksa yol kesilir.
  • O location’ın dişli simgesiyle açılan kutuya:
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 middleware’i ekleme.

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

Caddy. handle kullan. handle_path yolu keser.

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

Host adları ve proxy adresleri

Host adları ve proxy adresleri bağlantısı
  • İnsanlar HolyArrs’a bir host adıyla ulaşıyorsa, onu HOLYARRS_ALLOWED_HOSTS içine ekle.
  • Proxy X-Forwarded-For ekliyorsa, proxy’nin adresini HOLYARRS_TRUSTED_PROXIES içine ekle. Eklemezsen giriş sistemi kimin ev ağında olduğunu anlayamaz.
Belirti Neden Çözüm
Her sayfa “bulunamadı” diyor Proxy yolu kesiyor Kesme ayarını ya da sondaki eğik çizgiyi kaldır.
Canlı güncellemeler hiç gelmiyor Proxy yanıtları tamponluyor Tamponlamayı kapat (proxy_buffering off, flush_interval -1).
Kaydedilen bir yol seni dışarıda bıraktı Kaydedilen yol yanlış Onu yok saymak için HOLYARRS_URL_BASE=/ ile başlat.
Giriş sistemi seni ağının dışında sayıyor Proxy güvenilir değil X-Real-IP ve X-Forwarded-For gönder, HOLYARRS_TRUSTED_PROXIES ayarla.

Başka çözümler için: Sorun giderme.

Yol kuralları
  • İzin verilen karakterler: harfler, rakamlar, -, _, . ve /. .. ya da // olmaz.
  • holyarrs, /holyarrs ve /holyarrs/ üçü de /holyarrs demektir.
  • Geçerli olmayan kaydedilmiş yol yok sayılır.
  • Her şey yolun altına taşınır: sayfalar, API, canlı güncellemeler, giriş ve HolyArrs’ın oluşturduğu bağlantılar (davet bağlantıları, takvim feed’i).
  • /healthz ve /readyz kökte de yanıt verir, böylece imajın kendi sağlık denetimi çalışmaya devam eder.
  • Yolun dışındaki diğer her adres “bulunamadı” yanıtı verir.
Proxy neler yapmalı
Gereken Neden
Yolu değiştirmeden ilet HolyArrs tam yola göre yönlendirir.
Host başlığını koru Host denetimleri ve oluşturulan bağlantılar onu kullanır.
Yanıt tamponlama olmasın Canlı güncellemeler tek açık yanıt üzerinden akar.
Uzun okuma zaman aşımı (1 sa) Canlı güncelleme akışı açık kalır.

HolyArrs ücretsiz. Zamanından tasarruf ettirdiyse GitHub'da yıldızla, sponsor ol ya da bana bir kahve ısmarla.