我正在尝试使用 Nginx 在服务器(Ubuntu 14.04)上运行一些 nodejs 应用程序,我快完成了。这是我的服务器配置 ( /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;
}
}
Run Code Online (Sandbox Code Playgroud)
我有几个应用程序运行,它们都工作得很好,我可以与他们存取权限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 …
我想对-fApache 服务器使用命令行选项,以便我可以将conf文件存储在与服务器二进制文件不同的地方(数据目录)。
问题是我使用 Include 指令来分离和组织配置,但是当我使用类似的命令时Include "addons/SVN.conf",它失败了,因为 Apache 在相对于 ServerRoot 目录而不是 ServerConfigFile 目录中查找 addons/SVN.conf 。
我可以通过使用绝对路径来解决这个问题(例如Include "e:\foo\bar\baz\Apache\conf\addons\svn.conf",但我不喜欢那样,因为这意味着如果我移动 conf 文件夹而不是简单地更改 -f 选项,我将不得不更改每个 Include 指令。
有谁知道让 Include 指令相对于 Apache 传递的 conf 文件起作用的方法。我试过了Include "./addons/SVN.conf",但这也是相对于 ServerRoot 而言的。这种强制的相对于 ServerRoot Include 的行为违背了将备用配置文件指定为 ServerRoot/conf 中的配置文件的全部目的。
谢谢。