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

Ubuntu 直接从ip地址访问时删除默认的nginx欢迎页面,ubuntu,nginx,Ubuntu,Nginx,在我的ubuntu服务器上,我使用本文安装nginx并设置虚拟主机。 虚拟主机的域名类似于www.example.com。当我访问www.example.com时,我可以看到我的应用程序的索引页面。但是,当我转到真正的ip地址时,仍然会看到nginx欢迎页面。如果有人使用ip地址访问我的网站,我如何删除此欢迎页面或指向www.example.com 我设置了一个记录,将ip xxx.xxx.xxx.xxx指向www.example.com。我认为当您第一次设置nginx时,它附带了一个“默认”

在我的ubuntu服务器上,我使用本文安装nginx并设置虚拟主机。

虚拟主机的域名类似于www.example.com。当我访问www.example.com时,我可以看到我的应用程序的索引页面。但是,当我转到真正的ip地址时,仍然会看到nginx欢迎页面。如果有人使用ip地址访问我的网站,我如何删除此欢迎页面或指向www.example.com


我设置了一个记录,将ip xxx.xxx.xxx.xxx指向www.example.com。

我认为当您第一次设置nginx时,它附带了一个“默认”虚拟主机。你试过把它拿走吗?您是否尝试删除符号链接? 第三个选项是在默认虚拟主机的位置/上添加“拒绝所有;”

我不确定这是否有效,我现在无法测试。如果上述方法无效,请尝试以下方法:

http://your-server-ip/
是一个服务器名称未定义的请求。您应该能够通过以下方式阻止它:

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

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

rm /etc/nginx/sites-enabled/default
然后重新启动nginx:

service nginx reload

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

配置为

server {
    listen      80;
    server_name xxxx;
    return      444;
}
我得到502的所有uri,包括我的应用程序url


我没有在
/etc/nginx
下找到启用的
站点
文件夹,相反,我的默认站点位于
/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版本”,这并不好。

要禁用站点,例如,
默认值

rm /etc/nginx/sites-enabled/default
/etc/nginx/sites enabled/default
只是指向
/etc/nginx/sites available/default
的符号链接。因此,删除它不会删除原始文件

要启用站点,请执行以下操作:

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

在我的情况下,我必须删除默认站点的两个链接:

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

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

sudo unlink /etc/nginx/sites-enabled/default
这将从文件夹中删除符号链接:
/etc/nginx/sites enabled/

仍将有文件
/etc/nginx/sites可用/默认值
,但它将不再处于活动状态

如果您有另一个服务器块处理您的域,例如example.com和某个网站,则如果有人访问您服务器的ip地址,则example.com网站将得到服务

如果有多个域,则需要多个服务器块。为确保其中一个块用作默认块,您可以编辑
/etc/nginx/sites available/example.com
以在listen指令中使用
default\u 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;
    }
}

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

#包括/etc/nginx/sites enabled/*;
之后可以重新加载nginx

nginx-s重新加载
或者从系统控制重新启动它

sudo systemctl restart nginx

默认虚拟主机通常位于
/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上的包含项。

我已经从/etc/nginx/sites enabled/中删除了默认包含项。第三个选项有效。我只是将这个未定义的服务器提供给我的虚拟主机配置,然后重新启动nginx。它起作用了!将
default\u服务器
添加到端口80是为我所做的。如果我要付出这么多努力,最好通过删除Nginx版本so+1 for blank index来确保安全。htmlIt解决了我的问题。但是,我在命令前面加了
sudo
。干杯:)我已经做到了,但我在这里,因为页面仍然显示。
service nginx restart