Tôi có một thiết lập kỳ lạ. Nó trông như thế này:
Browser ----------> HTTPs Proxy ------> Apache HTTP -----> Tomcat AJP
HTTPS HTTP AJP
Trên proxy HTTPS (một proxy rất ngu ngốc), một URL xuất hiện trông giống như https: //proxy.domain.com/app. Sau đó, nó được chuyển sang Apache bằng cách sử dụng HTTP như http: //apache.domain.com/app (truyền vào máy chủ proxy.domain.com). Sau đó, Apache sẽ yêu cầu cục bộ sử dụng giao thức AJP thành ajp: // localhost: 8009 / app /.
Đôi khi máy chủ ứng dụng muốn chuyển hướng đường dẫn được yêu cầu. Ví dụ: chuyển hướng / ứng dụng / đến / ứng dụng / webapp. Vì vậy, nó sẽ gửi 302 trở lại cho apache chuyển hướng đường dẫn - có thể là một cái gì đó như ajp: // localhost: 8009 / app / webapp. Sau đó, Apache viết lại URL chuyển hướng thành http: //proxy.domain.com/app/webapp. Proxy HTTPS bị câm, do đó, nó không phân tích chuyển hướng và thay đổi http thành https.
Vì vậy, tôi muốn tìm hiểu xem tôi có thể định cấu hình Apache để viết lại URL chuyển hướng 302 để gửi người dùng tới https không.
Đây là cấu hình tôi có cho đến nay trong https.conf của Apache:
ProxyPreserveHost on
RewriteEngine on
RewriteRule ^/app$ /app/ [PT]
ProxyPass /app ajp://localhost:8009/app
Tôi đã thử sử dụng ProxyPassReverse , nhưng không thể tìm ra cách buộc nó viết lại URL chuyển hướng 302 bằng https thay vì http.
Có suy nghĩ gì không?