图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)
Posted 广东互动学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)相关的知识,希望对你有一定的参考价值。
一、安装
1、用yum命令安装
yum install nginx -y
2、nginx -t 可用来检查一遍是否配置脚本运行正常
3、启动服务
systemctl start nginx.service
4、服务配置为自动启动
systemctl enable nginx.service
二、配置文件
配置文件为 /etc/nginx/nginx.conf
基本结构是
三、配置中禁止恶意解析,禁止ip直接访问
国内网站的特殊性,国内空间必须备案才能使用,如果域名指向某一空间ip而未备案,会导致该空间被强制关闭。正常情况下,你给自己的域名指向自己的空间并做了备案处理就结束了。但是此时如果有第三方恶意的将其它域名解析指向你的空间,则你的空间和该域名之间就属于未备案状态了。结果是导致你的空间收到处罚。
禁止恶意解析,禁止ip直接访问的目的,就是让本服务器仅响应自己指定的域名,对第三方的域名接入或者ip直接接入返回错误,达到禁止恶意解析的目的。
在前述配置文件的server块处,添加以下块内容
server {
listen 80 default_server;
server_name _;
return 403;
}
修改原server_name块,其中server_name填写自己的域名
多个server情况下,匹配优先级按照server_name格式决定: 准确的>*通配符开始>*通配符结束>正则式
因此自己域名的访问,最先匹配,并指向自己的root目录
其它未知域名或者无域名的访问,只能匹配到server_name _; 结果是返回错误信息。
注意其中写上 default_server 或者default
四、配置支持多域名
通常,一个服务器可用挂载多个网站,节约成本,利用多server块可为不同域名的接入请求配置出不同的目录服务。
例如
五、进一步的配置技巧
server块中,server_name可以是准确的域名,
也可以是通配符字符串,例如 *.aaaa.com bbbb.*
也可以是正则式 ,例如 ~^(?.+).aaaa.com$;
其中括号中取得的内容可用$1这类标记在随后的本地路径配置中引用
由于server块中的location也是可用正则式匹配url的,如果location也使用了正则,则会影响先前server_name正则取出的变量。解决办法是用set命令将server_name正则取出的变量存放在临时变量中
例如
server_name ~^(?.+).aaaa.com$;
set $temp $1;
nginx是一款非常强大的服务器软件,本文介绍的配置可以快速为你搭建一个自己的网站,但是更多的配置细节,建议您参考专门的书籍。
来源丨有只狗狗叫多多
以上是关于图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)的主要内容,如果未能解决你的问题,请参考以下文章