我是NGINX的新手(一般来说都很好),请原谅我的无知。我有一个在localhost:4000上运行的Phoenix Web应用程序和一个在localhost:5123上运行的ASP.NET Web应用程序。我尝试使用NGINX创建反向代理,以便可以从同一个域访问任一Web应用程序。我的NGINX配置文件包含以下内容:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:4000;
}
location /test {
rewrite /test(.*) /$1 break;
proxy_pass http://localhost:5123;
}
}
我能够访问example.com/
上的服务器1和example.com/test
上的服务器2,但是,服务器2无法加载自己的css,javascript和图像文件。有没有办法确保服务器1和服务器2通过NGINX配置设置使用自己的资源?
答案 0 :(得分:0)
你是正确的方式。您的第二项服务缺少一些行:
替换...
location /test {
rewrite /test(.*) /$1 break;
proxy_pass http://localhost:5123;
}
...与
location /test {
rewrite /test/(.*) /$1 break;
rewrite ^/test$ /test/ permanent;
proxy_pass http://localhost:5123/;
proxy_redirect / /test/;
proxy_set_header Host $host;
proxy_buffering off;
}
我不知道这是否是实现这一目标的最佳方法。很久以前我使用这个配置在我的服务器上实现了etherpad-service。那个时候我没有选择使用子域名。无论如何 - 使用子域进行第二次服务会更好。