Spring Task和WebSocket使用

在现代 Web 应用中,WebSocket 作为一种全双工通信协议,为实时数据传输提供了强大的支持。若要确保 WebSocket 在生产环境中的稳定性和性能,使用 Nginx 作为反向代理服务器是一个明智的选择。本篇文章将带你了解如何在 Nginx 中配置 WebSocket,并验证其是否正常工作。

1. Nginx 中的 WebSocket 配置
1.1 安装 Nginx

在进行配置之前,确保你的系统上已安装 Nginx。你可以使用以下命令来安装:

Ubuntu/Debian:

复制代码
sudo apt update
sudo apt install nginx

CentOS/RHEL:

复制代码
sudo yum install nginx
1.2 基本 Nginx 配置

打开 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default),并添加以下内容以支持 WebSocket 连接。

注意监听端口号不是80的话,反向代理可能成功不了

复制代码
server {
    listen 80;   # 注意这里要替换为80  (websockt默认瞄准端口)
    server_name yourdomain.com;  # 替换为你的域名

    location /ws {  # WebSocket 路径
        proxy_pass http://localhost:8080;  # 你的 WebSocket 服务器地址
        proxy_http_version 1.1;  # 确保使用 HTTP/1.1
        proxy_set_header Upgrade $http_upgrade;  # 必须的配置
        proxy_set_header Connection "Upgrade";  # 必须的配置
        proxy_set_header Host $host;  # 保留主机头部
        proxy_set_header X-Real-IP $remote_addr;  # 客户端真实 IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 转发 IP
        proxy_set_header X-Forwarded-Proto $scheme;  # 转发协议
    }

    location / {  # 其他请求
        proxy_pass http://localhost:8080;  # 可以根据实际情况修改
    }
}
我修改了proxy_pass让他直接访问我的后端服务,之前的是

如果要使用myserver 要先配置好自己的,我的是webservers 不太一样且端口号不同,就改掉了

1.3 重启 Nginx

配置完成后,需要重启 Nginx 以应用更改:

复制代码
sudo systemctl restart nginx
# 或者
nginx -s reload
2. 验证 WebSocket 配置的正确性

确保 WebSocket 正常工作的方式有很多,以下是几种简单有效的方法:

2.1 使用浏览器的开发者工具
  1. 打开你的网页应用并使用浏览器的开发者工具(通常按 F12)。
  2. 切换到 Network 标签。
  3. 刷新页面,并查看 WebSocket 连接。
  4. 查找以 ws://wss:// 开头的请求,确认其状态为 101 Switching Protocols。这表示 WebSocket 连接已成功建立。
相关推荐
SkyWalking中文站8 小时前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
火车叼位11 小时前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站1 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站2 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ2 天前
Kubeneters HA Cluster部署
运维
江华森3 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森3 天前
Matplotlib 数据绘图基础入门
运维
江华森3 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF7 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端