WebSocket을 통한 Stomp를 사용하는 Spring Boot : 잘못된 업그레이드 헤더로 인해 Handshake 실패 : null

레이 보이 치에 초프 스키

Spring Boot 애플리케이션에서 ws (비보안 WebSocket)를 사용하고 있습니다. 클라이언트가 서버에 연결을 시도하면 다음 오류가 나타납니다.

Handshake failed due to invalid Upgrade header: null

스프링 부트 앱은 Apache 프록시 뒤의 Ubuntu 서버에서 실행됩니다. Apache는 다음과 같이 구성됩니다.

<VirtualHost *:80>
    DocumentRoot /var/www/myapp/public/
    ServerAdmin webmaster@localhost
    ServerName  app.myapp.biz

    RewriteEngine       On
    RewriteCond         %{HTTP:Upgrade}^websocket$ [NC,OR]
    RewriteCond         %{HTTP:Connection}^upgrade$ [NC]
    RewriteRule         .* "ws:/127.0.0.1:8096/$1" [P,QSA,L]

    ProxyPreserveHost   On
    ProxyRequests       Off
    ProxyPass           / http://127.0.0.1:8096/
    ProxyPassReverse    / http://127.0.0.1:8096/
    RequestHeader       set X-Forwarded-Proto http
    RequestHeader       set X-Forwarded-Port 80

    SetEnv mongo_username           aUser
    SetEnv mongo_password           aPassword
</VirtualHost>

application.properties다음과 같이 봄 응용 프로그램에 대한은 다음과 같습니다 :

debug=false
server.port=8096
server.address=127.0.0.1

server.forward-headers-strategy=native
server.tomcat.use-relative-redirects=true
server.tomcat.remoteip.protocol-header=x-forwarded-proto
server.tomcat.remoteip.remote-ip-header=x-forwarded-for
server.tomcat.remoteip.port-header=x-forwarded-port

내 개발자 컴퓨터에서 앱을 실행하면 모든 것이 잘 작동합니다. 서버에 배포되면 앞서 언급 한 오류가 발생합니다. 나는 많이 봤지만이 문제에 특정한 것을 찾을 수 없었다. 누군가 도울 수 있기를 바랍니다.

정보 : 연결을 시도하는 프런트 엔드 앱은 ng2-stompjs.

레이 보이 치에 초프 스키

마침내 오류를 찾았습니다. 위해 의 문은 apache.conf중요합니까! 작동중인 conf 파일은 다음과 같습니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName  app.myapp.biz

    ProxyPreserveHost   On
    ProxyRequests       Off
    ProxyPass           / http://127.0.0.1:8096/
    ProxyPassReverse    / http://127.0.0.1:8096/

    RewriteEngine       On
    RewriteCond         %{HTTP:Upgrade} websocket [NC]
    RewriteCond         %{HTTP:Connection} upgrade [NC]
    RewriteRule         ^/?(.*) "ws://127.0.0.1:8096/$1" [P,L]

    SetEnv mongo_username           aUser
    SetEnv mongo_password           aPassword
</VirtualHost>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관