分享一下我的 Nginx 反向代理 Google 以及草榴等的参数配置 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
anjunecha
V2EX    分享创造

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

  anjunecha 2014-08-04 13:21:57 +08:00 55222 次点击
这是一个创建于 4088 天前的主题,其中的信息可能已经有所发展或是发生改变。
刚刚看到一个帖子提到了那个 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改为你自己的域名
第 1 条附言    2014-08-04 13:54:13 +08:00
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改为你自己的域名
第 2 条附言    2014-08-04 13:54:41 +08:00
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改为你自己的域名即可
第 3 条附言    2014-08-04 14:02:41 +08:00
不使用 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;
}
}
82 条回复    2015-09-03 03:07:22 +08:00
anjunecha
    1
anjunecha  
OP
   2014-08-04 13:33:33 +08:00
很神奇为何不能添加append....那就贴在回复里面好了

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_nce off;
}

}

server
{
listen 80;
server_name xxx.xxx;
rewrite ^(.*) https://xxx.xxx/$1 permanent;
}

#把所有的xxx.xxx改为你自己的域名
anjunecha
    2
anjunecha  
OP
   2014-08-04 13:34:40 +08:00
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改为你自己的域名即可
edwinlai
    3
edwinlai  
   2014-08-04 13:49:39 +08:00
wen.lu 不能新标签打开页面, 你这个google反代可以吗
anjunecha
    4
anjunecha  
OP
   2014-08-04 13:50:27 +08:00 via Android
@edwinlai 可以
anjunecha
    5
anjunecha  
OP
   2014-08-04 13:50:47 +08:00 via Android
@edwinlai 他主要是少了一行代码
anjunecha
    6
anjunecha  
OP
   2014-08-04 13:53:17 +08:00
终于可以append了,那我就把前两条回复贴到append里面,好查看
GhostFlying
    7
GhostFlying  
   2014-08-04 13:55:22 +08:00
收下,扔到自己的vps上去
edwinlai
    8
edwinlai  
   2014-08-04 13:57:33 +08:00
测试不行,不知道是不是因为没启用ssl原因,就用80
anjunecha
    9
anjunecha  
OP
   2014-08-04 14:01:05 +08:00
@edwinlai 不使用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;
}
}
BOOM
    10
BOOM  
   2014-08-04 14:01:06 +08:00
不错。amh可以直接配置反向代理就可以了。。
不过话说,https://github.com/greatfire/freegoogle 也算是反代么。。
另一个类似wen.lu的反代www.tmd123.com
anjunecha
    11
anjunecha  
OP
   2014-08-04 14:03:43 +08:00
@BOOM www.tmd123.com 像这样的已经不是单纯的直接反向代理,这应该是调用了 Google 的 API
GhostFlying
    12
GhostFlying  
   2014-08-04 14:04:08 +08:00
@anjunecha 明文过墙风险略大吧。。
adoraj
    13
adoraj  
   2014-08-04 14:04:20 +08:00
看来Nginx真是好东西啊。
lovetest
    14
lovetest  
   2014-08-04 14:05:30 +08:00
@BOOM 这个不是真正的google吧
img src="https://cdn.v2ex.com/avatar/887c/4f31/43676_normal.png?m=1721204616" class="avatar" border="0" align="default" alt="anjunecha" data-uid="43676" />
    15
anjunecha  
OP
   2014-08-04 14:05:51 +08:00
@GhostFlying SSL 加密之后问题不大,只是流量不能太大。。。
datou
    16
datou  
   2014-08-04 14:09:16 +08:00
能反代youtube吗?
GhostFlying
    17
GhostFlying  
   2014-08-04 14:09:32 +08:00
@anjunecha 嗯,我去自己签个证书部署下
anjunecha
    18
anjunecha  
OP
   2014-08-04 14:12:32 +08:00
@datou 没有尝试过,不过我估计Youtube的视频内容是分发的,很难实现反代
O21
    19
O21  
   2014-08-04 14:16:43 +08:00
这样可以么?

