У мене є зворотна настройка проксі-сервера для доступу до стороннього додатку, розташованого всередині інтрамережі з Інтернету. Скажімо, ця програма є за URL-адресою:
https://internalserver:8080/
(доступний лише з інтрамережі)
і проксі-сервер увімкнено:
https://proxyserver/
(Доступний з будь-якого місця в світі)
Проксі керується nginx і працює нормально. Коли користувач отримує доступ, https://proxyserver/
він отримує вміст програми на https://internalserver:8080/
.
Проблема полягає в тому, що програма записує абсолютні URL-адреси у відповідь HTML, тому, коли користувач натискає посилання на нову сторінку, браузер намагається знайти сторінку з її внутрішнім іменем, наприклад
https://internalserver:8080/somepage
замість
https://proxyserver/somepage
.
Я знаю, що це помилка в програмі, але я не в змозі змінити програму.
Чи можу я перехопити відповідь, змінити URL-адреси та надіслати її (модифіковану) кінцевому клієнту за допомогою nginx? А може, з іншим інструментом?
EDIT: Це питання я бачив і раніше, але мій випадок є більш конкретним, питання, яке цитується, вимагає загальної модифікації. У такому випадку спеціальна програма швидких програм є найкращим рішенням, а те, що я хочу, є більш конкретним рішенням (я думаю) більш поширеного сценарію. в той час як програма швидкої CGI може працювати, я шукаю найпростіший і, можливо, сильніший і зарекомендував себе в реальному світі, рішення цього сценарію.