LINUX.ORG.RU
ФорумAdmin

Nginx спроксировать SOAP запрос

 ,


0

1

Многоуважаемый all,

как правильно сделать следующее,

есть приложение в котором захардкоден (не мной) URL (1) вида: http://dev.server.com/domain.com/admin/soap/action/index?pr=1

изменить код приложения нет времени/возможности, а обращаться (то есть получать ответ от) надо на URL (2):

http://domain.com/admin/soap/action/index?pr=1

но есть доступ к dev.server.com как это лучше настроить в конфиге nginx (apache там как бэкэнд) чтобы при обращении к URL(2) выдавался ответ от URL(2)?



Последнее исправление: Den0k (всего исправлений: 1)

server {
  listen 80;
  server_name dev.server.com;
  
  location /domain.com {
    proxy_pass http://domain.com/;
    proxy_set_header Host $host:$server_port;
    proxy_set_header Port $server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_read_timeout 300;
    proxy_send_timeout 300;
  }

  # allow 192.168.1.0/24;
  # deny all;

  access_log /var/log/nginx/domain.com_access.log;
  error_log /var/log/nginx/domain.com_error.log;
}
router ★★★★★
()
Ответ на: комментарий от router

Благодарю,

[code]
proxy_set_header Host $host:$server_port;
proxy_set_header Port $server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
[/code]
а это что даёт/обязательно ли?

на dev.server уже есть:

[code]
location /domain.com {
proxy_pass http://backend;
include /etc/nginx/proxy_params;
root /var/www/dev/domain.com;
}
[/code]

Den0k
() автор топика
Ответ на: комментарий от Den0k

а это что даёт

Сообщает бекенду о том, что он бекенд. В логе бекенда будет реальный ip клиента. Приложение на бекенде будет знать url и сможет выдавать правильные ссылки

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html

обязательно ли?

зависит от того, что тебе нужно

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

а будет ок если напишу

  location /domain.com/admin/soap {
    proxy_pass http://domain.com/admin/soap;
    ...
  }

с учётом того что /admin/soap это не реальная диретокрия в htdocs, а, как это сказать, friendly-url, то есть там всё через индекс скрипт.

То есть мне надо более специфично. Не скрывать всё, а сделать прокси только для этого SOAP запроса.

Den0k
() автор топика
Последнее исправление: Den0k (всего исправлений: 1)
Ответ на: комментарий от Den0k

что-то не выходит, попробую вообще на уровне iptables сделать.

Den0k
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.