Parece haver duas ramificações ativas do servidor web nginx: uma ramificação “principal” (atualmente 1.9.x) e uma ramificação “estável” (atualmente 1.8.x). Alguém pode fornecer uma fonte oficial que descreva a diferença entre esses dois ramos e como escolher entre eles?
bdesham's questions
Eu uso nginx para servir meu site. Eu gostaria de bloquear todas as solicitações que chegam com um cabeçalho HTTP “Host” que não corresponde ao domínio do meu site.
Para ser mais concreto, meu nginx.conf contém esses dois blocos de servidor:
server {
# Redirect from the old domain to the new domain; also redirect
# from www.newdomain.com to newdomain.com without the "www"
server_name www.olddomain.com olddomain.com www.newdomain.com;
listen 80;
return 301 $scheme://newdomain.com$request_uri;
}
server {
server_name newdomain.com localhost;
listen 80;
# Actual configuration goes here...
}
Eu gostaria de bloquear (ou seja, “retornar” um código de status 444) qualquer tráfego cujo host não seja www.olddomain.com, olddomain.com, www.newdomain.com ou newdomain.com. Como posso fazer isso?
Para evitar spam de referência, meu nginx.conf contém uma seção como esta:
if ($http_referer ~* spamdomain1\.com) {
return 444;
}
if ($http_referer ~* spamdomain2\.com) {
return 444;
}
if ($http_referer ~* spamdomain3\.com) {
return 444;
}
Essas regras dizem ao nginx apenas para fechar a conexão se o usuário tiver um desses referenciadores definidos. Existe uma maneira mais elegante de fazer isso? Posso definir uma lista desses domínios e dizer algo como “Se o referenciador estiver nesta lista, retorne 444”?