在本地服务器可以正常连接
在这里插入图片描述
放到生产环境后连接失败
在这里插入图片描述
解决方法:添加websocket代理配置

proxy_http_version 1.1; # 必须使用HTTP/1.1
proxy_set_header Upgrade $http_upgrade; # 传递Upgrade头
proxy_set_header Connection "upgrade"; # 将Connection头设置为"upgrade"

nginx.conf完整配置


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  www.mytest.com;

        # 将所有的HTTP请求重定向到HTTPS
        return 301 https://$server_name$request_uri;
    }

    # HTTPS server
    server {
        listen       443 ssl;
        server_name  www.mytest.com;

        ssl_certificate      D:/nginx-1.26.3/ssl/www.mytest.com.crt;
        ssl_certificate_key  D:/nginx-1.26.3/ssl/www.mytest.com.key;

        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location /api/ {
            # 指定要代理到的目标服务器地址
            proxy_pass http://192.168.1.22:8080/;

            # 以下是WebSocket代理的核心配置
            proxy_http_version 1.1; # 必须使用HTTP/1.1
            proxy_set_header Upgrade $http_upgrade; # 传递Upgrade头
            proxy_set_header Connection "upgrade"; # 将Connection头设置为"upgrade"
            
            # 标准代理头(同样重要)
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme; # 告诉后端这是HTTPS请求

            # 建议增加超时时间,因为WebSocket是长连接
            proxy_read_timeout 3600s; # 1小时
            proxy_send_timeout 3600s;
            proxy_connect_timeout 30s;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

如果是http写使用wx://www.xxx.com,https协议使用wss://www.xxx.com

在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