Μετάβαση στο περιεχόμενο

Reverse proxy και URL base

Ρύθμιση

Βάλε το HolyArrs σε μια διεύθυνση όπως https://home.example/holyarrs πίσω από το reverse proxy σου.

Το reverse proxy είναι ο web server μπροστά από τις εφαρμογές σου, που στέλνει κάθε διεύθυνση στο σωστό container. Το URL base είναι η διαδρομή κάτω από την οποία ζει το HolyArrs.

  1. Πρόσθεσε τη διαδρομή στο αρχείο Compose σου:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Κάνε επανεκκίνηση στο container.

  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 για το domain σου και πρόσθεσε μια 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
}
}
}
  • Αν οι άνθρωποι μπαίνουν στο HolyArrs με όνομα host, πρόσθεσέ το στο HOLYARRS_ALLOWED_HOSTS.
  • Αν το proxy προσθέτει X-Forwarded-For, πρόσθεσε τη διεύθυνση του proxy στο HOLYARRS_TRUSTED_PROXIES. Χωρίς αυτό, η σύνδεση δεν μπορεί να καταλάβει ποιος είναι στο οικιακό σου δίκτυο.
Σύμπτωμα Αιτία Λύση
Κάθε σελίδα λέει not found Το 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.
  • Μια αποθηκευμένη διαδρομή που δεν είναι έγκυρη αγνοείται.
  • Όλα μετακινούνται κάτω από τη διαδρομή: οι σελίδες, το API, οι ζωντανές ενημερώσεις, η σύνδεση και οι σύνδεσμοι που φτιάχνει το HolyArrs (σύνδεσμοι πρόσκλησης, το feed του ημερολογίου).
  • Τα /healthz και /readyz απαντούν και στη ρίζα, ώστε ο έλεγχος υγείας της ίδιας της image να συνεχίσει να δουλεύει.
  • Κάθε άλλη διεύθυνση εκτός της διαδρομής απαντά not found.
Τι πρέπει να κάνει το proxy
Απαίτηση Γιατί
Να περνά τη διαδρομή όπως είναι Το HolyArrs δρομολογεί με την πλήρη διαδρομή.
Να κρατά την κεφαλίδα Host Οι έλεγχοι host και οι σύνδεσμοι που φτιάχνονται τη χρησιμοποιούν.
Χωρίς buffering απαντήσεων Οι ζωντανές ενημερώσεις έρχονται μέσα από μία ανοιχτή απάντηση.
Μεγάλο read timeout (1 ώρα) Η ροή των ζωντανών ενημερώσεων μένει ανοιχτή.

Το HolyArrs είναι δωρεάν. Αν σου γλίτωσε χρόνο, βάλε του αστέρι στο GitHub, γίνε χορηγός ή κέρασέ με έναν καφέ.