nginx配置不允许通过IP只允许通过域名进行访问

16 篇文章 1 订阅
5 篇文章 1 订阅

http

做运维的时候出过一次生产事故,官网被封了,原因说是有未备案的域名直接解析到我们公司官网的IP, 导致直接封对IP封锁。
多方沟通溯源发先是我们开发同学自己买了个域名直接解析的官网的地址.针对这个事件,做了复盘,提出了写优化方案。其中nginx上配置可允许域名访问就是其一
具体配置如下。

# 禁止通过ip地址访问
 server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 400;
}
# 允许通过域名访问-自动跳转到https
 server {
    listen 80;
    server_name 你的域名.com;
    rewrite ^(.*) https://$server_name$1 permanent;

}

https

# 禁止通过ip地址访问-https
server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    #ssl on;
    ssl_certificate 3935979_www.slience.com.pem;
    ssl_certificate_key 3935979_www.slience.com.key;
    server_name _;
    return 400;
}
server
  {
    listen 443 ssl;#监听端口
    server_name 你的域名.com;#域名
    index index.html index.htm index.php;
    ssl_certificate 你的证书.pem;
    ssl_certificate_key 你的证书key.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    root /home/web/html;#你的站点目录
      location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
  # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
   # access_log off;
    }
    access_log off;
  }

检查及 reload

nginx -t 检查下是否有配置错误。
之后 reload 一下 nginx 即可

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zack_snair

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值