Lewati ke konten

Reverse proxy dan URL base

Penyiapan

Taruh HolyArrs di alamat seperti https://home.example/holyarrs di balik reverse proxy kamu.

Reverse proxy adalah web server di depan aplikasi kamu yang mengarahkan tiap alamat ke container yang tepat. URL base adalah path tempat HolyArrs berada.

  1. Tambahkan path ke file Compose kamu:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Restart container.

  3. Tambahkan aturan proxy dari Contoh proxy.

  4. Buka https://home.example/holyarrs/. Kamu akan melihat halaman login. Settings > This app (Pengaturan > Aplikasi ini) menampilkan path yang sedang dipakai.

Di mana Berlaku
HOLYARRS_URL_BASE Saat start. Menang atas yang lain.
Flag -url-base /holyarrs Saat start, kalau variabelnya tidak diatur.
Settings > This app Pada start berikutnya, hanya kalau variabel dan flag sama-sama tidak diatur.

nginx-proxy-manager. Buat proxy host untuk domain kamu, lalu tambahkan custom location:

  • Location: /holyarrs
  • Forward hostname holyarrs, port 6262. Tanpa garis miring di akhir, atau path-nya terhapus.
  • Di kotak gerigi location itu:
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. Jangan tambahkan 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. Pakai handle. handle_path menghapus path.

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

Nama host dan alamat proxy

Tautan ke Nama host dan alamat proxy
  • Kalau orang membuka HolyArrs lewat nama host, tambahkan nama itu ke HOLYARRS_ALLOWED_HOSTS.
  • Kalau proxy menambahkan X-Forwarded-For, tambahkan alamat proxy ke HOLYARRS_TRUSTED_PROXIES. Tanpa itu, login tidak bisa tahu siapa yang ada di jaringan rumah kamu.

Kalau tidak berhasil

Tautan ke Kalau tidak berhasil
Gejala Penyebab Solusi
Setiap halaman bilang tidak ditemukan Proxy menghapus path Hapus pengaturan strip atau garis miring di akhir.
Update langsung tidak pernah sampai Proxy menahan respons di buffer Nonaktifkan buffering (proxy_buffering off, flush_interval -1).
Path yang tersimpan mengunci kamu dari aplikasi Path yang tersimpan salah Mulai dengan HOLYARRS_URL_BASE=/ untuk mengabaikannya.
Login menganggap kamu berada di luar jaringan rumah Proxy tidak dipercaya Kirim X-Real-IP dan X-Forwarded-For, dan atur HOLYARRS_TRUSTED_PROXIES.

Solusi lain: Pemecahan masalah.

Aturan path
  • Karakter yang diizinkan: huruf, angka, -, _, . dan /. Tanpa .. atau //.
  • holyarrs, /holyarrs dan /holyarrs/ semuanya berarti /holyarrs.
  • Path tersimpan yang tidak valid diabaikan.
  • Semuanya pindah ke bawah path: halaman, API, update langsung, login, dan tautan yang dibuat HolyArrs (tautan undangan, feed kalender).
  • /healthz dan /readyz juga menjawab di root, jadi pemeriksaan kondisi bawaan image tetap berfungsi.
  • Alamat lain di luar path menjawab tidak ditemukan.
Yang harus dilakukan proxy
Kebutuhan Alasan
Teruskan path apa adanya HolyArrs mengarahkan berdasarkan path lengkap.
Pertahankan header Host Pemeriksaan host dan tautan yang dibuat memakainya.
Tanpa buffering respons Update langsung dialirkan lewat satu respons yang terbuka.
Read timeout panjang (1 jam) Aliran update langsung tetap terbuka.

HolyArrs gratis. Kalau ini menghemat waktumu, beri bintang di GitHub, jadi sponsor atau traktir saya kopi.