我正在运行安装了 nginx、jira 和 bitbucket 的 debian(jessie,64 位)服务器。该 URL 称为“www.example.com”
首先我安装了 jira,打开了安装站点(http://example.com:8080
)并完成了安装。
之后我在 /etc/nginx/sites-available 中创建了一个虚拟主机“jira.example.com”,并在 /etc/nginx/sites-enabled 中创建了相应的符号链接:
server {
listen 80;
server_name jira.example.com;
location / {
proxy_pass http://localhost:8080/;
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-Forwarded-Proto $scheme;
}
}
这很好用。当我打开时,http://jira.example.com
它会带我进入我的 jira-dashboard。
然后我安装了 bitbucket 并打开了安装页面http://example.com:7990
,它也可以正常工作。
然后我决定创建另一个名为“bitbucket.example.com”的虚拟主机:
server {
listen 80;
server_name bitbucket.example.com;
location / {
proxy_pass http://localhost:7990/;
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-Forwarded-Proto $scheme;
}
}
但是这个不起作用,而jira却完全正常工作。
当我编辑include /etc/nginx/sites-enabled/*;
nginx.conf 中的 -line时include /etc/nginx/sites-enabled/*.*;
,它将每个都重定向到http://example.com/*
,http://example.com:7990
所以我认为我以某种方式错误配置了 nginx。
答案1
如果http://example.com:7990
不起作用,显然 nginx-proxy 也不起作用。尝试netstat -anp | grep 7990
查看 bitbucket 是否正在监听连接。如果没有,请修复 bitbucket,而不是 nginx。
答案2
/
语句末尾有一个proxy_pass
。这意味着所有 URI/
在传递给代理时都将被替换为。例如,http://bitbucket.example.com/testing
将被代理到http://localhost:7990/
。
我不清楚这些应用程序如何使用 URL,但我认为它们需要完整的 URI。
这意味着您必须proxy_pass http://localhost:7990;
在配置中使用不带结尾斜杠的。