google: NGINX模块用于创建Google镜像
安装
您可以在任何基于RHEL的发行版中安装此模块,包括但不限于:
- RedHat Enterprise Linux 7、8、9和10
- CentOS 7、8、9
- AlmaLinux 8、9
- Rocky Linux 8、9
- Amazon Linux 2和Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-google
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-google
通过在/etc/nginx/nginx.conf的顶部添加以下内容来启用模块:
load_module modules/ngx_http_google_filter_module.so;
本文档描述了nginx-module-google v0.2.4,于2023年6月17日发布。
描述
ngx_http_google_filter_module 是一个过滤模块,使得Google镜像的部署变得更加简单。
正则表达式、uri位置和其他复杂配置已经内置。
本地的nginx模块确保了处理cookies、gstatic分数和重定向的效率。
让我们看看设置Google镜像是多么“简单”。
location / {
google on;
}
什么?你在开玩笑吗? 是的,就是这么简单!
演示网站 https://g2.wen.lu

依赖
pcre正则表达式支持ngx_http_proxy_module后端代理支持ngx_http_substitutions_filter_module多重替换支持
下载最新源代码
@see http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.7.8.tar.gz
克隆ngx_http_google_filter_module
@see https://github.com/cuber/ngx_http_google_filter_module
git clone https://github.com/cuber/ngx_http_google_filter_module
克隆ngx_http_substitutions_filter_module
@see https://github.com/yaoweibin/ngx_http_substitutions_filter_module
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
##### 全新安装 #####
``` bash
#
## 自定义配置nginx
## 将</path/to/>替换为您的真实路径
#
./configure \
<your configuration> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
从现有发行版迁移
#
## 获取现有nginx的配置
## 将</path/to/>替换为您的真实路径
#
</path/to/>nginx -V
> nginx version: nginx/ <version>
> built by gcc 4.x.x
> configure arguments: <configuration>
#
## 下载相同版本的nginx源代码
## @see http://nginx.org/en/download.html
## 将<version>替换为您的nginx版本
#
wget http://nginx.org/download/nginx-<version>.tar.gz
#
## 配置nginx
## 将<configuration>替换为您的nginx配置
## 将</path/to/>替换为您的真实路径
#
./configure \
<configuration> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
#
## 如果缺少某些库,您应该使用包管理器安装它们
## 例如:apt-get、pacman、yum ...
#
使用
基本配置
resolver 用于解析域名。
server {
# ... 服务器配置的一部分
resolver 8.8.8.8;
location / {
google on;
}
# ...
}
Google 学术
google_scholar 依赖于 google,因此 google_scholar 不能独立使用。
如今,Google学术已从 http 迁移到 https,并且支持 ncr,因此不再需要Google学术的 tld。
location / {
google on;
google_scholar on;
}
Google 语言
可以通过 google_language 设置默认语言,如果未设置,默认语言将为 zh-CN。
location / {
google on;
google_scholar on;
# 设置语言为德语
google_language de;
}
支持的语言如下所示。
ar -> 阿拉伯语
bg -> 保加利亚语
ca -> 加泰罗尼亚语
zh-CN -> 中文(简体)
zh-TW -> 中文(繁体)
hr -> 克罗地亚语
cs -> 捷克语
da -> 丹麦语
nl -> 荷兰语
en -> 英语
tl -> 菲律宾语
fi -> 芬兰语
fr -> 法语
de -> 德语
el -> 希腊语
iw -> 希伯来语
hi -> 印地语
hu -> 匈牙利语
id -> 印度尼西亚语
it -> 意大利语
ja -> 日语
ko -> 韩语
lv -> 拉脱维亚语
lt -> 立陶宛语
no -> 挪威语
fa -> 波斯语
pl -> 波兰语
pt-BR -> 葡萄牙语(巴西)
pt-PT -> 葡萄牙语(葡萄牙)
ro -> 罗马尼亚语
ru -> 俄语
sr -> 塞尔维亚语
sk -> 斯洛伐克语
sl -> 斯洛文尼亚语
es -> 西班牙语
sv -> 瑞典语
th -> 泰语
tr -> 土耳其语
uk -> 乌克兰语
vi -> 越南语
爬虫排除
任何搜索引擎的爬虫不允许抓取Google镜像。
默认的 robots.txt 如下所示,已经内置。
User-agent: *
Disallow: /
google_robots_allow 设置为 on,则 robots.txt 将被替换为Google本身的版本。
#...
location / {
google on;
google_robots_allow on;
}
#...
上游配置
upstream 可以帮助您避免名称解析成本,减少Google机器人检测的可能性,并通过某些特定服务器进行代理。
upstream www.google.com {
server 173.194.38.1:443;
server 173.194.38.2:443;
server 173.194.38.3:443;
server 173.194.38.4:443;
}
代理协议
默认情况下,代理将使用 https 与后端服务器进行通信。
您可以使用 google_ssl_off 强制某些域名回退到 http 协议。
这在您想通过另一个网关代理某些域名而不使用SSL证书时非常有用。
#
## 例如
## 我想像这样代理域名 'www.google.com'
## vps(hk) -> vps(us) -> google
#
#
## vps(hk) 的配置
#
server {
# ...
location / {
google on;
google_ssl_off "www.google.com";
}
# ...
}
upstream www.google.com {
server < vps(us) 的ip >:80;
}
#
## vps(us) 的配置
#
server {
listen 80;
server_name www.google.com;
# ...
location / {
proxy_pass https://www.google.com;
}
# ...
}
GitHub
您可以在nginx-module-google的GitHub 仓库中找到此模块的其他配置提示和文档。