我写了一个新的默认配置文件(覆盖默认的默认配置文件),但是文件只在本地提供,而不在本地主机之外提供
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;
}
问题一定出在别处,但不知道在哪里...
1条答案
按热度按时间mi7gmzs61#
我只想补充一点,如果你升级了nginx,现在你的网站不工作了--这是因为nginx默认是在80 HTTP端口上创建空站点,你需要修改/etc/nginx/nginx.conf来包含/etc/nginx/sites-enabled/*(并删除/etc/nginx/conf.d中的站点)。安装程序不尝试保留这一点真的很奇怪。