我正在尝试使用nginx作为docker中运行的几个应用程序的反向代理。我正在使用两个位置,一个用于基本URL,另一个用于别名“ Demo”。 目的是使两个应用程序都可以使用相同的URL访问,但其中一个具有别名。到目前为止,我已经能够加载一个“ ASP”,但是另一个应用程序“ Demo”似乎加载时出现问题。
我的nginx配置:
# the IP(s) on which your node server is running. I chose port 3000.
upstream asp {
server 00.00.0.143:8080;
}
upstream demo {
server 00.00.0.143:3000;
}
#Point http requests to https
server {
listen 0.0.0.0:80;
server_name DOMAIN.COM;
server_tokens off;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name DOMAIN.COM;
ssl_certificate /etc/nginx/techlove_io.crt;
ssl_certificate_key /etc/nginx/techlove_io.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
# access_log /var/log/nginx/myapp.log;
# error_log /var/log/nginx/myapp_error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Ssl on;
proxy_pass http://asp;
proxy_redirect off;
}
location /demo/ {
rewrite ^/demo/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Ssl on;
proxy_pass http://demo/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
现在,当我访问基本URL时,我得到了asp,但是当我尝试使用DOMAIN.COM/Demo时,我在日志中看到404代码。
[12/Dec/2018:11:04:38 +0000] "GET /js/env.js HTTP/1.1"
404 0 "https://DOMAI.COM/Demo/" "Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" "-
",
[12/Dec/2018:11:04:38 +0000] "GET
/js/web.baac400bfe853f63da7d.js?c50cab901008fd0b709a HTTP/1.1" 404 0
"https://DOMAI.COM/Demo/" "Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" "-
"
我可以看到服务器正在拨打电话,但没有检索文件。我怀疑需要设置一些重写规则或其他选项。最后,如果我颠倒了上游的顺序,即在baseURL和Asp上以别名提供了演示,则演示开始工作,而Asp停止。就像重定向不在正确的服务器中查找文件一样。