<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘新修]]></title> 
<link>http://pic1.liuxinxiu.com:80/index.php</link> 
<description><![CDATA[刘新修的个人博客 (Liuxinxiu'S Blog)]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘新修]]></copyright>
<item>
<link>http://pic1.liuxinxiu.com:80/s//</link>
<title><![CDATA[Nginx禁止通过IP,未绑定域名访问服务器 ]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[web服务器]]></category>
<pubDate>Tue, 14 Sep 2010 05:54:22 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/s//</guid> 
<description>
<![CDATA[ 
	<p>今天要在Nginx上设置禁止通过IP访问服务器，只能通过域名访问，这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网，从网络上搜到以下解决方案：<br />==============================<br />nginx的默认虚拟主机在用户通过IP访问，或者通过未设置的域名访问（比如有人把他自己的域名指向了你的ip）的时候生效<br /><br />最关键的一点是，在server的设置里面添加这一行：<br />listen 80 default;<br />后面的default参数表示这个是默认虚拟主机。<br /><br />这个设置非常有用。<br />比如别人通过ip或者未知域名访问你的网站的时候，你希望禁止显示任何有效内容，可以给他返回500.<br />目前国内很多机房都要求网站主关闭空主机头，防止未备案的域名指向过来造成麻烦。就可以这样设置：<br />server &#123;<br />listen 80 default;<br />return 500;<br />&#125;<br /><br />也可以把这些流量收集起来，导入到自己的网站，只要做以下跳转设置就可以：<br />server &#123;<br />listen 80 default;<br />rewrite ^(.*) http://www.mydomain.com permanent;<br />&#125;<br />==============================<br /><br />按照如上设置后，确实不能通过IP访问服务器了，但是在应该用中出现当server_name后跟多个域名时，其中一个域名怎么都无法访问：<br /><br />设置如下：<br />server<br />&#123;<br />listen 80;<br />server_name www.abc.com abc.com<br />没更改之前，通过server_name 中的www.abc.com abc.com均可访问服务器，加入禁止IP访问的设置后，通过abc.com无法访问服务器了，www.abc.com可以访问<br /><br />用 nginx -t 检测配置文件会提示warning：<br /><br />[warn]: conflicting server name &ldquo;abc.com&rdquo; on 0.0.0.0:80, ignored<br />the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok<br />configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful<br /><br />最后通过在listen 80 default;后再加server_name _;解决，形式如下：<br /><br />#禁止IP访问<br />server<br />&#123;<br />listen 80 default;<br />server_name _;<br />return 500;<br />&#125;<br />或者<br />server &#123;<br />listen 80 dufault;<br />server_name _;<br />rewrite ^(.*) http://blog.lrenwang.com permanent;<br />&#125;<br />这样，通过abc.com就能访问服务器了，问题解决了</p>
]]>
</description>
</item><item>
<link>http://pic1.liuxinxiu.com:80/s//#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://pic1.liuxinxiu.com:80/s//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>