nginx作反向代理服务器
2014-07-08 09:19
267 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://iceeggplant.blog.51cto.com/1446843/1072716
需求:国外买了两台VPS作国内网站的反向代理,国内网站域名统一指向这台代理服务器,再中转访问回来,这是为了暂时绕过域名备案的需求。国内网站的域名使用自建服务器dns_server解析。 解决方案:实际上就是用nginx作个http代理服务器;php等动态页面不做缓存,其它的均缓存代理代理服务器搭建环境:centos5.8 x86_64 nginx0.8.52 安装略。主要配置文档nginx/conf.d/xxx.confvirtual.conf:
匹配php,cgi,jsp动态页面文件访问日志路径. /var/log/nginx/cgi_access.log
错误日志:/var/log/nginx/error.log测试结果:
dns_server上内部网站域名测试, 日志查看记录访问正常,
mirrors.163.com 访问502 bad gateway ,日志:
012/11/27 03:23:08 [error] 4679#0: *20 mirrors.163.com could not be resolved (110: Operation timed out), client: 202.107.x.x, server: _, request: "GET / HTTP/1.1", host: "mirrors.163.com" 2012/11/27 03:23:08 [error] 4679#0: unexpected response for mirrors.163.com
.. 非dns_server上的内部网站是不能通过此台代理服务器手动purge清除缓存测试OK:用法,清除的uri前添加purge即可http://x.x.com/purge/$uri本文出自 “E人空间” 博客,请务必保留此出处http://iceeggplant.blog.51cto.com/1446843/1072716
需求:国外买了两台VPS作国内网站的反向代理,国内网站域名统一指向这台代理服务器,再中转访问回来,这是为了暂时绕过域名备案的需求。国内网站的域名使用自建服务器dns_server解析。 解决方案:实际上就是用nginx作个http代理服务器;php等动态页面不做缓存,其它的均缓存代理代理服务器搭建环境:centos5.8 x86_64 nginx0.8.52 安装略。主要配置文档nginx/conf.d/xxx.confvirtual.conf:
proxy_cache_path /data/nginx/proxy_cache levels=2:2 keys_zone=content:200m inactive=3d max_size=150000m; #设置缓存区名称为content,内存缓存空间大小为200MB,3天没有被访问的内容自动清除,硬盘缓存空间大小为150GB。 server { resolver 222.73.x.x; #当proxy_pass中包含变量的url时,需进行域名解析,指定自建的DNS服务器地址dns_server_ip,所有这台DNS服务器做过解析的域名都将允许转发。 listen 80 default; server_name _; #匹配所有,将默认的nginx.conf配置文件中server主机下的servername _;注释掉否则冲突 access_log /var/log/nginx/access.log main; if ($request_method !~ ^(GET|POST|HEAD)$ ) { return 444; } msie_padding on; msie_refresh on; location / { #匹配/下所有uri缓存并转发 proxy_cache content; proxy_cache_valid 200 304 301 302 1d; proxy_cache_valid any 1m; proxy_cache_key $host$uri$is_args$args; proxy_pass http://$http_host$request_uri; 转发url proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #limit if ($userlimit = '100') { rewrite ^(.*)$ /unlimit$1 last; } limit_conn myzone 100; access_log /var/log/nginx/limit_access.log main; } #unlimit location /unlimit/ { internal; limit_conn myzone 1000; proxy_cache content; proxy_cache_valid 200 304 301 302 1d; proxy_cache_valid 404 1m; proxy_cache_valid any 1m; proxy_cache_key $host$uri$is_args$args; proxy_pass http://$http_host$request_uri; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log /var/log/nginx/unlimit_access.log main; } location ~ /purge(/.*) #清除缓存设置 { allow 127.0.0.1; allow 222.73.x.x; allow 222.73.x.0/24; allow 222.73.x.x/27; deny all; proxy_cache_purge content $host$1$is_args$args; access_log /var/log/nginx/purge_access.log main; } location ~ .*\.(php|jsp|cgi)?$ #匹配.php,jsp,cgi的动态程序页面不做缓存,直接url转发 { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://$http_host$request_uri; access_log /var/log/nginx/cgi_access.log main; } }proxy.conf
反向代理参数的全局设置:client_body_buffer_size 512k; proxy_connect_timeout 200; proxy_read_timeout 180; #proxy_read_timeout 15; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_set_header Accept-Encoding 'gzip,deflate'; #proxy_max_temp_file_size 20m; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path /data/nginx/proxy_temp;ipclass.conf
geo $userlimit { default 1; #202.107.x.x/27 100; #122.224.x.x/32 100; }测试:1.dns_server上添加这台反向代理服务器地址的解析2.本地hosts中添加域名,反向代理服务器地址123.x.x.x dns_server上内部域名1123.x.x.x dns_server上内部域名2123.x.x.x mirrors.163.com #外部网站代理测试3.查看访问日志路径:匹配/下所有uri访问日志路径: /var/log/nginx/limit_access.log
匹配php,cgi,jsp动态页面文件访问日志路径. /var/log/nginx/cgi_access.log
错误日志:/var/log/nginx/error.log测试结果:
dns_server上内部网站域名测试, 日志查看记录访问正常,
mirrors.163.com 访问502 bad gateway ,日志:
012/11/27 03:23:08 [error] 4679#0: *20 mirrors.163.com could not be resolved (110: Operation timed out), client: 202.107.x.x, server: _, request: "GET / HTTP/1.1", host: "mirrors.163.com" 2012/11/27 03:23:08 [error] 4679#0: unexpected response for mirrors.163.com
.. 非dns_server上的内部网站是不能通过此台代理服务器手动purge清除缓存测试OK:用法,清除的uri前添加purge即可http://x.x.com/purge/$uri本文出自 “E人空间” 博客,请务必保留此出处http://iceeggplant.blog.51cto.com/1446843/1072716
相关文章推荐
- 如何搭建web服务器 使用Nginx搭建反向代理服务器
- nginx反向代理服务器端口问题
- nginx作为web服务器反向代理
- Nginx 高性能的 HTTP 和 反向代理 服务器
- Nginx反向代理Tomcat服务器
- NginX反向代理服务器(Reverse Proxy)——【一】平台选择等准备工作 推荐
- Nginx -HTTP和反向代理服务器简单配置
- Nginx server之Nginx作为反向代理服务器
- nginx 反向代理apache服务器 配置java与PHP共存环境
- Nginx不同域名反向代理到另一台服务器 proxy_pass和$host
- Nginx 高性能的 HTTP 和 反向代理 服务器
- Nginx服务器之反向代理加速
- 利用nginx反向代理tomcat服务器
- Nginx ("engine x") 高性能的 HTTP 和 反向代理 服务器
- Nginx 反向代理服务器
- Tomcat系列之服务器的基本配置及Nginx反向代理tomcat服务
- NginX高性能WEB和反向代理服务器介绍
- RHEL6.4 搭建Nginx反向代理服务器
- nginx架设http负载均衡和反向代理服务器
- nginx反向代理服务器端口问题