nginx 选择错误的虚拟主机

nginx 选择错误的虚拟主机

(免责声明:是的,我知道有很多这样的问题,但在发布这篇文章之前我确实搜索了大约半个小时)

我正在尝试设置 zabbix 来监控 nginx,方法ngx_http_stub_status_module如下本教程

这是在我的开发服务器上,所以配置文件很简单...我的主要站点.conf 文件是...

例子.conf

server {
    listen 80;

    server_name example.com www.example.com;

    location /static/ {
        root /var/www/example.com/example;
    }


    location / {

                proxy_set_header Host $http_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;

        proxy_pass http://unix:/run/gunicorn.example.sock;
    }
}

然后我想要一个单独的虚拟主机进行监控,如果没有别的,只是为了练习

基本状态.conf

server {
        listen 80;

        server_name localhost;

        access_log      /var/log/nginx/server_status.log main;

        location = /basic_status {
                stub_status;
                allow 127.0.0.1;
                allow ::1;
                deny all;
            }
}

对于basic_status.conf文件,我也尝试了以下操作

listen 127.0.0.1;
server_name 127.0.0.1;
server_name localhost.test;  #with a corresponding  127.0.0.1 localhost.test in /etc/hosts

并访问我尝试过的页面...

curl localhost/basic_status
curl localhost
curl 127.0.0.1/basic_status
curl 17.0.0.1
curl localhost.test/basic_status
curl localhost.test

但我得到的只是。

[error] 2467#2467: *1 connect() to unix:/run/gunicorn.example.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.example.sock:/", host: "localhost"

我并不想仅仅为了练习\学习如何正确地执行此操作而使用 default_server。

我知道答案可能很简单而且明显...:-) 但我现在不知所措。

编辑:
文件位置是

/etc/nginx/sites-available/example.conf
/etc/nginx/sites-available/basic_status.conf

都带有符号链接/etc/nginx/sites-enabled/

使用 Ubuntu 20.04

编辑2:

事实证明我实际上并没有.conf在 basic_status 的末尾,直到按照评论中的理查德·史密斯 (Richard Smith) 建议的那样做,nginx -T我才发现它甚至没有拾取该文件。

相关内容