wss通过nginx转发

其实和frp关系不大,主要是nginx的处理逻辑。

 server {
    
            listen 443 ssl;
            server_name xxxx;
            ssl_certificate xxxx;
            ssl_certificate_key xxxx;
            ssl_session_timeout 5m;
            ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
            ssl_prefer_server_ciphers on;
    
            location / {
                add_header Access-Control-Allow-Origin *;
               add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
               add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
               proxy_set_header Upgrade $http_upgrade;
                 proxy_set_header Connection "upgrade";
               proxy_pass http://xxxx:9090;
            }
    
                    #配置转发ws请求
            location /wss/ {
            # rewrite ^/api/ws/(.*)$ /$1 break;!
            proxy_pass http://xxxx:9090/;
           # proxy_read_timeout 30000s;
            #proxy_set_header Host $host;
            proxy_set_header Connection "upgrade";
           # proxy_set_header X-Real-IP $remote_addr;
           # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header X-real-ip $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
          #  proxy_set_header Connection $connection_upgrade;
            }
        }

http重定向到https

    server {
        listen       80 ;
        server_name  xxxx;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        # 重点,转发websocket需要的设置
        #proxy_set_header X-Real_IP $remote_addr;
        #proxy_set_header Host $host;
        #proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
        #proxy_http_version 1.1;
        #proxy_set_header Upgrade $http_upgrade;
        #proxy_set_header Connection 'upgrade';
        rewrite ^(.*)$  https://xxxx permanent;
    }