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

Пересылка запросов SOAP

Я столкнулся со следующей ситуацией. Клиент предоставляет мыльную службу через порт 80. Неизвестно, как именно их клиенты получают доступ к службе, но предполагается, что в их сценариях жестко запрограммирован uris. В настоящее время мы разрабатываем новый веб-сайт для моего клиента, который будет работать с текущим доменом. Сервис мыла будет перемещен в поддомен. Поскольку они не хотят беспокоить своих клиентов сменой домена для службы мыла, меня попросили пересылать все запросы мыла на сервер в поддомене.

Теперь мой вопрос: можно ли это сделать и как? Я использую веб-сервер Nginx в Ubuntu 14.04. Можем ли мы просто переслать эту конечную точку https://www.domain.nl/services/soap к https://subdomain.domain.nl/services/soap или для этого нужно использовать iptables? В случае iptables, как мы можем отделить запросы мыла от обычных веб-запросов?

Ты не хочешь 301 клиентов в новое подходящее место, так как это технически критическое изменение. Существующие клиенты могут не знать, как следовать 301 перенаправить, или они могут вернуть ошибку, если ответ не 200. Вы меняете фундаментальное предположение, поэтому результат непредсказуем и опасен.

Лучше создать обратный прокси-сервер, который будет невидим для клиента. Вы бы проверили URL-адрес и сопоставили ^/services/soap для прокси-запросов к новой конечной точке SOAP. Существует множество хорошо задокументированных способов сделать это с помощью NGINX, а также HAProxy или Apache.