您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

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

文章目录

    • http
    • https
    • 检查及 reload

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 即可


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进