Trong tương lai gần tôi sẽ có 3 máy chủ nginx. Một là proxy ngược cho SSL cho hai cái còn lại. Vì vậy, ví dụ, tôi đi đến:
https://www.mysitename.com/site1
Hai máy chủ khác trong ví dụ này là site1 và site2. Tôi đã cài đặt chứng chỉ SSL trên proxy và tôi muốn sử dụng proxy ngược (không yêu cầu SSL vì cả 3 đều nằm trong mạng nội bộ). Mục đích thử nghiệm của tôi là tôi có nginx nghe trên 443 cho SSL / proxy ngược cổng 8081 là một ứng dụng đường ray cho trang web1 và 8082 là cho trang web2.
Tôi có cái này ...
server {
listen 443;
server_name mysitename.com;
ssl on;
ssl_certificate ssl/mysitename.com.crt;
ssl_certificate_key ssl/mysitename.com.key;
keepalive_timeout 60;
location /site1 {
proxy_pass http://localhost:8081;
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_redirect http:// https://;
}
location /site2 {
proxy_pass http://localhost:8082;
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_redirect http:// https://;
}
}
Vì vậy, khi tôi truy cập www.mysitename.com/site1, tôi muốn nó về cơ bản trả về những gì thường đến từ localhost: 8081 (hoặc sau đó xuống dòng IP nội bộ cho một máy chủ khác).
Có cách nào để loại bỏ "site1" khỏi cuộc gọi localhost không? Những gì nó dường như đang làm là sử dụng localhost: 8081 / site1. Các trang web site1 và site2 có bản chất "/ login / index" hoặc "/ anything / list", v.v., không có "site1".
Ngoài ra còn có các chuyển hướng trong bộ điều khiển trang web (sử dụng redirect_to) đi từ những thứ như / login / index đến / anything / list.
Tôi có phải thiết kế lại URL của trang để sử dụng trang1 không? Hoặc proxy NGINX có thể tìm ra nó?
Cảm ơn.