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 连接已成功建立。
相关推荐
IT成长日记5 小时前
【Nginx开荒攻略】Nginx虚拟主机配置:从域名、端口到IP的完整指南
linux·运维·服务器·nginx·虚拟主机
taxunjishu5 小时前
DeviceNet 转 Modbus TCP 协议转换在 S7-1200 PLC化工反应釜中的应用
运维·人工智能·物联网·自动化·区块链
迎風吹頭髮7 小时前
Linux内核架构浅谈8-Linux内核与UNIX的传承:设计思想与特性差异
linux·运维·架构
黑马金牌编程7 小时前
Linux 服务器常见的性能调优
linux·运维·服务器·性能优化
tianyuanwo7 小时前
Linux进程管理中的T状态问题分析与解决体系
linux·运维·进程管理·t状态
liuyao_xianhui8 小时前
Linux_基本指令1
linux·运维·服务器
爱吃喵的鲤鱼10 小时前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
让子弹飞0210 小时前
永久解决ubuntu网络连接问题
linux·运维·ubuntu
七七七七0712 小时前
【Linux 系统】打开文件和文件系统
linux·运维·spring
ManageEngineITSM14 小时前
IT 服务自动化的时代:让效率与体验共进
运维·数据库·人工智能·自动化·itsm·工单系统