Wildfly 16 с http-удаленным взаимодействием за NGINX: JBREM000202 - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь поставить Wildfly 16 за NGINX в качестве обратного прокси. Я хочу обслуживать EJB с помощью http-remoting.

Вот моя NGINX конфигурация:

server {                                                                                                                             
  listen          81;                                                                                                                
  server_name     10.0.2.15;                                                                                                         
                                                                                                                                     
  location / {                                                                                                                       
                                                                                                                                     
                                                                                                                                     
    set $should_proxy "";                                                                                                            
    set $upgrade_header "";

    if ($http_sec_jbossremoting_key) {
      set $should_proxy "Y";
    }

    if ($should_proxy = Y) {
      proxy_pass http://127.0.0.1:8080;
      set $upgrade_header "upgrade";
    }

    proxy_set_header Sec-JbossRemoting-Key $http_sec_jbossremoting_key;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header Connection $upgrade_header;
    
  }
}

Однако на клиенте EJB я получаю

IOException: JBREM000202: Abrupt close on Remoting connection

Я попытался получить заголовки, созданные NGINX, и использовал tcpdump со следующим выводом:

00:16:08.083162 IP (tos 0x0, ttl 64, id 34533, offset 0, flags [DF], proto TCP (6), length 185)
    localhost.34890 > localhost.http-alt: Flags [P.], cksum 0xfead (incorrect -> 0x81b5), seq 1:134, ack 1, win 512, options [nop,nop,TS val 1104278851 ecr 1104278851], length 133: HTTP, length: 133
        GET / HTTP/1.0
        Sec-JbossRemoting-Key: iy2PuEO5anDKgm4w2+o0Tw==
        Upgrade: jboss-remoting
        Host: 10.0.2.15:81
        Connection: upgrade

00:16:08.083165 IP (tos 0x0, ttl 64, id 42808, offset 0, flags [DF], proto TCP (6), length 52)
    localhost.http-alt > localhost.34890: Flags [.], cksum 0xfe28 (incorrect -> 0x753d), ack 134, win 511, options [nop,nop,TS val 1104278851 ecr 1104278851], length 0
00:16:08.083690 IP (tos 0x0, ttl 64, id 42809, offset 0, flags [DF], proto TCP (6), length 227)
    localhost.http-alt > localhost.34890: Flags [P.], cksum 0xfed7 (incorrect -> 0x1ada), seq 1:176, ack 134, win 512, options [nop,nop,TS val 1104278852 ecr 1104278851], length 175: HTTP, length: 175
        HTTP/1.1 101 Switching Protocols
        Connection: Upgrade
        Upgrade: jboss-remoting
        Sec-JbossRemoting-Accept: ofI3qxa1miPoq1vhp3tDCO5r/kw=
        Date: Sat, 20 Jun 2020 22:16:08 GMT

По сравнению с запросами, отправленными непосредственно в Wildfly, они выглядят идентично. Я понятия не имею, как это дальше отлаживать.

Есть идеи, что я делаю неправильно?

...