
为了避免别人把未备案的域名恶意解析到自己的服务器IP而导致服务器被断网,需要在Nginx上设置禁止通过IP或其他域名访问服务器。只能通过绑定的指定域名访问
一、只需在server配置文件中添加如下配置
1)80端口的配置
server {
listen 80 default;
server_name _;
rewrite 444;
}
#以上为屏蔽IP/非指定域名访问返回错误444配置
#
#以下为正常配置
#test1.orcy.net.cn 和 test2.orcy.net.cn 可以正常访问
server {
listen 80 ;
server_name test1.orcy.net.cn;
location / {
root html;
index index.html;
}
}
server {
listen 80;
server_name test2.orcy.net.cn;
root html/test2;
index index.html;
}
说明:通过非指定域名访问,将根据规则返回错误444,也可以设置其他,如502、403、404等,或者跳转其他页面,将 rewrite 444;替换为rewrite ^(.*) http://test1.orcy.net.cn permanent;
2)443端口的配置
443端口配置和80端口一致,但需要添加证书路径(任意证书均可)
server {
#禁止非绑定域名或IP访问443端口
listen 443 ssl;
server_name _;
return 444; #返回错误444,也可返回502、404等
#开启SSL需要添加证书路径,任意证书均可
ssl_certificate cert/orcy_net_cn.pem; #将domain name.pem替换成您证书的文件名
ssl_certificate_key cert/orcy_net_cn.key; #将domain name.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;
error_page 497 301 https://$http_host$request_uri;
}
server {
#此处省略正常配置
}
3)其他端口配置
其他非80/443端口,按照80/443配置模板简单修改即可,开启SSL的配置证书路径即可,否则nginx会报错,提醒server没有证书。
二、重启Nginx或者重载配置
1)重启Nginx
./nginx -s stop
./nginx
2)Nginx重载配置
./nginx -s reload
三、测试结果
如下图,非指定域名访问直接返回错误444

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。



评论(0)