好的
我在 Ubuntu 16.04 下运行 Confluence。现在我也在同一台服务器上运行 JIRA。Nginx 正在将端口 8090 转发到端口 80,Confluence 没有任何问题,因此我可以直接转到域/confluence。我也将 JIRA 设置为以这种方式工作。
我不断收到404 Not Found
来自 Nginx 的错误。
当我查看 Nginx 错误日志时,我看到了以下内容:
2016/07/01 17:27:29 [error] 50688#50688: *2 open() "/usr/share/nginx/html/jira" failed (2: No such file or directory), client: xx.xx.xx.xx, server: www.xxxxxx.net, request: "GET /jira HTTP/1.1", host: "xxxxx.net"
我知道为什么会发生此错误,但我无论如何也想不出 Nginx 从哪里获取它要找的路径。从技术上讲,它正确地将流量传递给 Apache,但它附加/jira
到默认目录的末尾,导致 404 未找到,因为该位置实际上不存在。
Nginx 从哪里读取默认位置?
我删除了sites-available
和sites-enabled
目录中的所有内容,除了设置转发所需的内容。Apache 在其两个目录中也没有站点。我检查了 Nginx.conf,但没有看到该路径。我还重新启动了所有服务。
Confluence 站点启用配置
root@confluence:/etc/nginx/sites-enabled# cat confluence
server {
listen www.xxxx.net:80;
server_name www.xxxx.net;
location /confluence {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090/confluence;
}
}
JIRA 站点启用配置
root@confluence:/etc/nginx/sites-enabled# cat jira
server {
listen www.xxxx.net:80;
server_name www.xxxx.net;
location /jira {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/jira;
client_max_body_size 10M;
}
}
我很茫然!!
编辑
因此看起来 Nginx 正在从这个文件读取:
/etc/nginx/sites-available/default
这里的问题是,这个文件不再存在。我已停止/启动/重新加载 Nginx。它仍然想将该目录附加到 之前/jira
。
答案1
为了解决这个问题,我最终删除了所有 Nginx。我只设置了两个服务器块,因此恢复所有内容并不是什么大问题。
一旦我安装了 Nginx 并设置了我的服务器块,一切都运行正常。
apt-get purge nginx
apt-get install nginx
我知道这可能不是最好的事情但它仍然解决了我的问题。
另外,我没有配置两个单独的服务器块,如下所示:
server {
listen www.xxxx.net:80;
server_name www.xxxx.net;
location / {
location /confluence {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090/confluence;
}
location /jira {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/jira;
client_max_body_size 10M;
}
}
}
添加基本位置非常重要location /
,因为如果没有它,我就不能将我的位置设置为/confluence /jira
如果没有基本位置会导致此错误:
location "/jira" is outside location