Estou tentando implementar um proxy reverso na frente de um servidor Domino. O URI do webmail está em http://domino/Mail
, o que significa que o URI base é http://domino/
. Com isso em mente, criei a seguinte configuração para o NGINX:
upstream webmail {
server 192.168.32.1:80; #internal Domino IP
}
server {
listen 80;
access_log /var/log/nginx/mail.access.log;
error_log /var/log/nginx/mail.error.log;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_read_timeout 90;
proxy_http_version 1.1;
proxy_redirect http://domino http://frontend;
location / {
proxy_pass http://webmail;
}
}
Mas com esta configuração, um usuário sempre teria que entrar http://frontend/Mail
para acessar o webmail. Modificando a linha para ler:
location / {
proxy_pass http://webmail/Mail;
}
Também não é possível, pois assim que um usuário acessar sua caixa de correio, o URI lerá http://frontend/mail
.
Não tenho certeza de como posso modificar ou adicionar um local para redirecionar todas as consultas sem fazer http://frontend/
com que os http://frontend/Mail
URIs http://domino/Mailsomefileondomino
sejam passados para o back-end.
A solução é adicionar ao seguinte:
Com
= /
ele verifica o caminho exatoPara redirecionar todo o tráfego de / somente em http://frontend/ para http://frontend/Mail , adicione
Isso funcionará porque o nginx corresponde aos
=
locais antes de outros locais. Veja aqui .Para proxy_pass todas as solicitações de http://frontend/ * para o servidor domino interno, mantenha esta seção
nota adicional: considere proteger o acesso ao webmail usando https.