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.wd1x.com.pem;
ssl_certificate_key 3935979_www.wd1x.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 即可
|