如何禁用ip地址直接访问网站

时间:2015-03-17 16:47:25

标签: nginx dns ip server cloudflare

我在VPS上有一个网站。

我遇到的问题是,当我输入服务器的IP时,它会链接到网站 即使进入mail.domain.com,它也会做同样的事情。

如何禁用该功能,以便访问者收到消息或定向到域?

我尝试禁用IP并在云端闪存上发送记录,但它没有用。

我的设置是:

VPS on Linux Debian 
Nginx
no control panel just command line
Cloudflare
DNS setup with BIND

9 个答案:

答案 0 :(得分:25)

您可以使用redirect,nginx config:

server {
        listen 80;
        server_name IP_ADDRESS;
        return 301 http://YOUR.DOMAIN;
}

答案 1 :(得分:18)

您可以在其他人之前添加服务器指令。

server {
    listen 80;
    server_name _;
    return 404;
}

答案 2 :(得分:16)

server {
    listen      80 default_server;
    listen      [::]:80 default_server;
    server_name "";
    return      444;
}

您需要指定default_server参数,以便所有不可用的服务器请求都转到此server block,这会引发444 error

444:关闭时没有响应

参考:https://httpstatuses.com/444

答案 3 :(得分:1)

您可以尝试在以下位置设置服务器IP地址:

/etc/nginx/conf.d/default.conf

所以它看起来像这样:

server {
    listen 80;
    server_name localhost IP.OF.VPS.HERE;

然后您可以指定子域vhost,如:

server {
        listen 80;
        server_name subdomain.domain.com;

主要域名,如:

server {
        listen 80;
        server_name www.domain.com domain.com;

然后重启Nginx:

/etc/init.d/nginx restart

每个vhost都应该有自己的* .conf文件(为了更好的组织),例如:

/etc/nginx/conf.d/subdomain.domain.com.conf
/etc/nginx/conf.d/domain.com.conf
/etc/nginx/conf.d/default.conf

答案 4 :(得分:1)

您可以返回任何您认为合适的错误。可在此处找到错误列表List_of_HTTP_status_codes

server {
    listen      x.x.x.x:80;
    server_name x.x.x.x;
    return      404;
}  

答案 5 :(得分:1)

您可以使用redirect,nginx config:

server {
        listen 80;`enter code here`
        server_name IP_ADDRESS;
        return 301 http://YOUR.DOMAIN;
}

答案 6 :(得分:0)

V(1)=300
M(1)=0
for i=2:n
    V(i) = V(i-1) - 0.5*dx*(w(i-1)+w(i))
    M(i) = M(i-1) + 0.5*dx*(V(i-1)+V(i))
end

答案 7 :(得分:0)

将此文件放置在/etc/nginx/conf.d/SERVER_IP_ADDRESS.conf文件的顶部,并注释其下面的所有内容。

#disabling accesing server by ip address
server {
        listen SERVER_IP_ADDRESS:80 default;
        server_name _;
        return 404;
}

然后重新启动Nginx服务器(在Ubuntu上,通过service nginx restart此命令完成)

现在,当您将服务器的IP地址放入浏览器的url字段时,会出现404错误。

答案 8 :(得分:0)

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    listen 443 default_server;
    listen [::]:443 default_server;
    return 444;
}

不要为接收器支持 HTTP/2 或 SSL 连接而烦恼。 它确实包罗万象,没有那些不必要的东西。 对于不受支持的,它只是拒绝这种连接。

https://stackoverflow.com/a/68042877/4510033