google: Модуль NGINX для создания зеркала Google
Установка на Debian/Ubuntu
Эти документы применимы к пакету APT nginx-module-google, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте APT-репозиторий, как описано в настройке APT-репозитория.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-google
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия | Компонент | Архитектуры |
|-------------|--------------------|-------------|---------------|
| debian | bookworm | main | amd64, arm64 |
| debian | bookworm-mainline | main | amd64, arm64 |
| debian | trixie | main | amd64, arm64 |
| debian | trixie-mainline | main | amd64, arm64 |
| ubuntu | focal | main | amd64, arm64 |
| ubuntu | focal-mainline | main | amd64, arm64 |
| ubuntu | jammy | main | amd64, arm64 |
| ubuntu | jammy-mainline | main | amd64, arm64 |
| ubuntu | noble | main | amd64, arm64 |
| ubuntu | noble-mainline | main | amd64, arm64 |
Описание
ngx_http_google_filter_module — это фильтровый модуль, который значительно упрощает развертывание зеркала Google.
Регулярные выражения, URI-локации и другие сложные конфигурации уже встроены.
Нативный модуль nginx обеспечивает эффективность обработки куки, gstatic источников и перенаправлений.
Давайте посмотрим, насколько просто настроить зеркало Google.
location / {
google on;
}
Что? Вы шутите?
Да, это так просто!
Демонстрационный сайт https://g2.wen.lu

Зависимости
pcreподдержка регулярных выраженийngx_http_proxy_moduleподдержка бэкенд-проксиngx_http_substitutions_filter_moduleподдержка множества замен
загрузите последний исходный код
@см. http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.7.8.tar.gz
клонируйте ngx_http_google_filter_module
@см. 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
@см. 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: nginx/ <version>
> собран с помощью gcc 4.x.x
> аргументы конфигурации: <configuration>
#
## загрузите ту же версию исходного кода nginx
## @см. 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 Scholar
google_scholar зависит от google, поэтому google_scholar не может использоваться независимо.
В настоящее время Google Scholar перешел с http на https, и поддерживается ncr, поэтому tld для Google Scholar больше не требуется.
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 < ip of vps(us) >:80;
}
#
## конфигурация vps(us)
#
server {
listen 80;
server_name www.google.com;
# ...
location / {
proxy_pass https://www.google.com;
}
# ...
}