nginx: [warn] conflicting server name “这里是域名 eg:abc.com” on 0.0.0.0:80, ignored解决方法

解决方向如下:

在/usr/local/nginx/conf/vhost 下面有很多配置文件,出现这个错误,说明域名有重复,在多个配置文件中都有这个域名。

所以只在vhost目录下只保存 需要的配置文件就可以了,只给不需要的配置文件改名字是不能解决问题的,把不需要的配置文件可以保存在vhost下面新建立的一个文件夹中就可以解决这个问题了。
nginx 网站默认地址 /home/wwwroot/default/

if ($request_uri ~ “xxx.php?xxx”) {
set $iftmp Y;
}
if ($http_user_agent ~ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)”) {
set $iftmp “${iftmp}Y”;
}
if ($iftmp = YY) { return 400;}
location / {
proxy_pass https://172.0.0.11;
}

重点一 set $iftmp Y 将iftmp设置为Y,set命令是一个大大的亮点
重点二 还是set部分set $iftmp “${iftmp}Y” 在set里面 ${iftmp}Y将参数叠加一次,${iftmp}是一个大大的亮点.
$request_uri是客户端请求的完整请求路径,$http_user_agent是用户端发出请求的浏览器参数.
上面的if判断是一个简单防cc攻击的原型,一般普通的cc攻击会固定攻击页面,然后浏览器参数也大多不变,当前两个if参数同时满足后第三个if就直接返回给请求端400错误,
这样就完成了一次简单的过滤cc攻击请求到正常页面,根据上面的实例可以依葫芦画瓢进行其他一些应用使用.
假设我们需要对 /admin/ 路径进行rewrite,但同时要排除 /admin/images/ 路径不对该路径进行rewrite,可以采用下面的解决办法:
代码如下 复制代码
set $doRewrite “0”;
if ($request_uri ~ ^/admin/) {
set $doRewrite “1”;
}
if ($request_uri ~ ^/admin/images/) {
set $doRewrite “0”;
}
if ($doRewrite = “1”) {
// do rewrite
}