Nginx反代理配置在以前有介绍过不少的文章,现在国内访问不了google我们可以通过Nginx反代理来实现办内访问了,具体配置如下。
新博客,整理一下过去东西,发现基本都是没什么用的东西,都是凑数的,搬过来一篇Nginx反代Google实现国内访问,个人认为比较有用,我也不是一个煽情的人,废话也就不说了,至于为什么反代,我相信你自己心里清楚。
准备材料
1、除大陆外任何一个可以访问Google的VPS,内存最低32MB。
2、反代Google的域名一枚。
3、SSL一枚,可以使用startssl的免费证书,或者Wosgin的免费证书,当然你也可以选择在淘宝购买7元的SSL,当然这一项也是可选的。
安装Nginx:在安装之前我们需要先安装Nginx需要的依赖,在VPS执行下面的命令,代码如下:
yum install glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel
然后开始安装Nginx,代码如下:
- wgethttp://nginx.org/download/nginx-1.7.7.tar.gz
- tar-zxvfnginx-1.7.7.tar.gz
- cdnginx-1.7.7
- ./configure--user=www--group=www--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module--with-http_gzip_static_module--with-ipv6--with-http_sub_module--with-http_spdy_module
- make&&makeinstall
- echo"exportPATH=$PATH:/nginx/sbin:">>/etc/profile
- source/etc/profile//phpfensi.com
常用命令,代码如下:
/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s stop #关闭
/usr/local/nginx/sbin/nginx -t #测试配置文件是否正确
/usr/local/nginx/sbin/nginx -s reload #不关闭的情况下重新载入配置文件
如果是军哥的LNMP一键包,那么更简单只需要进入LNMP的安装目录,然后执行如下代码:
vi upgrade_nginx.sh
在编译参数后面加上:--with-http_sub_module --with-http_spdy_module
然后执行:bash upgrade_nginx.sh
开始反代在你的.conf文件改为以下内容.
- proxy_cache_path/data/nginx/cache/onelevels=1:2keys_zone=one:10mmax_size=10g;
- proxy_cache_key"$host$request_uri";
- server{
- listen80;
- server_namedomain.comwww.domain.com;
- rewrite^(.*)https://www.domain.com/$1permanent;
- }
- upstreamgoogle{
- server74.125.224.80:80max_fails=3;
- server74.125.224.81:80max_fails=3;
- server74.125.224.82:80max_fails=3;
- server74.125.224.83:80max_fails=3;
- server74.125.224.84:80max_fails=3;
- }
- server{
- listen443;
- server_namedomain.comwww.domain.com;
- sslon;
- ssl_certificate/usr/local/nginx/conf/ssl.crt;
- ssl_certificate_key/usr/local/nginx/conf/ssl.key;
- ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!CAMELLIA:!PSK:!SRP;
- ssl_protocolsSSLv3TLSv1TLSv1.1TLSv1.2;
- ssl_prefer_server_cipherson;
- ssl_session_cacheshared:SSL:10m;
- ssl_session_timeout10m;
- location/{
- proxy_cacheone;
- proxy_cache_valid2003021h;
- proxy_cache_valid4041m;
- proxy_redirecthttps://www.google.com//;
- proxy_cookie_domaingoogle.comdomain.com;
- proxy_passhttp://google;
- proxy_set_headerHost"www.google.com";
- proxy_set_headerAccept-Encoding"";
- proxy_set_headerUser-Agent$http_user_agent;
- proxy_set_headerAccept-Language"zh-CN";
- proxy_set_headerCookie"PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=zh-CN:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2w1IQ-Maw";
- sub_filterwww.google.comwww.domain.com;
- sub_filter_onceoff;//phpfensi.com
- }
- }
部分代码解释:这一句是你的SSL证书的根证书和证书的合并体.
ssl_certificate /usr/local/nginx/conf/ssl.crt;
这一句是你生成CSR的时候,一起生成的key文件:
ssl_certificate_key /usr/local/nginx/conf/ssl.key;
这里是反代的Google的IP,可以修改的,代码如下:
- upstreamgoogle{
- server74.125.224.80:80max_fails=3;
- server74.125.224.81:80max_fails=3;
- server74.125.224.82:80max_fails=3;
- server74.125.224.83:80max_fails=3;
- server74.125.224.84:80max_fails=3;
- }
注意:请将文件的domain.com 和 www.domain.com 替换成你自己的域名,反代其他的就把文中的www.google.com 和 google.com换成你要反代的域名,并替换文中的upstream中的IP.