一、正向代理的概念
-
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
-
客户端必须要进行一些特别的设置才能使用正向代理。
下面以Nginx为例介绍如何搭建正向代理服务器。
二、Nginx正向代理配置
1 | server { |
三、Nginx正向代理配置说明
- 配置DNS解析IP地址。
比如Google DNS,以及超时时间(5秒)。
1 | resolver 8.8.8.8; |
注意项:
- 不能有hostname。
- 必须有resolver, 即dns,即上面的x.x.x.x,换成你们的DNS服务器ip即可。
- 配置正向代理参数
代理参数均是由Nginx变量组成,其中proxy_set_header部分的配置是为了解决如果URL中带"."(点)后Nginx 503错误。
1 | proxy_pass $scheme://$host$request_uri; #$http_host和$request_uri是Nginx系统变量。 |
- 配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。
1 | proxy_buffers 256 4k; #设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k。 |
- 配置代理服务器 Http 状态缓存时间。
1 | proxy_cache_valid 200 302 10m; |
四、其它
因为Nginx不支持CONNECT,所以无法正向代理Https网站(如:网上银行,Gmail)。
五、参考文档
http://www.google.com
http://crazyming.blog.51cto.com/1048571/564176