V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ayconanw
V2EX  ›  问与答

nginx 如何反代 google cse?

  •  
  •   ayconanw · 2018-11-12 18:29:21 +08:00 · 1624 次点击
    这是一个创建于 1963 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想把自己网站的站内搜索改用 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 ,并且国内可以正常打开。

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

    最终使用了 google cse 的 json api,虽然接口是收费的,千次 5 刀,但是鉴于 google cloud 会送几百刀,问题不大。自己需要做的工作就是把返回的 json 结果渲染成页面显示出来,已经初步实现了,完成目标。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3326 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:26 · PVG 19:26 · LAX 04:26 · JFK 07:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.