
Estou tentando configurar o Nginx v. 1.24.0 e o GeoIPupdate para funcionarem de forma que usuários que não sejam de um país específico não tenham acesso ao servidor web.
Porém, ao seguir cada guia, vejo que ele está desatualizado, ou os links não funcionam, porque o MaxMind os excluiu, ou presumem que tenho o módulo necessário para ser instalado.
Mesmo o wiki oficial do Nginx não ajudou em nada (https://nginx.org/en/docs/http/ngx_http_geoip_module.html)
Estou perdendo o juízo e não sei o que fazer. Tudo o que quero fazer é saber como permitir que o GeoIPupdate funcione com o Nginx, já que estou com o GeoIPupdate em execução.
Eu tentei este guia:https://github.com/leev/ngx_http_geoip2_module Mas agora estou entendendo isso:
Apr 24 15:25:51 localhost nginx[175588]: nginx: [emerg] unknown directive "if($allowed_country" in /etc/nginx/sites-enabled/default:80
Apr 24 15:25:51 localhost nginx[175588]: nginx: configuration file /etc/nginx/nginx.conf test failed
A configuração em questão (na parte do servidor):
if($allowed_country = no) {
return 403;
}
Ao verificar os módulos Nginx, vejo que 50-mod-http-geoip.conf existe e deveria ter carregado, mas escrever nginx -V não insere o módulo.
A parte mais interessante é que o nginx.conf funciona com países permitidos, pois não recebo nenhum erro dele.
Responder1
Eu mesmo consertei da maneira mais hilária e triste possível.
Lembre-se de que estou pesquisando esse bug estranho há alguns dias e descobri que foi porque adicionei uma guia para que meu TOC pudesse ficar feliz nos arquivos de configuração.
Copiei e colei isso e funcionou. https://gist.github.com/dunderrrrrr/8d3fced1f73de2d70ede38f39c88d215