2016-06-21 4 views
0

Я успешно (насколько я могу судить) создал обратный прокси-адрес httpd с сервера, обращенного к Интернету, на другой сервер, не относящийся к интернету. Я также создал таблицу маршрутизации, используя haproxy для маршрутизации конкретных запросов к конкретным другим серверам на определенных портах. Назовем их серверами A, B и C соответственно, где C обозначает список серверов и портов, на которые направляется.httpd Reverseproxy для обслуживания всех файлов в html-страницах, обслуживаемых

Из-за нашей архитектуры сервера это единственный путь, который сможет обслуживать данные в Интернете на предполагаемом сервере.

Когда я посещаю сайт на https serverA.com/jira, я отправляю B с http serverB/jira, которые маршрутизируются на основе/jira на сервере в C, где размещается наш внутренний экземпляр jira на http serverC: somePort

Я получаю страницу назад от jira, но она неформатирована и упоминает, что страница является неработающей ссылкой. Перейдя в отладчик Firefox, я вижу на вкладке сети, что страница jira вернулась с ошибкой 404, но затем несколько других GET размещены из-за содержимого полученной HTML-страницы, и все они получают 404'd, что имеет смысл, почему страница неформатирована ,

Мой главный вопрос: httpd использует блок местоположения, основанный на/jira, однако при отправке дополнительных запросов GET они отправляются на https serverA.com/additionalFiles.(css, js и т. Д.). для которых сервер не будет корректно изменять прокси-сервер. Есть ли способ либо изменить все запросы на входящей странице html как jira/additionFiles, а не дополнительные файлы или иметь службу httpd для продолжения работы обратного прокси-сервера для остальных зависимостей (я знаю, что http - без установления соединения)? Если нет, то что было бы лучше?

Мой второй вопрос, который идет вместе с первым, почему я вижу 404 в начальной загрузке страницы и как я могу изменить его на 200?

ответ

0

Наше решение состояло в том, чтобы использовать stunnel на сервере переднего плана и маршрутизировать весь трафик https на сервер B, который затем раздаст дистрибутивы того, куда должен идти трафик. Я использую серверы C и использую сервер A в качестве прокси-сервера, поэтому все данные обслуживаются правильно, а сервер B - это просто средний человек.