V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
anjunecha
V2EX  ›  分享创造

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

  anjunecha · 2014-08-04 13:21:57 +08:00 · 54554 次点击
这是一个创建于 3756 天前的主题,其中的信息可能已经有所发展或是发生改变。
刚刚看到一个帖子提到了那个 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_once 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吧
anjunecha
    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   ·   实用小工具   ·   963 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.