Tôi có một phiên bản ERDDAP đang chạy trên máy chủ Tomcat phía sau proxy ngược NGINX.
Môi trường hoàn toàn trên Kubernetes, RP là bộ điều khiển xâm nhập NGINX chuyển tiếp yêu cầu trên cổng 443 đến phiên bản dịch vụ trên cổng 8080 được liên kết với vùng chứa nơi Tomcat (và phiên bản ERDDAP) chạy.
Tôi tìm thấy hướng dẫn này (https://www.n0r1sk.com/post/nginx-reverse-proxy-with-ssl-offloading-and-apache-tomcat-backends/) cho biết cách định cấu hình server.xml cho Tomcat đằng sau proxy ngược, do đó, Trình kết nối HTTP cho máy chủ Tomcat của tôi là:
<Connector server="Apache" secure="true" port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
proxyPort="443"
relaxedPathChars='[]|'
relaxedQueryChars='[]:|{}^\`"<>' />
Với cấu hình này, khi tôi yêu cầu URL https://erddap.ve.ismar.cnr.it/erddap:
NHẬN/erddap/HTTP/1.1
Máy chủ: erddap.ve.ismar.cnr.it
ID yêu cầu X: 484e514b4038614090bf34061e9287f3
X-Real-IP: 10.104.235.192
X-Forwarded-For: 10.104.235.192
X-Forwarded-Host: erddap.ve.ismar.cnr.it
X-Forwarded-Port: 443
X-Forwarded-Proto: https
Sơ đồ X: https
...
Tôi nhận được phản hồi sau:
HTTP/1.1 302
Nghiêm ngặt-Giao thông-An ninh: max-age=0
Tùy chọn khung hình X: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Bảo vệ: 1; chế độ = khối
khác nhau: Nguồn gốc
Kiểm soát truy cập-Cho phép-Thông tin xác thực: đúng
Access-Control-Expose-Headers: Kiểm soát truy cập-Cho phép-Xuất xứ,Kiểm soát truy cập-Cho phép-
thông tin đăng nhập
Vị trí: https://erddap.ve.ismar.cnr.it/erddap/index.html
Độ dài nội dung: 0
Ngày: Thứ năm, ngày 24 tháng 2 năm 2022 17:55:41 GMT
Máy chủ: Apache
và mọi thứ hoạt động tốt với chuyển tiếp proxy và phản hồi Tomcat phụ trợ.
Nhưng nếu tôi thêm vào cấu hình Trình kết nối Tomcat, tham số scheme="https" như được đề xuất trong hướng dẫn đã đề cập ở trên:
<Connector server="Apache" secure="true" port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
proxyPort="443"
scheme="https"
relaxedPathChars='[]|'
relaxedQueryChars='[]:|{}^\`"<>' />
yêu cầu tương tự không thành công và tôi nhận được phản hồi sau từ Tomcat:
HTTP/1.1 302
Nghiêm ngặt-Giao thông-An ninh: max-age=0
Tùy chọn khung hình X: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Bảo vệ: 1; chế độ = khối
khác nhau: Nguồn gốc
Kiểm soát truy cập-Cho phép-Thông tin xác thực: đúng
Access-Control-Expose-Headers: Kiểm soát truy cập-Cho phép-Xuất xứ,Kiểm soát truy cập-Cho phép-
thông tin đăng nhập
Vị trí: (không được chỉ định)/erddap/index.html
Độ dài nội dung: 0
Ngày: Thứ năm, ngày 24 tháng 2 năm 2022 18:02:44 GMT
Máy chủ: Apache
Bạn có thể nhận thấy tiêu đề "Vị trí:" hoàn toàn sai với tiền tố "(không được chỉ định)" và khiến khách hàng thực hiện yêu cầu tiếp theo đối với URL https://erddap.ve.ismar.cnr.it/erddap/(not%20specified)/erddap/index.html (và tất nhiên yêu cầu không thành công).
Bất cứ ai trong số các bạn có thể giúp tôi phát hiện ra vấn đề trong cấu hình Tomcat của tôi ở đâu không?
Tại sao hành vi lại quá khác biệt khi chỉ cần thêm tham số scheme="https" vào server.xml?
Rất cám ơn trước,
Pierpaolo