nginx 如何反代 google cse?

2018-11-12 18:29:21 +08:00
 ayconanw

想把自己网站的站内搜索改用 google 的 cse。

目前配置写的是:

server { listen 80; server_name search.xxx.com;

location / {
	proxy_set_header Host cse.google.com;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass https://cse.google.com/cse?cx=123:qwe;
}

}

但是访问时候,搜索框显示不出来。看了下控制台,是因为有 js 文件被重定向到了 search.xxx.com/cse.js ,自然访问不到。

后来改成了 proxy_pass https://cse.google.com/ ,然后访问 search.xxx.com/cse?cx=123:qwe,结果还是不行。因为还有 js 是 google 域名下面的,国内打不开这个 js。

请教下如何配置能实现这种效果: 访问 search.xxx.com/something 实际访问的是 https://cse.google.com/cse?cx=123:qwe&q=something ,并且国内可以正常打开。

1704 次点击
所在节点    问与答
2 条回复
0ZXYDDu796nVCFxq
2018-11-12 18:44:37 +08:00
反代 car.js
ayconanw
2018-11-15 15:31:06 +08:00
自己解答下吧,搞了几天,发现反代还是挺麻烦的,主要是网上只有现成的 google 反代,cse 的话需要自己去实现,这其中不仅麻烦,调试过程中一度网站连结被短暂重置,可能是触发什么检测规则了。所以赶紧放弃了,别把整个网站搞得不能访问就僵了。

最终使用了 google cse 的 json api,虽然接口是收费的,千次 5 刀,但是鉴于 google cloud 会送几百刀,问题不大。自己需要做的工作就是把返回的 json 结果渲染成页面显示出来,已经初步实现了,完成目标。

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

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

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

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

© 2021 V2EX