가까운 장래에 3 개의 nginx 서버가 있습니다. 하나는 다른 하나의 SSL에 대한 리버스 프록시입니다. 예를 들어 다음으로 이동합니다.
https://www.mysitename.com/site1
이 예에서 다른 두 서버는 site1과 site2입니다. 프록시에 SSL 인증서를 설치하고 리버스 프록시를 사용하고 싶습니다 (3 개 모두가 내부 네트워크에 있으므로 SSL이 필요하지 않습니다). 테스트 목적으로 nginx가 443에서 SSL / 리버스 프록시를 수신 대기하고 있습니다. 사이트 1의 레일 앱인 포트 8081, 사이트 2의 포트 8081입니다.
내가 이거 가지고있어...
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://;
}
}
따라서 www.mysitename.com/site1을 방문하면 기본적으로 localhost : 8081 (또는 나중에 다른 서버의 내부 IP)에서 오는 것을 반환하기를 원합니다.
localhost 호출에서 "site1"을 제거하는 방법이 있습니까? 그것이하는 것처럼 보이는 것은 localhost : 8081 / site1을 사용하는 것입니다. site1 및 site2 사이트는 "site1"이없는 "/ login / index"또는 "/ whatever / list"등입니다.
/ login / index와 같은 것에서 / whatever / list로가는 사이트 컨트롤러 (redirect_to를 사용하여)에도 리디렉션이 있습니다.
site1을 사용하려면 사이트의 URL을 다시 디자인해야합니까? 아니면 NGINX 프록시가 알아낼 수 있습니까?
감사.