google: Módulo NGINX para criação de espelhos do Google
Instalação
Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:
- RedHat Enterprise Linux 7, 8, 9 e 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 e 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
Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:
load_module modules/ngx_http_google_filter_module.so;
Este documento descreve o nginx-module-google v0.2.4 lançado em 17 de junho de 2023.
Descrição
ngx_http_google_filter_module é um módulo de filtro que torna a criação de espelhos do Google muito mais fácil.
Expressões regulares, locais de URI e outras configurações complexas já estão integradas.
O módulo nativo do nginx garante a eficiência no manuseio de cookies, pontuações gstatic e redirecionamentos.
Vamos ver como é fácil configurar um espelho do Google.
location / {
google on;
}
O que? Você está brincando?
Sim, é tão simples assim!
Site de demonstração https://g2.wen.lu

Dependências
pcresuporte a expressões regularesngx_http_proxy_modulesuporte a proxy de backendngx_http_substitutions_filter_modulesuporte a múltiplas substituições
baixar a fonte mais recente
@veja http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.7.8.tar.gz
clonar ngx_http_google_filter_module
@veja https://github.com/cuber/ngx_http_google_filter_module
git clone https://github.com/cuber/ngx_http_google_filter_module
clonar ngx_http_substitutions_filter_module
@veja https://github.com/yaoweibin/ngx_http_substitutions_filter_module
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
##### Instalação nova #####
```bash
#
## configurar o nginx de forma personalizada
## substitua </path/to/> pelo seu caminho real
#
./configure \
<sua configuração> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
Migrar de uma distribuição existente
#
## obter a configuração do nginx existente
## substitua </path/to/> pelo seu caminho real
#
</path/to/>nginx -V
> versão do nginx: nginx/ <versão>
> compilado por gcc 4.x.x
> argumentos de configuração: <configuração>
#
## baixar a mesma versão da fonte do nginx
## @veja http://nginx.org/en/download.html
## substitua <versão> pela sua versão do nginx
#
wget http://nginx.org/download/nginx-<versão>.tar.gz
#
## configurar o nginx
## substitua <configuração> pela sua configuração do nginx
## substitua </path/to/> pelo seu caminho real
#
./configure \
<configuração> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
#
## se algumas bibliotecas estiverem faltando, você deve instalá-las com o gerenciador de pacotes
## ex. apt-get, pacman, yum ...
#
Uso
Configuração Básica
resolver é necessário para resolver domínios.
server {
# ... parte da configuração do servidor
resolver 8.8.8.8;
location / {
google on;
}
# ...
}
Google Scholar
google_scholar depende de google, portanto, google_scholar não pode ser usado de forma independente.
Atualmente, o Google Scholar migrou de http para https, e ncr é suportado, portanto, o tld do Google Scholar não é mais necessário.
location / {
google on;
google_scholar on;
}
Google Language
O idioma padrão pode ser configurado através de google_language, se não estiver configurado, zh-CN será o idioma padrão.
location / {
google on;
google_scholar on;
# definir idioma para Alemão
google_language de;
}
Os idiomas suportados estão listados abaixo.
ar -> Árabe
bg -> Búlgaro
ca -> Catalão
zh-CN -> Chinês (Simplificado)
zh-TW -> Chinês (Tradicional)
hr -> Croata
cs -> Tcheco
da -> Dinamarquês
nl -> Holandês
en -> Inglês
tl -> Filipino
fi -> Finlandês
fr -> Francês
de -> Alemão
el -> Grego
iw -> Hebraico
hi -> Hindi
hu -> Húngaro
id -> Indonésio
it -> Italiano
ja -> Japonês
ko -> Coreano
lv -> Letão
lt -> Lituano
no -> Norueguês
fa -> Persa
pl -> Polonês
pt-BR -> Português (Brasil)
pt-PT -> Português (Portugal)
ro -> Romeno
ru -> Russo
sr -> Sérvio
sk -> Eslovaco
sl -> Esloveno
es -> Espanhol
sv -> Sueco
th -> Tailandês
tr -> Turco
uk -> Ucraniano
vi -> Vietnamita
Exclusão de Spider
Os spiders de qualquer motor de busca não são permitidos para rastrear o espelho do Google.
O robots.txt padrão listado abaixo já está integrado.
User-agent: *
Disallow: /
google_robots_allow estiver definido como on, o robots.txt será substituído pela versão do próprio Google. #...
location / {
google on;
google_robots_allow on;
}
#...
Upstreaming
upstream pode ajudá-lo a evitar custos de resolução de nomes, diminuir a possibilidade de detecção por robôs do Google e fazer proxy através de alguns servidores específicos.
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;
}
Protocolo de Proxy
Por padrão, o proxy usará https para se comunicar com servidores de backend.
Você pode usar google_ssl_off para forçar alguns domínios a reverter para o protocolo http.
Isso é útil se você quiser fazer proxy de alguns domínios através de outro gateway sem certificado SSL.
#
## ex.
## eu quero fazer proxy do domínio 'www.google.com' assim
## vps(hk) -> vps(us) -> google
#
#
## configuração do vps(hk)
#
server {
# ...
location / {
google on;
google_ssl_off "www.google.com";
}
# ...
}
upstream www.google.com {
server < ip do vps(us) >:80;
}
#
## configuração do vps(us)
#
server {
listen 80;
server_name www.google.com;
# ...
location / {
proxy_pass https://www.google.com;
}
# ...
}
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-google.