位置上下文在 NGINX 配置文件中不起作用

Location context not working in NGINX config file

我是 nginx 的新手,正在编写配置文件我正在编辑位于 /etc/nginx/sites-available/default 的默认文件,我正在使用 Ubuntu OS.

我在访问托管在服务器

上的 http://localhost:5601 的 kibana 网络 UI 时遇到问题

在我的网络浏览器上,我正在做 http://server-name/ 并且如果我将位置从 /app/home/ 更改为 / 我能够访问 kibana,我可以类似地访问索引文件网页 UI.

但是,当我将位置用作 /app/home/ 时,任何一项服务都无法正常工作,我无法访问 index.html 和 http://localhost:5601.

请让我知道我在做什么错误。

我可以在 nginx access.log 文件中看到请求正在到达

10.32.2.13 - - [24/Nov/2020:09:58:27 +0000] "GET /app/kibana/ HTTP/1.1" 200 20917 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36"

10.32.2.13 - - [24/Nov/2020:09:58:28 +0000] "GET /bundles/app/core/bootstrap.js HTTP/1.1" 404 209 "http://server-name/app/kibana/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36

server {
    listen 80;

    server_name  <server-name>;
    root /usr/share/nginx/elk_website;

    location /app/home/ {
        proxy_pass http://localhost:5601;
        proxy_redirect off;
        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 /{
        index   index.html;
    }

    location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}

您的 kibana Web UI 无法正常工作的原因非常明显 - kibana 请求的资产 URI(/bundles/app/core/bootstrap.js 在您提供的日志的第二行)不属于location /app/home/ { ... } 并正在尝试通过您的根位置 (location / { ... }) 提供服务。要让 kibana 将您的 URI 前缀添加到其资产 URI,您应该更改 kibana.yml 文件中的 server.basePath 值。