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

ang*_*okh 17 ubuntu nginx

在我的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.

ddu*_*tra 31

我想当你第一次设置nginx时,它带有一个"默认"虚拟主机.你试过删除吗?你试过删除符号链接吗?第三种选择是添加"全部拒绝"; 在默认虚拟主机的位置/上.

我不确定这是否有效,我现在无法测试.如果上述方法不起作用,请尝试以下方法: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;
}
Run Code Online (Sandbox Code Playgroud)

  • 第 3 个选项有效。我只是将这个未定义的服务器提供给我的虚拟主机配置,然后重新启动 nginx。有用! (2认同)

use*_*980 17

您需要删除default位于以下位置的文件/etc/nginx/sites-enabled:

rm /etc/nginx/sites-enabled/default
Run Code Online (Sandbox Code Playgroud)

然后重启nginx:

service nginx reload
Run Code Online (Sandbox Code Playgroud)

  • 如果禁用默认站点,nginx 将使用第一个遇到的匹配服务器块作为后备站点。 (4认同)

小智 11

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

sudo unlink /etc/nginx/sites-enabled/default
Run Code Online (Sandbox Code Playgroud)

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

仍然会有文件,/etc/nginx/sites-available/default但它不再处于活动状态。

如果您有另一个服务器块来处理您的域,例如 example.com 和某个网站,那么如果有人访问您服务器的 IP 地址,那么您的网站 example.com 将被提供。

如果您有多个域,则需要多个服务器块。为了确保这些块之一作为默认块,您可以编辑/etc/nginx/sites-available/example.comdefault_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;
    }
}
Run Code Online (Sandbox Code Playgroud)


Bej*_*ond 6

配置为

server {
    listen      80;
    server_name xxxx;
    return      444;
}
Run Code Online (Sandbox Code Playgroud)

我为所有 uri 得到 502,包括我的应用程序 url。


我没有sites_enabled在 下找到文件夹/etc/nginx,相反,我的默认站点位于/usr/share/nginx/html

所以我创建了另一个位于

/usr/share/nginx/html/blank

创建一个空白的 index.html

# echo >> index.html
Run Code Online (Sandbox Code Playgroud)

然后编辑default.conf

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}
Run Code Online (Sandbox Code Playgroud)

然后主页变为空白,隐藏了 nginx 信息。


顺便说一句,如果你删除

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}
Run Code Online (Sandbox Code Playgroud)

或设置

location / {
    try_files $uri $uri/ = 404;
}
Run Code Online (Sandbox Code Playgroud)

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


Gay*_*tti 6

disable例如,对于一个站点default

rm /etc/nginx/sites-enabled/default
Run Code Online (Sandbox Code Playgroud)

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

enable一个站点:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/<mysite>
Run Code Online (Sandbox Code Playgroud)

最后重新加载更改:

sudo systemctl reload nginx.service
Run Code Online (Sandbox Code Playgroud)


and*_*ape 5

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

  • 我已经完成了这两件事,但我在这里是因为页面仍然显示。 (3认同)