• 还有半个月就走了…挺好的.
  • 无聊啊,最近也没啥更新的.
  • 妈的,写之前不说,写完了了你说不行.中途我还问你你说对.你真是中国第一Monkey
  • 沃妮马,过的真快!转眼又上班了.等待十月一.
  • 还有1天就是端午节了.过的真快, 在这个公司工作半年啦..
  • 咦~哪个弟弟CC我呢?
  • 简单,简单.我提个思路.
  • 不算今天还有2天就放假了.
  • 一切随缘,随波逐流.
  • 我的天啊,手欠把写了两天的项目删除了,回收站都没有!真是一干二净!心态爆炸!

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

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

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

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