分享一下我的 Nginx 反向代理 Google 以及草榴等的参数配置

刚刚看到一个帖子提到了那个 wen.lu ,想着就把自己的反向代理配置分享一下,因为网上的教程大多是错的。下面的参数配置只需把xxx.xxx改为你自己的域名以及修改一下你的SSL路径就可以了。

Nginx 反代 Google配置如下

server 
{
listen 443;
server_name xxx.xxx;
ssl on;
ssl_certificate /usr/local/nginx/xxx.crt;#这里改为你自己的证书路径
ssl_certificate_key /usr/local/xxx.key;#这里改为你自己的密钥路径
 
location / {
proxy_redirect http://www.google.com/ /;
proxy_cookie_domain google.com xxx.xxx;
proxy_pass http://173.194.127.48;
proxy_set_header Accept-Encoding "";
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
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";
sub_filter www.google.com xxx.xxx;
sub_filter_once off;
}
}
 
server {
listen 80;
server_name xxx.xxx;
rewrite ^(.*) https://xxx.xxx$1 permanent;
}

#把所有的xxx.xxx改为你自己的域名

Nginx 反代 Google Scholar 的配置如下:

server
{
listen 443;
server_name xxx.xxx;
 
ssl on;
ssl_certificate /usr/local/nginx/ssl.crt;#这里改为你自己的证书路径
ssl_certificate_key /usr/local/nginx/ssl.key;#这里改为自己的密钥路径
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;
 
 
location / {
proxy_redirect http://scholar.google.com/ /;
proxy_set_header Host "scholar.google.com";
proxy_set_header Accept-Encoding "";
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
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";
proxy_pass http://scholar.google.com;
sub_filter scholar.google.com xxx.xxx;
sub_filter_once off;
}
 
}
 
server
{
listen 80;
server_name xxx.xxx;
rewrite ^(.*) https://xxx.xxx/$1 permanent;
}

#把所有的xxx.xxx改为你自己的域名

Nginx 反代草榴论坛 的配置如下:

server
{
listen 80;
server_name xxx.xxx;
 
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://184.154.128.246/;
}
 
}

#把所有的xxx.xxx改为你自己的域名即可

不使用 SSL 证书进行反代 Google 的代码如下:

server {
listen 80;
server_name xxx.xxx;
 
location / {
proxy_redirect http://www.google.com/ /;
proxy_cookie_domain google.com xxx.xxx;
proxy_pass http://173.194.127.48;
proxy_set_header Accept-Encoding "";
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
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";
sub_filter www.google.com xxx.xxx;
sub_filter_once off;
}
}

 

另外一篇 nginx 反向代理 google:443 配置

https://v2ex.com/t/121285

proxy_cache_path /var/nginx/cache/one	levels=1:2 keys_zone=one:10m	max_size=2g;
proxy_cache_key	"$host$request_uri";
 
upstream google {
server 74.125.224.71:80 max_fails=3;
server 74.125.224.72:80 max_fails=3;
server 74.125.224.73:80 max_fails=3;
server 74.125.224.74:80 max_fails=3;
server 74.125.224.75:80 max_fails=3;
server 74.125.224.76:80 max_fails=3;
server 74.125.224.77:80 max_fails=3;
server 74.125.224.78:80 max_fails=3;
server 74.125.224.79:80 max_fails=3;
server 74.125.224.80:80 max_fails=3;
}
server {
listen 80;
server_name $你将要代理的 google 的域名$;
rewrite ^(.*) https://$你将要代理的 google 的域名$$1 permanent;
}
 
server {
listen 443;
server_name $你将要代理的 google 的域名$;
ssl on;
ssl_certificate 你的 ssl 证书.crt;
ssl_certificate_key 你的 ssl 密钥.key;
 
location /{
proxy_cache one;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 404 1m;
proxy_redirect https://www.google.com/ /;
proxy_cookie_domain google.com $你将要代理的 google 的域名$;
proxy_pass http://google;
proxy_set_header Host "www.google.com";
proxy_set_header Accept-Encoding "";
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
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";
sub_filter www.google.com $你将要代理的 google 的域名$;
sub_filter_once off;
}
}

以上,请将$你将要代理的google的域名$替换为你反向代理的 google 的域名,如 g.foo.bar;请将/var/nginx/cache/one替换为你的nginx缓存目录,max_size为缓存区大小,随便你设置吧;upstream google段是设置的google原始可正常访问的ip的负载均衡;反向代理中考虑到自动关键字提示,替换了对应的cookie;443需要替换对应的证书,当然你用自己签发的也没关系,我用的是sslstart的证书。

补充一下,nginx 启用 ssl 之后,每次 restart 或者 reload 需要输入证书的密码(类似于提示:Enter PEM pass phrase:)。如果你觉得烦,解决方法如下:
openssl rsa -in 你的ssl密钥.key -out 你的ssl密钥.key.unsecure
然后将配置中的 ssl_certificate_key 你的 ssl 密钥.key; 更改为 ssl_certificate_key 你的 ssl 密钥.key.unsecure;

一条评论

  1. 分享一下我的 Nginx 反向代理 Google 以及草榴等的参数配置
    avatar
    Lv.1 1楼

    不错,收下了。。经常用得着Google。。嘿嘿嘿。。

    发表评论

  1. 😉
  2. 😐
  3. 😡
  4. 😈
  5. 🙂
  6. 😯
  7. 🙁
  8. 🙄
  9. 😛
  10. 😳
  11. 😮
  12. emoji-mrgree
  13. 😆
  14. 💡
  15. 😀
  16. 👿
  17. 😥
  18. 😎
  19. ➡
  20. 😕
  21. ❓
  22. ❗
  23. 62 queries in 0.441 seconds