nginx未绑定到所有接口

oaxa6hgo  于 2023-04-11  发布在  Nginx
关注(0)|答案(1)|浏览(145)

我写了一个新的默认配置文件(覆盖默认的默认配置文件),但是文件只在本地提供,而不在本地主机之外提供

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),那么它可以在LAN/上工作,但不能从本地主机工作。
nginx似乎只监听一个接口(而 *:80或80应该监听所有接口)。
curl index.html(从公共IP或本地主机)服务于文件,但不是/var/www/html下的文件,而是默认的文件/use/share/nginx..)
我启用了其他配置,但都没有default_server或server_name _;指令
根据nginx.conf,仅在/etc/nginx/site-enabled文件夹中搜索conf。
顺便说一句,我有两个网卡。
谢谢你的帮助:)
更新:现在正在工作

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;
}

问题一定出在别处,但不知道在哪里...

mi7gmzs6

mi7gmzs61#

我只想补充一点,如果你升级了nginx,现在你的网站不工作了--这是因为nginx默认是在80 HTTP端口上创建空站点,你需要修改/etc/nginx/nginx.conf来包含/etc/nginx/sites-enabled/*(并删除/etc/nginx/conf.d中的站点)。安装程序不尝试保留这一点真的很奇怪。

相关问题