在不久的将来,我将拥有3台nginx服务器。一种是其他两种SSL的反向代理。因此,例如,我去:
https://www.mysitename.com/site1
此示例中的其他两个服务器是site1和site2。我在代理服务器上安装了SSL证书,并且想使用反向代理服务器(因为全部3个都在内部网络上,所以不需要SSL)。出于测试目的,我让nginx在443上监听SSL /反向代理,在端口8081是用于site1的Rails应用程序,而8082是用于site2。
我有这个...
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)。
有没有办法从本地主机调用中删除“ site1”?似乎正在使用localhost:8081 / site1。site1和site2站点的性质为“ / login / index”或“ / whatever / list”等,没有“ site1”。
站点控制器中还存在重定向(使用redirect_to),该重定向从/ login / index到/ whatever / list。
我是否需要重新设计站点的URL才能使用site1?还是NGINX代理可以解决?
谢谢。
对于Socket.io,请尝试添加rewrite /(.*)/socket.io/ break;。 serverfault.com/questions/444532/…–
—
user956584