server
{
listen 80;
server_name xxx.net;

location / {
proxy_pass http://twitter.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
anjunecha
    20
anjunecha  
OP
   2014-08-04 14:21:52 +08:00 via Android
@O21 80端口没法访问twitter吧,twitter的话用它的API 来做也挺好的
maye696
    21
maye696  
   2014-08-04 14:24:30 +08:00
马克西下
StarBrilliant
    22
StarBrilliant  
   2014-08-04 14:27:49 +08:00   1
@anjunecha YouTube用的CDN是 *.googlevideo.com 过滤替换之再在主服务器上配一个 sniproxy 就可以了。
StarBrilliant
    23
StarBrilliant  
   2014-08-04 14:28:05 +08:00   1
@O21 不可以。Twitter用的443端口。
alex321
    24
alex321  
   2014-08-04 14:29:34 +08:00
anjunecha
    25
anjunecha  
OP
   2014-08-04 14:29:57 +08:00 via Android
@StarBrilliant 原来如此,关系提醒!
anjunecha
    26
anjunecha  
OP
   2014-08-04 14:32:02 +08:00 via Android
@alex321 我看了他那个,觉得是不对的,proxy_pass 要用 IP 绕过去
anjunecha
    27
anjunecha  
OP
   2014-08-04 14:33:35 +08:00 via Android
@alex321 sorry,原来就是你的帖子。。冒昧了
alex321
    28
alex321  
   2014-08-04 14:49:02 +08:00   1
@anjunecha 那块的作用是负载均衡。我用了 10 个 google 的 ip 来均衡访问。
anjunecha
    29
anjunecha  
OP
   2014-08-04 14:56:03 +08:00 via Android
@alex321 恩,我明白你那样做的道理,但是我发现你那样做会出现重定向的问题
leecade
    30
leecade  
   2014-08-04 15:03:20 +08:00
不用 ssl 恐怕不行吧, 测试过吗
missdeer
    31
missdeer  
   2014-08-04 15:06:43 +08:00
我想问你们在哪买的SSL证书?
alex321
    32
alex321  
   2014-08-04 15:06:48 +08:00
@anjunecha 未发现。目前线上的已经给公司内部使用,用了 sslstart 的证书,一切正常。
jzhone
    33
jzhone  
   2014-08-04 15:45:53 +08:00
blogger 能实现吗?以前可以但好像现在不行了
usufu
    34
usufu  
   2014-08-04 16:00:43 +08:00 via iPhone
有没有办法用二级目录绑定呢?
比如www.jjjj.com/google
anjunecha
    35
anjunecha  
OP
   2014-08-04 16:06:33 +08:00 via Android
@leecade 可以,不用 ssl 的配置见附言最后一条,只是不加ssl容易被墙
anjunecha
    36
anjunecha  
OP
   2014-08-04 16:08:40 +08:00 via Android
@missdeer 我买了 wildcard 泛域名证书,所以几个二级域名部署ssl证书比较方便
anjunecha
    37
anjunecha  
OP
   2014-08-04 16:09:31 +08:00 via Android
@jzhone
@usufu 一会儿我去试试
xiaop
    38
xiaop  
   2014-08-04 16:14:02 +08:00
请问如果不想设置根域名,是否可以反代到二级域名?试了无法设置。
anjunecha
    39
anjunecha  
OP
   2014-08-04 16:35:27 +08:00 via Android
@xiaop 可以用二级域名,我都是用的二级域名,你无法设置是不是因为还没有编译nginx的sub_filter模块?
4gShell
    40
4gShell  
   2014-08-04 17:11:58 +08:00
1024
jacy
    41
jacy  
   2014-08-04 17:25:46 +08:00
sniproxy,简单暴力,你值得拥有
donnior
    42
donnior  
   2014-08-04 17:30:23 +08:00
试了下无加密反代google,报500错误了;nginx的log叶看不出来什么问题。
zjgood
    43
zjgood  
   2014-08-04 17:32:20 +08:00 via Android
如果不是那个草榴。。。哪里会有这么多收藏,楼主真是机智
mind3x
    44
mind3x  
   2014-08-04 17:33:16 +08:00
为啥要这么麻烦,每个网站弄个二级域名和证书……用spdyproxy不就行了?
zjgood
    45
zjgood  
   2014-08-04 17:33:54 +08:00 via Android
@jacy sniproxy拿来做翻墙dns吧?没有SSL,sniproxy代理出来也没有SSL吧?我折腾过sniproxy一次,不熟
ogrish
    46
ogrish  
   2014-08-04 17:38:16 +08:00
其实我想问问有没有草榴邀请呢?
geew
    47
geew  
   2014-08-04 17:43:56 +08:00
一群绅士啊
xiaop
    48
xiaop  
   2014-08-04 18:55:35 +08:00
@anjunecha --with-http_sub_modul 有这样的参数。是否可以贴个二级目录的配置参考下呢?
jacy
    49
jacy  
   2014-08-04 19:11:43 +08:00
@zjgood ssl不用证书,直接转发的原网站的证书
zjgood
    50
zjgood  
   2014-08-04 19:13:47 +08:00
@jacy 嗯,我想表达的就是这个,转发原站证书,但是如果原站没有ssl,那么岂不是会被检测?
sdcg1994
    51
sdcg1994  
   2014-08-04 19:29:38 +08:00
1024
nVic
    52
nVic  
   2014-08-04 19:41:39 +08:00
@Livid 我建议删掉色情部分,v2ex不是教你上h网的地方。。。
iiduce
    53
iiduce  
   2014-08-04 20:01:37 +08:00
@nVic @Livid 同建议。自己看没什么问题,但不应传播。
panzhc
    54
panzhc  
   2014-08-04 20:44:49 +08:00
我直接用tcp proxy做了个4层的转发,绑下hosts,跟直接用google.com一样。
xxstop
    55
xxstop  
   2014-08-04 20:53:04 +08:00
mark..准备搞一个阿里云的来做nginx反向代理~哈哈哈哈。。不过目前我在用pac..
junlew
    56
junlew  
   2014-08-04 21:56:53 +08:00
mark
dopcn
    57
dopcn  
   2014-08-05 09:34:34 +08:00
@nVic 更关键是这个会被有关部门当做证据,这位楼主也一样,小心你的真实身份
anjunecha
    58
anjunecha  
OP
   2014-08-05 09:49:04 +08:00 via Android
@dopcn 谢谢哥们提醒,我起初只是想在技术层面讨论这些事情,现在想来确实考虑有些欠妥,这方面我以后会更加注意
anjunecha
    59
anjunecha  
OP
   2014-08-05 09:51:02 +08:00 via Android
@xiaop 哥们你指的是二级域名还是域名二级目录?
xiaop
    60
xiaop  
   2014-08-05 11:04:42 +08:00
@anjunecha 抱歉上边是笔误,应该是二级目录。比如:www.sample.com/google
anjunecha
    61
anjunecha  
OP
   2014-08-05 12:44:11 +08:00
@xiaop 用二级目录这个我倒是没有试过,我觉得或许可以用rewrite规则来实现
missdeer
    62
missdeer  
   2014-08-05 15:54:28 +08:00
能反代gmail和google drive么?
xarrow
    63
xarrow  
   2014-08-10 18:04:46 +08:00
如果 加上GoAgent 对twitter转发呢?
xarrow
    64
xarrow  
   2014-08-10 18:06:58 +08:00
server {
listen 80;
server_name localhost;
location / {

proxy_pass http://127.0.0.1:8087;
#proxy_set_header Host www.baidu.jp;
#proxy_set_header Host twitter.com
}
}

可以不?
anjunecha
    65
anjunecha  
OP
   2014-08-10 18:24:53 +08:00
@xarrow 本地?这样估计不行,你可以试试
xarrow
    66
xarrow  
   2014-08-10 20:18:14 +08:00
@anjunecha 至少 baidu.jp可以,我怎么样让 goagent后台运行呢?
Wyatt
    67
Wyatt  
   2014-08-13 12:02:19 +08:00 via Android
谷歌反向代理同一个ip会导致验证码。。
xarrow
    68
xarrow  
   2014-08-13 23:23:04 +08:00
nginx 一直504 Gateway Time-out,怎么回事?
anjunecha
    69
anjunecha  
OP
   2014-08-14 00:03:31 +08:00 via Android
@xarrow 服务器的问题,你是不是Nginx配置有错误或者端口没开
sincway
    70
sincway  
   2014-08-15 11:22:36 +08:00
配置了以后 Chrome,FF 和 Safari 正常,但是 Opera Mini 和 w3m 等“老式”浏览器仍然跳转到 www.google.com/q? 搜索导致无法连接,这需要如何配置呢?
sincway
    71
sincway  
   2014-08-15 11:37:47 +08:00
@sincway 好像是 subs_filter 的问题,加上后好了。可是不加那个,高级点的浏览器怎么还正常呢?
Yusky
    72
Yusky  
   2014-08-22 18:20:04 +08:00
@missdeer 可以找我购买。 低价代购各种SSL证书。
leedstyh
    73
leedstyh  
   2014-08-30 01:49:35 +08:00
@anjunecha 请问,这个调用的是什么api,还是直接抓取的搜索结果页面
anjunecha
    74
anjunecha  
OP
   2014-08-30 10:56:49 +08:00 via Android
@leedstyh 不是调用API,是直接进行反向代理
leedstyh
    75
leedstyh  
   2014-08-30 14:23:47 +08:00
@anjunecha 哦我少打字了,我意思是问你11楼回复的那个网站(www.tmd123.com
anjunecha
    76
anjunecha  
OP
   2014-08-30 14:44:47 +08:00 via Android
@leedstyh 那个网站确实是的
happywowwow
    77
happywowwow  
   2014-10-23 11:29:19 +08:00
@anjunecha 如上有人问 :
有没有办法用二级目录绑定呢?
比如www.jjjj.com/google
如何写配置= = 可耻地伸手。。。
kawaiiushio
    78
kawaiiushio  
   2014-11-10 18:27:30 +08:00
跑不起来 报错
teaker
    80
teaker  
   2015-06-24 09:56:07 +08:00
re`~

不过现在GOOGLE没法用IP直接访问了,必须要有主机头。
inmyfree
    81
inmyfree  
   2015-07-10 16:54:12 +08:00
lirener
    82
lirener  
   2015-09-03 03:07:22 +08:00
so 刁 so live
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5803 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 30ms UTC 01:34 PVG 09:34 LAX 18:34 JFK 21:34
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86