Nginx 无法为特定目录正确转发端口 80

Nginx 无法为特定目录正确转发端口 80

好的

我在 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-availablesites-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

相关内容