Назад | Перейти на главную страницу

Обратный прокси NGINX перед сервером Domino

Я пытаюсь реализовать обратный прокси перед сервером 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 для передачи в серверную часть.

  1. Перенаправить весь трафик с / только на http: // интерфейс / к http: // интерфейс / почта Добавить

    location = / {
        return 301 http://frontend/Mail;
    }
    

    Это будет работать, потому что nginx соответствует = локации раньше других локаций. Видеть Вот.

  2. Чтобы proxy_pass все запросы для http: // интерфейс /* для внутреннего сервера домино сохранить этот раздел

    location / {
        proxy_pass http://webmail;
    }
    

дополнительное примечание: рассмотрите возможность защиты доступа к веб-почте с помощью https.

Решение состоит в том, чтобы добавить следующее:

 location / {
        proxy_pass http://webmail/;
    }

    location = / {
        proxy_pass http://webmail/Mail;
    }

С участием = / он проверяет точный путь