请教一个 nginx 反代 google 的问题

2014-10-26 14:16:59 +08:00
 ghy459
先贴配置:

server
{
listen 443;
server_name g4w.me;

ssl_certificate /root/ssl/g4w.me.crt;
ssl_certificate_key /root/ssl/g4w.me.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_prefer_server_ciphers on;

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

location / {
subs_filter www.google.com g4w.me;
subs_filter ssl.gstatic.com www.g4w.me;
subs_filter_types text/css text/xml text/javascript;

proxy_redirect off;
proxy_pass https://www.google.com;
proxy_set_header Host www.google.com;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

使用 ngx_http_substitutions_filter_module 模块对页面内容进行替换,但发现只有 www.google.com 能够成功替换,而 ssl.gstatic.com 一直替换不了。请问这是什么原因?

具体可以访问 https://g4w.me 看看。

PS.已经试过 ngx_http_sub_module 和 replace-filter-nginx-module ,都是 www.google.com 起作用了而 ssl.gstatic.com 不起作用。
7918 次点击
所在节点    NGINX
32 条回复
ghy459
2014-10-26 23:00:43 +08:00
@anjunecha 谢谢你的帮忙哈,不过我暂时放弃了,明天还要上班=。=
现在用了@spance 提供的 https://github.com/spance/AirGoo ,配置简单,先凑合着用。。
ghy459
2014-10-26 23:01:05 +08:00
@rentaro 嗯,有空我再去试试,先谢了
rentaro
2014-10-26 23:17:30 +08:00
@anjunecha 借地请教,11楼中我的反代小问题,配置和之前 /t/126028 类似,先行谢过
anjunecha
2014-10-27 07:37:16 +08:00
@rentaro 之前的那篇帖子就是我写的,很多时候如果反代域名不行的话可以试试通过反代 IP 的形式,
ryd994
2014-10-27 18:45:43 +08:00
sub_filter对gzip内容无效,你试试改accept-encoding
ryd994
2014-10-29 15:14:52 +08:00
@anjunecha 反带域名不行是没有upstream,
加一个resolver 就好
imxz
2014-10-30 00:56:46 +08:00
@spance

您好,请问如果想要反代谷歌学术的话,是否只需要修改airgoo.js中的hostname为 scholar.google.com 即可? 此外,如果为了用户访问不加https的网址时能跳转到https,在nginx中配置了301重定向,还能否正确发送x-forwarded头,以及ip、cookie等信息 ?

谢谢 !
spance
2014-10-30 17:44:55 +08:00
@imxz
改hostname是可以的,只是没有对scholar作专门测试,可能会有部分请求漏网。
301不影响。
https server部分按照wiki配好就ok了。
imxz
2014-10-30 20:10:21 +08:00
@spance

谢谢回复。

我测试了一下,没用域名,直接ip访问的时候,直接改hostname为scholar.google.com好像不行,他会跳转到一个类似 xxx.xxx.xxx.xxx.nord (记忆中)的地址
spance
2014-10-30 20:53:14 +08:00
@imxz
google的js会去监测当前域的,而且很多地方用了大量的绝对地址和js拼接地址,如果没有处理干净,漏网的请求就能把页面重定向了。
而且google得js经常升级变化,如果你的确需要scholar.google.com那最好分析一下跳转,然后把处理规则写到defines.js中,我可能没有精力去弄scholar了,维护一个项目都挺累的,毕竟业余时间也很有限啊。
imxz
2014-10-30 21:41:43 +08:00
@spance 好的,谢谢你!
popphen
2014-11-23 16:22:39 +08:00
@spance 哥们谢谢你,一下实现了我的想法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX