• 2022-09-04被罚款200元记6分.
  • 特么的.电脑风扇坏了.快递还全部停发.太难了...求求了.疫情赶紧走吧.
  • 难啊难!要钱难!
  • 更新到WordPress5.6啦
  • 有点伤心了,今年净遇到王某海这种人.
  • 难啊难...
  • 七牛的JS SDK 的文档真坑啊.
  • 蓝奏云分享部分地区无法访问需手动修改www.lanzous.com变为:www.lanzoux.com
  • 好气啊~原来使用的CDN服务商莫名其妙的给我服务取消了~
  • 遇见一个沙雕汽车人.

Nginx设置禁止IP通过80和443端口访问,只允许域名访问.

Linux KIENG 4年前 (2019-09-15) 164447次浏览 已收录 0个吐槽 扫描二维码

Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.

为什么要禁止?

如果不禁止恶意访问者可得到您的源站IP.对你进行攻击.

配置

博主在宝塔面板下配置

如果网站只启用了 80 而未启用 443(SSL)的话.

新建一个站点
Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.

点击配置文件
Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.

server块内添加

        listen 80 default;
        return 444;

返回444 状态码nginx 特有的状态码直接端口连接.

Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.
(上图已以前我的配置,返回的是 403,改为 444 即可)

直接访问IP

Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.

如果您启用了 443(SSL)

配置如下

server
    {
        listen 80 default;
        listen 443 default_server;
        server_name _;
        return 444;
        ssl_certificate    /etc/letsencrypt/live/随便有证书的网站地址/fullchain.pem;
        ssl_certificate_key    /etc/letsencrypt/live/随便有证书的网站地址/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM- 
        SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        error_page 497  https://$host$request_uri;
    } 

如图:
Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.

为什么要加上 ssl 证书的配置?

Nginx 上对于 SSL 服务器在不配置证书的时候会出现协议错误,哪怕端口上配置了其他网站也会报错。解决方法就是随便生成一个证书填进去就好。

Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.

如果站点加了 CDN,建议除 CDN 的IP之外的IP全部黑名单.等以后再写一篇文章吧.


KIENG.CN , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权
转载请注明出处:Nginx 设置禁止 IP 通过 80 和 443 端口访问,只允许域名访问.
本文章链接:https://blog.kieng.cn/1569.html
喜欢 (18)
KIENG
关于作者:
一个热衷网络的Man
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 快速获取昵称
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址