想把自己网站的站内搜索改用 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 ,并且国内可以正常打开。
1
0ZXYDDu796nVCFxq 2018-11-12 18:44:37 +08:00 via Android
反代 car.js
|
2
ayconanw OP 自己解答下吧,搞了几天,发现反代还是挺麻烦的,主要是网上只有现成的 google 反代,cse 的话需要自己去实现,这其中不仅麻烦,调试过程中一度网站连结被短暂重置,可能是触发什么检测规则了。所以赶紧放弃了,别把整个网站搞得不能访问就僵了。
最终使用了 google cse 的 json api,虽然接口是收费的,千次 5 刀,但是鉴于 google cloud 会送几百刀,问题不大。自己需要做的工作就是把返回的 json 结果渲染成页面显示出来,已经初步实现了,完成目标。 |