<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[Nginx 禁止IP直接访问服务器的配置修改]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Wed, 08 Feb 2012 15:05:38 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	我们在使用的时候会遇到很多的恶意IP攻击，这个时候就要用到Nginx 禁止IP访问了。下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问，或者通过未设置的域名访问（比如有人把他自己的域名指向了你的ip）的时候生效最关键的一点是，在server的设置里面添加这一行：<br/><br/><div class="code"><br/>listen 80 default; <br/></div><br/><br/>后面的default参数表示这个是默认虚拟主机。<br/><br/>Nginx 禁止IP访问这个设置非常有用。<br/><br/>比如别人通过ip或者未知域名访问你的网站的时候，你希望禁止显示任何有效内容，可以给他返回500.目前国内很多机房都要求网站主关闭空主机头，防止未备案的域名指向过来造成麻烦。就可以这样设置：<br/><br/><div class="code"><br/>server &#123;&nbsp;&nbsp;<br/>isten 80 default; <br/>return 500;<br/>&#125; <br/></div><br/><br/>也可以把这些流量收集起来，导入到自己的网站，只要做以下跳转设置就可以：<br/><br/><div class="code"><br/>server &#123;&nbsp;&nbsp;<br/>listen 80 default;&nbsp;&nbsp;<br/>rewrite ^(.*) http://www.mydomain.com permanent;&nbsp;&nbsp;<br/>&#125; <br/></div><br/><br/>按照如上设置后，确实不能通过IP访问服务器了，但是在应该用中出现当server_name后跟多个域名时，其中一个域名怎么都无法访问：<br/><br/>设置如下：<br/><div class="code"><br/>server&nbsp;&nbsp;&#123;&nbsp;&nbsp;<br/>listen 80;&nbsp;&nbsp;<br/>server_name www.abc.com abc.com <br/></div><br/><br/>没更改之前，通过server_name 中的<a href="http://www.abc.com" target="_blank">www.abc.com</a> abc.com均可访问服务器，加入Nginx 禁止IP访问的设置后，通过abc.com无法访问服务器了，<a href="http://www.abc.com" target="_blank">www.abc.com</a>可以访问<br/><br/>用 Nginx -t 检测配置文件会提示warning：<br/><br/><div class="code"><br/>&#91;warn&#93;: conflicting server name “abc.com” on 0.0.0.0:80, ignored&nbsp;&nbsp;<br/>the configuration file /usr/local/webserver/Nginx/conf/Nginx.conf syntax is ok&nbsp;&nbsp;<br/>configuration file /usr/local/webserver/Nginx/conf/Nginx.conf test is successful <br/></div><br/><br/>最后通过在listen 80 default;后再加server_name _;解决，形式如下：<br/><div class="code"><br/>#禁止IP访问&nbsp;&nbsp;<br/>server&nbsp;&nbsp;&#123;&nbsp;&nbsp;<br/>listen 80 default;&nbsp;&nbsp;<br/>server_name _;&nbsp;&nbsp;<br/>return 500;&nbsp;&nbsp;<br/>&#125; <br/></div><br/><br/>这样，通过abc.com就能访问服务器了，问题解决了，但具体原因还是不清楚。<br/><br/><br/>Tags - <a href="http://www.dzhope.com/tags/nginx/" rel="tag">nginx</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] Nginx 禁止IP直接访问服务器的配置修改]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>