Websocket 설정 인증서 지원 ws

2515 단어
프로젝트 가 https 도 메 인 이름 으로 접근 했다 면 웹 소켓 을 요청 할 때 뉴스 프로 토 콜 의 웹 소켓 인터페이스 가 아니라면 오류 가 발생 할 수 있 습 니 다.그래서 본 고 는 Nginx 에서 웹 소켓 에 인증 서 를 설정 하 는 방법 을 설명 할 것 입 니 다.
  • 우선 웹 소켓 인터페이스 가 자바 프로젝트 에 쓰 여 있다 고 가정 합 니 다. 이 프로젝트 는 이전에 https 인증 서 를 설 정 했 습 니 다. 만약 프로젝트 에 https 인증 서 를 설정 하지 않 았 다 면 앞 뒤 분리 프로젝트 도 메 인 이름 설정 Https 를 참고 하 십시오.그래서 현재 프로젝트 nginx 설정 은 다음 과 같 습 니 다.
  • upstream api.demoProject.com{
        server 192.168.1.110:8090 weight=1;
    }
    
    
    server {
    
        listen 443 ssl;
     
        ssl on;
        ssl_certificate /etc/letsencrypt/live/api.demoProject.com/fullchain.pem;   #        
        ssl_certificate_key /etc/letsencrypt/live/api.demoProject.com/privkey.pem; #        
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
        ssl_prefer_server_ciphers on;
    
        listen       80;
        server_name  api.demoProject.com;
    
        location / {
            client_max_body_size 100M;
            proxy_set_header Host $host;
            proxy_pass api.demoProject.com;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
    }
    
  • location 에 다음 두 줄 만 추가 하면 ws
  • 를 지원 할 수 있다.
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    

    추 가 된 설정 은 다음 과 같 습 니 다.
    upstream api.demoProject.com{
        server 192.168.1.110:8090 weight=1;
    }
    
    
    server {
    
        listen 443 ssl;
     
        ssl on;
        ssl_certificate /etc/letsencrypt/live/api.demoProject.com/fullchain.pem;   #        
        ssl_certificate_key /etc/letsencrypt/live/api.demoProject.com/privkey.pem; #        
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
        ssl_prefer_server_ciphers on;
    
        listen       80;
        server_name  api.demoProject.com;
    
        location / {
            client_max_body_size 100M;
            proxy_set_header Host $host;
            proxy_set_header Upgrade $http_upgrade;    #  wss
            proxy_set_header Connection "upgrade";    #  wss
            proxy_pass api.demoProject.com;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
    }
    

    좋은 웹페이지 즐겨찾기