<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GzV8.com &#187; ip</title>
	<atom:link href="http://www.gzv8.com/archives/tag/ip/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gzv8.com</link>
	<description>互联网引擎</description>
	<lastBuildDate>Thu, 06 Jan 2011 04:08:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>nginx geo模块 实现分布式均衡负载</title>
		<link>http://www.gzv8.com/archives/227</link>
		<comments>http://www.gzv8.com/archives/227#comments</comments>
		<pubDate>Thu, 11 Mar 2010 07:33:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nginx]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[分布式]]></category>
		<category><![CDATA[均衡负载]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=227</guid>
		<description><![CDATA[nginx的geo模块可以做全局负载均衡，可以要根据客户端ip访问到不同的server。比如，可以将电信的用户访问定向到电信服务器，网通的用户重定向到网通服务器。
我这里实现只有移动手机用户才能访问服务器。首先要收集全移动网关ip.
配置如下：
worker_processes 1;
events {
        worker_connections 1024;
}
http {
        include         mime.types;
        default_type    application/octet-stream;
        sendfile        on;
        keepalive_timeout 65;
        geo $cmccip {
                default 1;　　　#　未定义ip的值为1
                include cmcc.conf; 加载geo.conf文件，这个文件定义移动网关ip
        }
        server {
                listen 801;
                server_name XXXXX;
                location / {
                        if ($cmccip) {
                                rewrite ^ http://tx.com.cn;   未定义ip即非移动ip重定向到tx.com.cn;
                        }
                        root /data/www;
                        index index.wml index.html;
                }
        }
}
cmcc.conf文件内容如下：
211.136.222.90/32 0;
]]></description>
			<content:encoded><![CDATA[<p>nginx的geo模块可以做全局负载均衡，可以要根据客户端ip访问到不同的server。比如，可以将电信的用户访问定向到电信服务器，网通的用户重定向到网通服务器。<br />
我这里实现只有移动手机用户才能访问服务器。首先要收集全移动网关ip.<br />
配置如下：</p>
<p>worker_processes 1;<br />
events {<br />
        worker_connections 1024;<br />
}</p>
<p>http {<br />
        include         mime.types;<br />
        default_type    application/octet-stream;<br />
        sendfile        on;<br />
        keepalive_timeout 65;<br />
        geo $cmccip {<br />
                default 1;　　　#　未定义ip的值为1<br />
                include cmcc.conf; 加载geo.conf文件，这个文件定义移动网关ip<br />
        }<br />
        server {<br />
                listen 801;<br />
                server_name XXXXX;<br />
                location / {<br />
                        if ($cmccip) {<br />
                                rewrite ^ http://tx.com.cn;   未定义ip即非移动ip重定向到tx.com.cn;<br />
                        }<br />
                        root /data/www;<br />
                        index index.wml index.html;</p>
<p>                }<br />
        }<br />
}</p>
<p>cmcc.conf文件内容如下：<br />
211.136.222.90/32 0;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/227/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_rpaf , 令 Nginx 后端的 Apache  获取到互联网 IP</title>
		<link>http://www.gzv8.com/archives/111</link>
		<comments>http://www.gzv8.com/archives/111#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:40:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[mod_rpaf]]></category>

		<guid isPermaLink="false">http://www.gzv8.com/?p=111</guid>
		<description><![CDATA[自从Nginx出现以后，我们都喜欢让 Nginx 跑在前方处理静态文件，然后通过 proxy 把动态请求过滤给 apache。
这么有个问题，跑在后方 apache 上的应用获取到的IP都是Nginx所在服务器的IP ，或者是本机 127.0.0.1 。
最明显就是查看 apache 的访问日志。就会见到来来去去都是内网的IP。
如果你的应用有诸如，“单个IP不能重复登陆”，“单个IP注册相隔n分钟”&#8230; 之类用于IP判别的安全规则。
这么就麻烦了&#8230;.
但还好，你可以通过修改 nginx proxy 的参数令后端应用获取到 Nginx 发来的请求报文获取到外网的IP。
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
但这解决的问题单单只是应用上，apache 日志上所获取的ip依然还是本地。
特别有些考虑不周全的应用，例如 Tattertools (一个博客程序) 就会犯误。
后台的访问日志死活显示访客数 1，ip来自 127.0.0.1
搜寻了一下，发现了apache这一个来自第三方的mod 配合Nginx proxy 使用。
说明：http://stderr.net/apache/rpaf/
下载：http://stderr.net/apache/rpaf/download/
最新版本是 mod_rpaf-0.6.tar.gz  
安装也相当简单。
# tar zxvf mod_rpaf-0.6.tar.gz   下载后解压
# cd mod_rpaf-0.6 
Apache 的目录按自己的环境修改，并选择相应的安装方式：
#/usr/local/apache/bin/apxs -i -a -c mod_rpaf.c    Apache 1.3.x 的安装方式
#/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c   Apache 2.x [...]]]></description>
			<content:encoded><![CDATA[<p>自从Nginx出现以后，我们都喜欢让 Nginx 跑在前方处理静态文件，然后通过 proxy 把动态请求过滤给 apache。</p>
<p>这么有个问题，跑在后方 apache 上的应用获取到的IP都是Nginx所在服务器的IP ，或者是本机 127.0.0.1 。<br />
最明显就是查看 apache 的访问日志。就会见到来来去去都是内网的IP。</p>
<p>如果你的应用有诸如，“单个IP不能重复登陆”，“单个IP注册相隔n分钟”&#8230; 之类用于IP判别的安全规则。<br />
这么就麻烦了&#8230;.</p>
<p>但还好，你可以通过修改 nginx proxy 的参数令后端应用获取到 Nginx 发来的请求报文获取到外网的IP。</p>
<p>proxy_set_header        Host $host;<br />
proxy_set_header        X-Real-IP $remote_addr;<br />
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;</p>
<p>但这解决的问题单单只是应用上，apache 日志上所获取的ip依然还是本地。</p>
<p>特别有些考虑不周全的应用，例如 <a href="http://tattertools.com/" target="_blank">Tattertools</a> (一个博客程序) 就会犯误。<br />
后台的访问日志死活显示访客数 1，ip来自 127.0.0.1</p>
<p>搜寻了一下，发现了apache这一个来自第三方的mod 配合Nginx proxy 使用。</p>
<p>说明：<a href="http://stderr.net/apache/rpaf/">http://stderr.net/apache/rpaf/</a></p>
<p>下载：<a href="http://stderr.net/apache/rpaf/download/">http://stderr.net/apache/rpaf/download/</a></p>
<p>最新版本是 mod_rpaf-0.6.tar.gz  </p>
<p>安装也相当简单。</p>
<p># tar zxvf mod_rpaf-0.6.tar.gz   下载后解压</p>
<p># cd mod_rpaf-0.6 </p>
<p>Apache 的目录按自己的环境修改，并选择相应的安装方式：</p>
<p>#/usr/local/apache/bin/apxs -i -a -c mod_rpaf.c    Apache 1.3.x 的安装方式<br />
#/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c   Apache 2.x 的安装方式</p>
<p>完成后会在 http.conf  的 LoadModule 区域 为你多加了一行。</p>
<p>LoadModule mod_rpaf-2.0.so_module modules/mod_rpaf-2.0.so</p>
<p>经 apache 2.2.6 的实验，使用这一行启动 apache 的时候会报错的。</p>
<p>所以改为：<br />
LoadModule rpaf_module        modules/mod_rpaf-2.0.so<br />
并在下方添加</p>
<p>RPAFenable On<br />
RPAFsethostname On<br />
RPAFproxy_ips 127.0.0.1 192.168.10.2    # 填写Nginx所在的内网IP。<br />
RPAFheader X-Forwarded-For</p>
<p>保存退出后重启apache</p>
<p>再看看 apache 的日志内容？ 呵，不再是来来去去的那几个IP了吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gzv8.com/archives/111/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

