Bỏ qua để đến nội dung

Reverse proxy và URL base

Cài đặt

Đặt HolyArrs ở một địa chỉ như https://home.example/holyarrs phía sau reverse proxy của bạn.

Reverse proxy là máy chủ web đứng trước các ứng dụng của bạn, chuyển mỗi địa chỉ đến đúng container. URL base là đường dẫn mà HolyArrs nằm dưới.

  1. Thêm đường dẫn vào tệp Compose:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Khởi động lại container.

  3. Thêm một quy tắc proxy từ Ví dụ proxy.

  4. Mở https://home.example/holyarrs/. Bạn sẽ thấy trang đăng nhập. Settings > This app (Cài đặt > Ứng dụng này) hiển thị đường dẫn đang dùng.

Ở đâu Có hiệu lực
HOLYARRS_URL_BASE Khi khởi động. Ưu tiên hơn các cách còn lại.
Cờ -url-base /holyarrs Khi khởi động, nếu chưa đặt biến.
Settings > This app Ở lần khởi động kế tiếp, chỉ khi cả biến lẫn cờ đều chưa đặt.

nginx-proxy-manager. Tạo một proxy host cho tên miền của bạn, rồi thêm một custom location:

  • Location: /holyarrs
  • Forward hostname holyarrs, cổng 6262. Không có dấu gạch chéo ở cuối, nếu không đường dẫn sẽ bị cắt.
  • Trong hộp bánh răng của 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. Đừng thêm 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. Dùng handle. handle_path sẽ cắt đường dẫn.

home.example {
handle /holyarrs* {
reverse_proxy holyarrs:6262 {
flush_interval -1
}
}
}
  • Nếu mọi người vào HolyArrs bằng một hostname, hãy thêm nó vào HOLYARRS_ALLOWED_HOSTS.
  • Nếu proxy thêm X-Forwarded-For, hãy thêm địa chỉ của proxy vào HOLYARRS_TRUSTED_PROXIES. Không có nó, đăng nhập không phân biệt được ai đang ở trong mạng ở nhà của bạn.
Triệu chứng Nguyên nhân Cách khắc phục
Mọi trang đều báo không tìm thấy Proxy cắt bỏ đường dẫn Bỏ tùy chọn cắt, hoặc bỏ dấu gạch chéo ở cuối.
Cập nhật trực tiếp không bao giờ đến Proxy đệm các phản hồi Tắt buffering (proxy_buffering off, flush_interval -1).
Đường dẫn đã lưu khiến bạn bị khóa ngoài Đường dẫn đã lưu bị sai Khởi động với HOLYARRS_URL_BASE=/ để bỏ qua nó.
Đăng nhập coi bạn như người ở ngoài mạng nhà Proxy chưa được tin cậy Gửi X-Real-IP và X-Forwarded-For, và đặt HOLYARRS_TRUSTED_PROXIES.

Thêm cách khắc phục: Khắc phục sự cố.

Quy tắc về đường dẫn
  • Ký tự cho phép: chữ cái, chữ số, -, _, . và /. Không có .. hay //.
  • holyarrs, /holyarrs và /holyarrs/ đều có nghĩa là /holyarrs.
  • Đường dẫn đã lưu mà không hợp lệ sẽ bị bỏ qua.
  • Mọi thứ chuyển xuống dưới đường dẫn: các trang, API, cập nhật trực tiếp, đăng nhập, và các liên kết HolyArrs tạo ra (liên kết mời, feed lịch).
  • /healthz và /readyz cũng trả lời ở gốc, để bước kiểm tra tình trạng có sẵn của image vẫn chạy.
  • Mọi địa chỉ khác nằm ngoài đường dẫn đều trả không tìm thấy.
Proxy phải làm gì
Yêu cầu Lý do
Chuyển nguyên đường dẫn HolyArrs định tuyến theo đường dẫn đầy đủ.
Giữ header Host Việc kiểm tra host và các liên kết được tạo ra đều dùng nó.
Không đệm phản hồi Cập nhật trực tiếp truyền qua một phản hồi luôn mở.
Thời gian chờ đọc dài (1 giờ) Luồng cập nhật trực tiếp luôn mở.

HolyArrs miễn phí. Nếu nó giúp bạn tiết kiệm thời gian, hãy gắn sao trên GitHub, tài trợ dự án hoặc mời tôi một ly cà phê.