我正在尝试在服务器(Ubuntu 14.04)上运行一些nodejs应用程序,使用Nginx并且我差不多完成了。这是我的服务器配置(/etc/nginx/sites-available/default
):
server {
listen 80;
server_name my_domain.com;
location /test1 {
proxy_pass http://127.0.0.1:5000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /test2 {
proxy_pass http://127.0.0.1:5001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
我已经运行了多个应用,并且它们都运行良好,我可以使用http://my_domain.com/test1
,http://my_domain.com/test2
等来访问它们。
问题是,在这个应用程序中,我有几个绝对路径:
例如<a href="/">Home</a>
或(内部快递)
res.redirect('/');
此重定向不会转到http://my_domain.com/test1
,但会转到http://my_domain.com/
有没有办法通过nginx配置告诉应用程序根位置实际上是http://my_domain.com/test1
?
我是nginx和虚拟主机的新手,我正在努力学习......任何帮助都会受到赞赏。
修改
curl -I http://127.0.0.1:5000
的结果是:
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 1376
ETag: W/"560-GGm/YYltkhKxiOVNZ99jqQ"
set-cookie: connect.sid=s%3AkZYCqLKvbhHhK3W8ECBN8G91s41paws4.ekLWefrd3NdQatT3VzFNozfnFs65YBEW9k9MNTdbQT0; Path=/; HttpOnly
Date: Sat, 15 Aug 2015 13:13:20 GMT
Connection: keep-alive
如您所见,我没有得到Location
标题...
顺便说一句,我设法使用子域解决问题,这看起来像我预期的那样工作......无论如何,答案将不胜感激,因为我将来可能需要它。
答案 0 :(得分:2)
Location
值。例如curl -v http://127.0.0.1:5001/myappp
Location
标题