图解在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;



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值