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

Обратный прокси-сервер Nginx на сервер с входом в систему не работает должным образом

У меня есть два сервера за обратным прокси-сервером nginx. Я правильно перенаправляюсь на сайты, но один из сайтов имеет логин до того, как он позволит вам войти на сайт (аналогично sharepoint), а обратный прокси-сервер, похоже, нарушает логин.

Я задал предыдущий вопрос, в котором очень похожая среда Вот

Меня перенаправляют на логин, но я не могу войти. Однако, если я удалю обратный прокси из уравнения, я могу войти в систему нормально.

Имя сервера с логином: server2.mydomain.com

/ и т.д. / nginx / сайты-доступные / по умолчанию

server {
    listen 80 default;
    server_name _;
    return 301 https://$host$request_uri;
}

server {

    listen 443 ssl default_server;
    server_name server1.mydomain.com;

    ssl_certificate /usr/local/nginx/conf/mydomain.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/mydomain.com.key;
    ssl_session_cache shared:SSL:10m;

    ssl_session_timeout 5m;

    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    location / {
            proxy_pass http://192.168.0.15:80;
            proxy_set_header Host $host;

            proxy_redirect http:// $scheme://;

    }
}

server {
    listen 443 ssl;
    server_name server2.mydomain.com;

    ssl_certificate /usr/local/nginx/conf/mydomain.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/mydomain.com.key;
    ssl_session_cache shared:SSL:10m;

    ssl_session_timeout 5m;

    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    location / {
            proxy_pass http://192.168.0.20:80;
            proxy_set_header Host $host;

            proxy_redirect http:// $scheme://;

    }
}

Когда я иду в server1.mydomain.com это в основном статический веб-сайт, кажется, все работает. Но когда я иду в server2.mydomain.com Я получаю всплывающее окно входа в систему, но не могу успешно войти в службу.

Ожидаемое поведение будет заключаться в том, что я могу войти в систему и использовать этот сайт, как если бы обратного прокси-сервера там нет.

Вот журнал доступа с обратного прокси, когда я пытаюсь войти в server2.mydomain.com

/var/log/nginx/access.log

192.168.0.5 - - [26/Jan/2016:02:23:52 -0600] "GET /test HTTP/1.1" 401 341 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"
192.168.0.5 - - [26/Jan/2016:02:23:52 -0600] "GET /test HTTP/1.1" 401 1293 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"

В /тест это раздел сайта, в котором находится логин, поэтому я пытался перейти на server2.mydomain.com/test.

Есть ли что-нибудь, что могло бы явно помешать мне войти в систему? Какие еще файлы журналов я могу проверить? заранее спасибо


РЕДАКТИРОВАТЬ1

Я пробовал несколько вещей, но ни один из них не работал.

Мой исходный файл конфигурации позволяет мне войти в систему, но всегда возвращает страницу с отказом в доступе.

этот файл конфигурации:

/ и т.д. / nginx / сайты-доступные / по умолчанию

server {
    listen 443 ssl;
    server_name server2.mydomain.com;

    ssl_certificate /usr/local/nginx/conf/mydomain.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/mydomain.com.key;
    ssl_session_cache shared:SSL:10m;

    ssl_session_timeout 5m;

    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    location / {
            proxy_pass http://192.168.0.20:80;
    }
}

со строкой proxy_set_header и proxy_redirect просто переводит меня на страницу 403 запрещенного доступа, но перенаправляет.

Если я добавлю proxy_set_header Вернитесь назад, я снова перехожу к логину, но вход по-прежнему не выполняется. Я также попытался изменить proxy_set_header на proxy_set_header X-Forwarded-Proto $scheme, и это снова его полностью сломало. Любые идеи?

Ваше перенаправление прокси выглядит подозрительно. Посмотри на документация, а также на руководство для начинающих nginx.

По сути, попробуйте удалить из своего местоположения все, кроме proxy_pass. Это в основном предположение, но попробовать стоит.

У меня была аналогичная проблема некоторое время назад, я решил ее, исправив доступ к папке для группы, с которой был запущен процесс.

Для какого пользователя настроен NGINX? и есть ли у этого пользователя доступ к этим папкам SSL?

ссылка: Как мне изменить пользователя NGINX?