google: Module NGINX pour la création de miroirs Google
Installation
Vous pouvez installer ce module dans n'importe quelle distribution basée sur RHEL, y compris, mais sans s'y limiter :
- RedHat Enterprise Linux 7, 8, 9 et 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 et 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
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_google_filter_module.so;
Ce document décrit nginx-module-google v0.2.4 publié le 17 juin 2023.
Description
ngx_http_google_filter_module est un module de filtrage qui facilite grandement le déploiement de miroirs Google.
Des expressions régulières, des emplacements URI et d'autres configurations complexes ont déjà été intégrés.
Le module NGINX natif garantit l'efficacité de la gestion des cookies, des scores gstatic et des redirections.
Voyons à quel point il est facile de configurer un miroir Google.
location / {
google on;
}
Quoi ? Vous rigolez ?
Oui, c'est aussi simple que ça !
Site de démonstration https://g2.wen.lu

Dépendance
pcresupport des expressions régulièresngx_http_proxy_modulesupport de proxy backendngx_http_substitutions_filter_modulesupport de substitutions multiples
télécharger la dernière source
@see http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.7.8.tar.gz
cloner 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
cloner 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
##### Installation toute neuve #####
``` bash
#
## configurer nginx de manière personnalisée
## remplacez </path/to/> par votre vrai chemin
#
./configure \
<votre configuration> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
Migration depuis une distribution existante
#
## obtenir la configuration de nginx existant
## remplacez </path/to/> par votre vrai chemin
#
</path/to/>nginx -V
> version nginx : nginx/ <version>
> construit par gcc 4.x.x
> arguments de configuration : <configuration>
#
## télécharger la même version de la source nginx
## @see http://nginx.org/en/download.html
## remplacez <version> par votre version de nginx
#
wget http://nginx.org/download/nginx-<version>.tar.gz
#
## configurer nginx
## remplacez <configuration> par votre configuration nginx
## remplacez </path/to/> par votre vrai chemin
#
./configure \
<configuration> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
#
## si certaines bibliothèques manquent, vous devez les installer avec le gestionnaire de paquets
## par ex. apt-get, pacman, yum ...
#
Utilisation
Configuration de base
resolver est nécessaire pour résoudre les domaines.
server {
# ... partie de la configuration du serveur
resolver 8.8.8.8;
location / {
google on;
}
# ...
}
Google Scholar
google_scholar dépend de google, donc google_scholar ne peut pas être utilisé indépendamment.
De nos jours, Google Scholar a migré de http à https, et ncr est pris en charge, donc le tld de Google Scholar n'est plus nécessaire.
location / {
google on;
google_scholar on;
}
Langue Google
La langue par défaut peut être définie via google_language, si elle n'est pas configurée, zh-CN sera la langue par défaut.
location / {
google on;
google_scholar on;
# définir la langue sur l'allemand
google_language de;
}
Les langues prises en charge sont listées ci-dessous.
ar -> Arabe
bg -> Bulgare
ca -> Catalan
zh-CN -> Chinois (simplifié)
zh-TW -> Chinois (traditionnel)
hr -> Croate
cs -> Tchèque
da -> Danois
nl -> Néerlandais
en -> Anglais
tl -> Philippin
fi -> Finnois
fr -> Français
de -> Allemand
el -> Grec
iw -> Hébreu
hi -> Hindi
hu -> Hongrois
id -> Indonésien
it -> Italien
ja -> Japonais
ko -> Coréen
lv -> Letton
lt -> Lituanien
no -> Norvégien
fa -> Persan
pl -> Polonais
pt-BR -> Portugais (Brésil)
pt-PT -> Portugais (Portugal)
ro -> Roumain
ru -> Russe
sr -> Serbe
sk -> Slovaque
sl -> Slovène
es -> Espagnol
sv -> Suédois
th -> Thaïlandais
tr -> Turc
uk -> Ukrainien
vi -> Vietnamien
Exclusion des robots
Les robots de tout moteur de recherche ne sont pas autorisés à explorer le miroir Google.
Le robots.txt par défaut listé ci-dessous a déjà été intégré.
User-agent: *
Disallow: /
google_robots_allow est défini sur on, le robots.txt sera remplacé par la version de Google elle-même. #...
location / {
google on;
google_robots_allow on;
}
#...
Mise en amont
upstream peut vous aider à éviter le coût de la résolution de noms, à diminuer la possibilité de détection par les robots Google et à proxy à travers certains serveurs spécifiques.
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;
}
Protocole Proxy
Par défaut, le proxy utilisera https pour communiquer avec les serveurs backend.
Vous pouvez utiliser google_ssl_off pour forcer certains domaines à revenir au protocole http.
C'est utile si vous souhaitez proxy certains domaines via une autre passerelle sans certificat SSL.
#
## par ex.
## je veux proxy le domaine 'www.google.com' comme ceci
## vps(hk) -> vps(us) -> google
#
#
## configuration de vps(hk)
#
server {
# ...
location / {
google on;
google_ssl_off "www.google.com";
}
# ...
}
upstream www.google.com {
server < ip de vps(us) >:80;
}
#
## configuration de vps(us)
#
server {
listen 80;
server_name www.google.com;
# ...
location / {
proxy_pass https://www.google.com;
}
# ...
}
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-google.