Я пытаюсь реализовать обратный прокси перед сервером Domino. URI веб-почты находится по адресу http://domino/Mail
, что означает, что базовый URI http://domino/
. Имея это в виду, я создал следующую конфигурацию для 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;
}
}
Но с этой конфигурацией пользователю всегда нужно было вводить http://frontend/Mail
для доступа к веб-почте. Изменение строки на чтение:
location / {
proxy_pass http://webmail/Mail;
}
Это также невозможно, поскольку после того, как пользователь получит доступ к своему почтовому ящику, URI будет читать http://frontend/mail
.
Я не уверен, как я могу изменить или добавить место для перенаправления всех запросов на http://frontend/
к http://frontend/Mail
не вызывая URI вроде http://domino/Mailsomefileondomino
для передачи в серверную часть.
Перенаправить весь трафик с / только на http: // интерфейс / к http: // интерфейс / почта Добавить
location = / {
return 301 http://frontend/Mail;
}
Это будет работать, потому что nginx соответствует =
локации раньше других локаций. Видеть Вот.
Чтобы proxy_pass все запросы для http: // интерфейс /* для внутреннего сервера домино сохранить этот раздел
location / {
proxy_pass http://webmail;
}
дополнительное примечание: рассмотрите возможность защиты доступа к веб-почте с помощью https.
Решение состоит в том, чтобы добавить следующее:
location / {
proxy_pass http://webmail/;
}
location = / {
proxy_pass http://webmail/Mail;
}
С участием = /
он проверяет точный путь