当前位置:首页 > linux教程 > 列表

Nginx反代理配置实现访问Google的教程

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-24 17:25:04 浏览: 评论:0 

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,代码如下:

  1. wget http://nginx.org/download/nginx-1.7.7.tar.gz 
  2. tar -zxvf nginx-1.7.7.tar.gz 
  3. cd nginx-1.7.7 
  4. ./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 
  5. make && make install 
  6. echo "export PATH=$PATH:/nginx/sbin:">>/etc/profile 
  7. 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文件改为以下内容.

  1. proxy_cache_path  /data/nginx/cache/one  levels=1:2   keys_zone=one:10m max_size=10g; 
  2. proxy_cache_key  "$host$request_uri"
  3. server { 
  4. listen 80; 
  5. server_name domain.com www.domain.com; 
  6. rewrite ^(.*) https://www.domain.com/$1 permanent; 
  7. upstream google { 
  8. server 74.125.224.80:80 max_fails=3; 
  9. server 74.125.224.81:80 max_fails=3; 
  10. server 74.125.224.82:80 max_fails=3; 
  11. server 74.125.224.83:80 max_fails=3; 
  12. server 74.125.224.84:80 max_fails=3;    
  13. server { 
  14. listen      443; 
  15. server_name  domain.com www.domain.com; 
  16. ssl on; 
  17. ssl_certificate /usr/local/nginx/conf/ssl.crt; 
  18. ssl_certificate_key /usr/local/nginx/conf/ssl.key; 
  19. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!CAMELLIA:!PSK:!SRP; 
  20. ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; 
  21. ssl_prefer_server_ciphers on; 
  22. ssl_session_cache shared:SSL:10m; 
  23. ssl_session_timeout 10m; 
  24. location / { 
  25. proxy_cache one; 
  26. proxy_cache_valid  200 302  1h; 
  27. proxy_cache_valid  404      1m; 
  28. proxy_redirect https://www.google.com/ /; 
  29. proxy_cookie_domain google.com domain.com; 
  30. proxy_pass              http://google; 
  31. proxy_set_header Host "www.google.com"
  32. proxy_set_header Accept-Encoding ""
  33. proxy_set_header User-Agent $http_user_agent
  34. proxy_set_header Accept-Language "zh-CN"
  35. proxy_set_header Cookie "PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=zh-CN:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2w1IQ-Maw";              
  36. sub_filter www.google.com www.domain.com; 
  37. sub_filter_once off; //phpfensi.com 

部分代码解释:这一句是你的SSL证书的根证书和证书的合并体.

ssl_certificate /usr/local/nginx/conf/ssl.crt;

这一句是你生成CSR的时候,一起生成的key文件:

ssl_certificate_key /usr/local/nginx/conf/ssl.key;

这里是反代的Google的IP,可以修改的,代码如下:

  1. upstream google { 
  2. server 74.125.224.80:80 max_fails=3; 
  3. server 74.125.224.81:80 max_fails=3; 
  4. server 74.125.224.82:80 max_fails=3; 
  5. server 74.125.224.83:80 max_fails=3; 
  6. server 74.125.224.84:80 max_fails=3;    

注意:请将文件的domain.com 和 www.domain.com 替换成你自己的域名,反代其他的就把文中的www.google.com 和 google.com换成你要反代的域名,并替换文中的upstream中的IP.

Tags: Nginx反代理 访问Google

分享到: