Сервер NGINX с обратным прокси-сервером, открывающий сервер IP-адрес и протокол

Наш сервер документации на code.kx.com использует NGINX 1.12.2 под CentOS для обслуживания статического HTML. Брандмауэр разрешает только SSH, HTTP, HTTPS. Наша система пользовательского поиска работает как HTTP-сервер на порту 5023 на том же компьютере.

Файл конфигурации NGINX перенаправляет HTTP на HTTPS.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name code.kx.com;
    return 301 https://$server_name$request_uri;
}

Он также выполняет обратные прокси-запросы поисковых запросов по HTTP в поисковую систему, которая возвращает HTML.

# Reverse-proxy to kxsearch-v2 service * 2018.12.21
location /v2/search {
    proxy_pass http://127.0.0.1:5023/q/search;
}

HTTP-ответ выглядит как code.kx.com:80, как видно из

curl -i https://code.kx.com/v2/search?query=iasc

Проблема Посетители, находящиеся за тремя разными корпоративными прокси-серверами, сообщают, что видят открытый IP-адрес поисковой системы. (Это, конечно, тот же IP-адрес, что и code.kx.com.) В двух случаях их прокси-серверы запрещают доступ к IP-адресу. В третьем случае браузер предупреждает о переключении с HTTP на HTTP, а затем снова о переключении обратно на HTTPS перед отображением страницы результатов.

Такое поведение выглядит так, как если бы браузеры были перенаправлены на внутренний сервер.

В документации NGINX ничего подобного не упоминается. Вопрос 750605 имеет аналогичную конфигурацию, но пытается выполнить только перенаправление.

0
задан 8 March 2019 в 21:22
1 ответ

Оказывается, это дубликат вопроса Unix / Linux Перенаправление обратного прокси-сервера Nginx .

Ключевая часть ответа:

proxy_set_header Referer $http_referer;

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

0
ответ дан 5 December 2019 в 03:46

Теги

Похожие вопросы