我更像是一名程序员而不是服务器管理员,所以这个问题对某些人来说似乎微不足道,但我无法让我的 nginx 反向代理将我的请求转发到正确的服务器......首先,这是我的配置文件(在网站- 可用,在站点启用符号链接)
upstream nodejs1 {
server 127.0.0.1:3000;
}
upstream nodejs2 {
server 127.0.0.1:3001;
}
server {
server_name nodejs_proxy;
listen 0.0.0.0:80;
access_log /var/log/nginx/nodejs.log;
location /otherlocation/ {
rewrite /otherlocation/(.*) /$1 break;
proxy_pass http://nodejs1/;
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_set_header X-NginX-Proxy true;
}
location / {
proxy_pass http://nodejs2/;
proxy_redirect off;
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_set_header X-NginX-Proxy true;
}
}
因此,如果我尝试访问http://myserver.com/
,一切正常,我被重定向到端口 3001。但是,如果我尝试访问http://myserver.com/otherlocation/
,我也被重定向到端口 3001(所以我得到一个 404)。
当我尝试访问时,上面的代码片段中是否有某些内容我没有正确地重定向到正确的服务器http://myserver.com/otherlocation/
?
谢谢
PS:myserver.com 是一个临时域,很容易多次更改(开发、预生产、生产),所以这就是为什么我试图写一些适用于所有环境的东西