日志标签:proxy

Nginx反向代理的配置

分类:技术相关评论:0条作者:邋遢猪仔日期:2010-07-24

实在不知道该怎么说,还是举例说明

server
{
listen 80;
server_name sina.newphp.net;
location / {
proxy_pass http://www.sina.com.cn/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

当然,还可以设置某一个目录是从代理访问的,配置如下

server
{
listen 80;
server_name sina.newphp.net;
location /images {
proxy_pass http://www.sina.com.cn/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

这样http://sina.newphp.net/images/test.jpg实际上就是代理访问的http://www.sina.com.cn/images/test.jpg了,当然也可以是指定的文件类型,修改location一项就行了,比如

location \.(jpe?g|gif|png)$ { … }

就是设置jpg,jpeg,gif,png文件的反向代理。在修改好nginx.conf后,重启nginx,域名解析生效后就可以通过sina.newphp.net来访问新浪了,当然,我实际上没这样设置,只是举这样一个例子说明。

不知道从哪个版本开始,就默认开启proxy功能了,如果你的nginx版本比较老,而且没有开启proxy功能,就要重新编译,如果我没记错,那个configure选项应该是–with-http_proxy_module

另外,nginx里的proxy设置的参数还有这些:(不完全,内容源于:http://sudone.com/conf/nginx_proxy.conf.html

proxy_set_header (设定header)
proxy_hide_header (隐藏header)
proxy_pass_header (通过header)
proxy_connect_timeout (代理连接超时)
proxy_send_timeout (代理发送超时)
proxy_read_timeout (代理接收超时)
proxy_temp_file_write_size (设定缓存文件夹大小)
proxy_buffer_size (代理缓冲大小)
proxy_buffers (代理缓冲)
proxy_busy_buffers_size (高负荷下缓冲大小)
proxy_ignore_client_abort (不允许代理端主动关闭连接)
proxy_set_header (设定header)

更具体的说明请移步nginx官方说明页面

本文原创,转载请注明来自:http://www.newphp.net/contents/160-nginx-proxy-config-and-set