首页 > 解决方案 > nginx没有绑定到所有接口

问题描述

我编写了一个新的默认 conf(覆盖默认的默认 conf),但文件仅在本地提供。但是,文件不在本地主机之外提供

curl my_ip/a >> not found
curl 127.0.0.1/a >> "it works!"

(a 是 /var/www/html 中的文件)

这是我的配置

server {
    listen *:80 default_server;
    listen [::]:80 default_server;
    index index.html index.htm index.nginx-debian.html;
    server_name _;
    root /var/www/html;
    location / {
        try_files $uri $uri/ =404;
    }
    location /test {
        stub_status on;
    }
   location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }
}

根据一些文章,我尝试在位置 / 中添加根指令,使用 index 而不是 try_files ...我无法理解的是,如果我将 *:80 替换为本地接口 IP(192.168.1.x)然后它在局域网/互联网上工作,但不再来自本地主机。

似乎 nginx 只听一个接口(而 *:80 或 80 应该听所有)。

卷曲 index.html(来自公共 IP 或本地主机)提供文件,但不是 /var/www/html 下的文件,而是默认的 /use/share/nginx..)

我启用了其他配置,但没有一个具有 default_server 或 server_name _; 指令。

根据 nginx.conf 仅在 /etc/nginx/site-enabled 文件夹中搜索 conf。

顺便说一句,我有两个 nic。

谢谢您的帮助 :)

更新:它现在正在工作

listen 80 default_server;
listen [::]:80 default_server;
index index.html index.htm index.nginx-debian.html;

server_name _;

root /var/www/html;
location / {
        try_files $uri $uri/ =404;
}

location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    allow ::1;
    deny all;
}

问题一定出在其他地方,但不知道在哪里......

标签: nginx

解决方案


推荐阅读