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 连接已成功建立。
相关推荐
chevysky.cn3 小时前
Jenkins自动部署CI/CD
运维·ci/cd·jenkins
躲猫猫的喵喵5 小时前
Ubuntu2204降内核版本
linux·运维·服务器·ubuntu
zdslovezy5 小时前
CentOS 系统升级 OpenSSH 和 OpenSSL 的完整方案
linux·运维·centos
cccccc语言我来了6 小时前
(Linux (6):从包管理到工具探索,构建系统操作基础认知)
linux·运维·服务器
8K超高清7 小时前
高校巡展:中国传媒大学+河北传媒学院
大数据·运维·网络·人工智能·传媒
wuk9987 小时前
CentOS7环境搭建L2TP服务器
运维·服务器
恒创科技HK7 小时前
香港1核2G云服务器当网站服务器够用不?
运维·服务器
IT 小阿姨(数据库)7 小时前
PostgreSQL 之上的开源时序数据库 TimescaleDB 详解
运维·数据库·sql·postgresql·开源·centos·时序数据库
颜大哦8 小时前
linux安装mysql
linux·运维·mysql·adb
学习3人组8 小时前
Node.js 网站服务器开发
运维·服务器·node.js