Linux环境下如何通过nginx反向代理到一个指定网站,谷歌除外
首先说明,原始的反代方法代理谷歌不能用了,需要考虑其他方式。通过该方法代理其他网站测试没有问题。
简单介绍下步骤:
1,nginx安装配置。这里个别一开始安装nginx的朋友应该有几个模块没有添加,需要自行添加一下模块。当前测试机器上的nginx的参数如下:
[[email protected] ~]# clear [[email protected] ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.11.3 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../ngx_cache_purge-2.3 --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_flv_module --with-http_gzip_static_module
编译参数使用的是:
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../ngx_cache_purge-2.3 --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_flv_module --with-http_gzip_static_module
其中ngx_cache_purge模块可以到http://labs.frickle.com/nginx_ngx_cache_purge/下载,下载以后解压,编译的时候直接写上路径即可。
2,代理配置:
proxy_cache_path /var/nginx/cache/one levels=1:2 keys_zone=one:10m max_size=8g; proxy_cache_key "$host$request_uri"; upstream baidu { server 103.235.46.39:80 max_fails=3; } server { listen 80; server_name test.21yunwei.com; location / { proxy_cache one; proxy_cache_valid 200 302 1h; proxy_cache_valid 404 1m; proxy_redirect http://www.baidu.com/ /; proxy_cookie_domain baidu.com 21yunwei.com; proxy_pass http://baidu; proxy_set_header Host "www.baidu.com"; proxy_set_header Accept-Encoding ""; proxy_set_header User-Agent $http_user_agent; proxy_set_header Accept-Language "zh-CN"; sub_filter www.baidu.com test.21yunwei.com; sub_filter_once on; sub_filter_types *; } }
重启nginx完成。
扩展:
nginx安装:《linux下如何安装nginx环境配置》
nginx增加模块:《原已经安装好的nginx如何查看已经安装模块和添加一个未被编译安装的模块》
nginx反向代理参数说明:《nginx反向代理ngx_http_proxy_module模块重要参数详解》
nginx反向代理案例:《Nginx反向代理谷歌》 适合了解参数,代理谷歌该方法不适合。