Получение 404 при запросе вызова по haproxy (напрямую работает нормально) - PullRequest
1 голос
/ 24 июня 2019

Я напрямую вызываю веб-службу с URL curl http://venesh.ir/webservice/oauth/token и получаю ошибку 403, но когда я вызываю ее по обратному прокси-серверу с какого-то сервера, я получаю 404, возможно ли, что haproxy меняет мой адрес?

Конфигурация haproxy:

frontend localhost
    bind *:8081
    option tcplog
    mode tcp
    acl isVenesh dst_port 8081
    use_backend venesh if isVenesh
    default_backend venesh


backend venesh
    mode tcp
    balance roundrobin
    server web01 venesh.ir:80 check

, когда я звоню mySerevrIp:8081/webservice/oauth/token Я ожидаю получить результат, который я непосредственно называю curl http://venesh.ir/webservice/oauth/token, то есть 403,

, но когда я звоню curl mySerevrIp:8081/webservice/oauth/token, я получаю ошибку404,

Проблема с моим haproxy или моим конфигом или возможно, что эта проблема из-за сайта venesh.ir?

Ответы [ 2 ]

3 голосов
/ 24 июня 2019

Похоже, что http://venesh.ir/webservice/oauth/token ожидает, что заголовок хоста будет venesh.ir.Вы можете проверить это из командной строки.Если заголовок хоста не равен venesh.ir, он вернет 404:

$ curl -I -H 'Host: 1.1.1.1'  http://venesh.ir/webservice/oauth/token
HTTP/1.1 404 Not Found
Date: Mon, 24 Jun 2019 17:48:56 GMT
Server: Apache/2
Content-Type: text/html; charset=iso-8859-1

. Вы можете добавить заголовок хоста в свою конфигурацию, если вы измените свой режим на http:

frontend localhost
    bind *:8081
    option httplog
    mode http
    default_backend venesh

backend venesh
    mode http
    balance roundrobin
    http-request set-header Host venesh.ir
    server web01 venesh.ir:80 check
1 голос
/ 30 июня 2019

Ответ @mweiss был верным, и я нашел альтернативный способ установки значения HOST в venesh.ir в моем заголовке запроса, тогда обратный прокси-сервер tcp работает нормально.

...