我正在尝试托管通过Nginx代理的多个Node JS服务器,它正常工作。一个服务器托管在'/',另一个服务器托管在,例如'/ one'。此设置的相关Nginx配置如下所示。
upstream host_com { server 127.0.0.1:3000; keepalive 8; } upstream one_host_com { server 127.0.0.1:3010; keepalive 8; } server { listen 80; access_log /var/log/nginx/host.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_pass http://host_com/; proxy_redirect off; } location /one { rewrite ^(/one)+/(.*)$ /$2 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $proxy_host; #$http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://one_host_com/; proxy_redirect off; }
}
然而,当我从'/ one'测试平台进行AJAX调用时,如下所示:
$。getJSON('/ get_stuff',function(data){..});
当我希望它转到'/ one / get_stuff'时,帖子会转到'/ get_stuff'。如何让Nginx指向NodeJS,但仍然保持位置?有没有更好的方法来实现这个?
答案 0 :(得分:0)
尝试删除JavaScript中的前导斜杠,例如: $.getJSON( 'get_stuff', function(data) { .. });
。通过包含前导斜杠,您要求在域的根目录中建立路径,但我认为您希望路径相对于您当前所在的URL。