前面说到使用 Caddy 配置 Wikipedia 反向代理,其实平常用到更多的还是 Google,因此这里再来研究一下如何在 Caddy 上配置 Google 反向代理。
其实在用 Caddy server 之前我是一直使用 Nginx 的,作为一个 Nginx 用户,我更推荐使用 Nginx Module for Google ,这个插件,虽然安装起来有点麻烦,但是配置极其简单,效果拔群。
而对于 Caddy ,目前还没有太多现成的资料可以使用,好在配置起来并不是很复杂,配置文件如下:
google.example.com { gzip proxy / https://www.google.com { header_upstream X-Real-IP {remote} header_upstream User-Agent {>User-Agent} header_upstream Accept-Language zh-CN header_upstream Accept-Encoding identity } filter rule { content_type text/.* search_pattern www.google.com replacement google.example.com } filter rule { content_type text/.* search_pattern (www|ssl).gstatic.com replacement gstatic.example.com } filter rule { content_type text/.* search_pattern zh.wikipedia.org replacement wiki.example.com } filter rule { content_type text/.* search_pattern zh.m.wikipedia.org replacement m.wiki.example.com } } gstatic.example.com { gzip proxy / https://www.gstatic.com { header_upstream X-Real-IP {remote} header_upstream User-Agent {>User-Agent} } }
DNS配置:将域名google.example.com
和gstatic.example.com
的A记录指向 Caddy server 所在的服务器 IP 地址即可,Caddy 会自动申请并配置 TLS 证书,非常简单。
www.gstatic.com
也需要反向代理原因是 Google 引用了来自 www.gstatic.com
的静态资源。
Accept-Language
设置为zh-CN
是因为我希望用 Google 来搜索中文内容(哪怕是搜索中文内容 Google 也比百度强多了)。
Accept-Encoding
设置为identity
是为了禁用 upstream 的 gzip,否则由于 gzip 的存在会导致http.filter
插件对内容的查找和替换失败。
顺便将前面配置的 Wikipedia 反向代理地址也加入了进来,这样的话在 Google 中搜索到的 Wikipedia (中文)词条就会自动转换成反向代理地址,查看 Wikipedia 词条更简单,也弥补了 Wikipedia 反向代理目前无法搜索的缺陷。
Leave a Comment