Требование веб-службы JAX-WS через haproxy выбрасывает ошибку 411 требуемой длины

Мне пришлось переместить наш локальный сервис на другой IP-адрес и добавить HAproxy для обработки запроса. Моя проблема в том, что мой клиент пытается отправить запросы, используя Transfer-encoding: chunked. Если я использую эти настройки, то я получаю ошибку 411. HAProxy работает в режиме завершения SSL. Если на стороне клиента не используется прокси-сервер (между клиентом JAX-WS и HAproxy), то соединение работает нормально, но если между ними есть прокси-сервер, то возникает ошибка 411. У меня два разных клиента. Один из них использует McAfee Web Gateway, другой - Squid 2.7. Оба прокси требуют аутентификации. Я пробовал разные версии HAProxy, Tomcat, JRE без успеха.

Сценарий выглядит следующим образом.

** Старая конфигурация:** Запрос клиента JAX-WS |
(Прокси) 
   | маршрутизатор с публичным ip (порт 8442 для http и 8443 для https)
   | Конечная точка JAX-WS с NAT, работающая в контейнере Tomcat 192.168.1.242:8080

** Новая конфигурация:** Запрос клиента JAX-WS |
(Прокси с аутентификацией или без) 
   | Роутер с публичным ip 
       | 
       | 
|----------- IPSec туннель -----------------------------------------------------|
| 192.168.91.246                  192.168.1.242:8080                          |
| HAProxy (NATed) --------------- Конечная точка JAX-WS, работающая в контейнере Tomcat |
|-----------------------------------------------------------------------------|


** Неудачный запрос POST:**

POST /ddc/ddcService HTTP/1.1 Принять: текст /xml, multipart/related Авторизация: Basic xxxxxxxxxxxxxxxxxxxxxxx= Тип содержимого: multipart / related; start =""тип =" приложения / ХОР + XML "граница =" UUID:b440d52f-dee1-4735-9ff5-6093fa9d774b"старт-информация =" текст / XML"
SOAPAction: "" Пользователь-агент: JAX-WS RI 2.2.6-1b01  svn-revision#13094 Хост: ddc.zzzz.com Подключение через прокси-сервер: keep-alive Кодирование передачи: chunked



** Конфигурация HAproxy:** глобальный журнал /dev/log    local0
    log /dev/log    local1 информация об уведомлении отладка chroot /var/lib/haproxy статистика сокет /run/haproxy/admin.sock режим 660 уровень администратора статистика тайм-аут 30s статистика bind-процесс 7 пользовательская группа haproxy haproxy
    daemon
    nbproc 7
    tune.bufsize 32768
    tune.ssl.default-dh-param 2048
    ssl-default-bind-шифры kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
    ssl-default-bind-options no-sslv3 по умолчанию log global
    mode    http
    bind-process 3 опция httplog опция dontlo время ожидания gnull connect 5000
    timeout client  50000
    timeout server  50000 опция httpclose
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http параметр forwardfor, кроме 127.0.0.1 опция tcp-smart-connect для внешнего интерфейса входящего связывания *:8080 имя http связывание *:4443 ssl  crt /etc/letsencrypt/live/ddc.xxx.com/fullchain.pem.bundle опция forwardfor header X-Real-IP
    use_backend  ddc если ddc

backend ddc опция forwardfor
    mode http
    http-запрос set-header X-Forwarded-Port %[dst_port]
    http-request replace-header Host Хост ^(.*?)(:[0-9]+)?$ \1 сервер ddc 192.168.1.242:8080 проверьте порт 8080

0 ответов

Другие вопросы по тегам