图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)

Posted 广东互动学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)相关的知识,希望对你有一定的参考价值。

一、安装

1、用yum命令安装

yum install nginx -y

2、nginx -t 可用来检查一遍是否配置脚本运行正常

图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)

3、启动服务

systemctl start nginx.service

4、服务配置为自动启动

systemctl enable nginx.service

二、配置文件

配置文件为 /etc/nginx/nginx.conf

基本结构是

图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)

三、配置中禁止恶意解析,禁止ip直接访问

国内网站的特殊性,国内空间必须备案才能使用,如果域名指向某一空间ip而未备案,会导致该空间被强制关闭。正常情况下,你给自己的域名指向自己的空间并做了备案处理就结束了。但是此时如果有第三方恶意的将其它域名解析指向你的空间,则你的空间和该域名之间就属于未备案状态了。结果是导致你的空间收到处罚。

禁止恶意解析,禁止ip直接访问的目的,就是让本服务器仅响应自己指定的域名,对第三方的域名接入或者ip直接接入返回错误,达到禁止恶意解析的目的。

在前述配置文件的server块处,添加以下块内容

server {

listen 80 default_server;

server_name _;

return 403;

}

修改原server_name块,其中server_name填写自己的域名

图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)

多个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直访,防恶意解析)的主要内容,如果未能解决你的问题,请参考以下文章

odoo12配置centos7服务器域名访问

关于centos7下nginx配置多个server的问题?

基于阿里云服务器ECS CentOS7.6+WordPress Nginx 配置HTTPS

nginx一台服务器部署多个域名和证书

nginx服务器配置多域名

nginx服务器绑定多个域名支持pathinfo路由隐藏index.php入口文件