删除默认的nginx欢迎页面时,直接从ip地址访问

eqfvzcg8  于 2023-06-28  发布在  Nginx
关注(0)|答案(9)|浏览(368)

在我的ubuntu服务器上,我安装了nginx,并使用本文设置了虚拟主机。https://www.digitalocean.com/community/articles/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts--3
虚拟主机的域名类似于www.example.com。当我转到www.example.com时,我可以看到我的应用程序的索引页。但是,当我去真实的的ip地址,我仍然看到nginx欢迎页面。如果有人使用IP地址访问我的网站,我该如何删除此欢迎页面或指向www.example.com?
我设置了一个A记录,将IP xxx.xxx.xxx.xxx指向www.example.com。

fivyi3re

fivyi3re1#

我想当你第一次设置nginx时,它附带了一个default虚拟主机。你试过把它拿掉吗?你试过删除符号链接吗?第三个选项是在默认虚拟主机的位置/上添加deny all;
我不确定这是否有效,我现在不能测试它。如果以上方法不起作用,请尝试以下操作:http://nginx.org/en/docs/http/request_processing.html#how_to_prevent_undefined_server_names
http://your-server-ip/是一个未定义服务器名称的请求。您应该能够使用以下命令阻止它:

server {
    listen      80;
    server_name "";
    return      444;
}
u5rb5r59

u5rb5r592#

您需要删除位于/etc/nginx/sites-enabled中的文件default

rm /etc/nginx/sites-enabled/default

然后重启nginx:

service nginx reload
ny6fqffe

ny6fqffe3#

如果你想删除默认的nginx服务器块,你可以使用命令:

sudo unlink /etc/nginx/sites-enabled/default

这将从文件夹中删除符号链接:/etc/nginx/sites-enabled/
仍然会有文件/etc/nginx/sites-available/default,但它将不再处于活动状态。
如果您有另一个服务器块来处理您的域,例如example.com与一些网站有,比如果有人去你的服务器的IP地址,比你的网站example.com将被送达.
如果您有多个域,则需要多个服务器块。为了确保其中一个块作为默认块,您可以编辑/etc/nginx/sites-available/example.com,以便在listen指令中包含default_server选项,例如:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
            try_files $uri $uri/ =404;
    }
}
u5i3ibmn

u5i3ibmn4#

配置为

server {
    listen      80;
    server_name xxxx;
    return      444;
}

我得到502为所有uri,包括我的应用程序url。
我在/etc/nginx下没有找到sites_enabled文件夹,相反,我的默认站点位于/usr/share/nginx/html
所以我创建了另一个空白页
/usr/share/nginx/html/blank
创建空白index.html

# echo >> index.html

然后编辑default.conf

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}

然后主页变成空白,隐藏nginx信息。
顺便说一下,如果你去掉

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}

或设置

location / {
    try_files $uri $uri/ = 404;
}

你会得到404在主页上,但显示“Nginx版本”,这是不好的。

guicsvcw

guicsvcw5#

如果您删除了/etc/nginx/sites-available下的default并重新启动nginx,欢迎页面仍然显示,请查看/etc/nginx/conf.d下是否有default.conf并删除它,然后重新启动nginx。

5gfr0r5j

5gfr0r5j6#

例如,要disable一个站点,default

rm /etc/nginx/sites-enabled/default

/etc/nginx/sites-enabled/default只是/etc/nginx/sites-available/default的符号链接。所以删除它不会删除原来的。
enable某个站点:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/<mysite>

最后,重新加载更改:

sudo systemctl reload nginx.service
nuypyhwy

nuypyhwy7#

默认虚拟主机通常位于/etc/nginx/conf.d//etc/nginx/sites-enabled/上(作为符号链接)
从所有可能的位置删除默认虚拟主机:

rm -rf /etc/nginx/conf.d/default.conf
rm -rf /etc/nginx/sites-enabled/default.conf
rm -rf /etc/nginx/sites-available/default.conf

然后重新启动nginx

service nginx restart

如果/etc/nginx/nginx.conf不起作用,请检查您的包含。

fkvaft9z

fkvaft9z8#

在我的情况下,我不得不删除 * 两个 * 链接到默认网站:

sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
sudo rm /etc/nginx/sites-enabled/default
dwthyt8l

dwthyt8l9#

上面的建议对我有效,默认服务器为我屏蔽了GitLab。如果您想保留default文件供以后使用而不删除它,则可以在/etc/nginx/nginx.conf中的下面一行前面放置一个#来注解它:

#    include /etc/nginx/sites-enabled/*;

你可以重新加载nginx

nginx -s reload

或者从系统控制重新启动它

sudo systemctl restart nginx

相关问题