nginx配置websocket

非加密的WebSocket连接。

shell 复制代码
#ws`# 这是一个ws配置示例,表示使用非加密的WebSocket连接。  
server {  
    listen 8080;  
    server_name example.com;  
  
    location /websocket {  
        proxy_pass http://backend-server;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "upgrade";  
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}

SSL/TLS加密的WebSocket连接

shell 复制代码
#wss`# 这是一个wss配置示例,表示使用SSL/TLS加密的WebSocket连接。  
server {  
    listen 443 ssl;  
    server_name example.com;  
  
    ssl_certificate /path/to/certificate.crt;  
    ssl_certificate_key /path/to/private_key.key;  
  
    location /websocket {  
        proxy_pass http://backend-server;  
        proxy_http_version 1.1;  
        # 这个指令设置了HTTP头Upgrade的值。
        # $http_upgrade是一个变量,它的值是HTTP请求头中的Upgrade字段的值。
        # WebSocket协议使用这个头字段来升级普通的HTTP连接为WebSocket连接。
        proxy_set_header Upgrade $http_upgrade;  
        # 这个指令设置了HTTP头Connection的值。
        # WebSocket协议使用这个头字段来指定连接的升级方向。
        # 在这里,它的值被设置为upgrade,表示这个连接应该被升级为WebSocket连接。
        proxy_set_header Connection "upgrade";  
        
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}

简单说明

shell 复制代码
# 配置这两个参数,升级链接为 websocket 
# 如果有向下级代理转发,下级代理也需要配置此参数
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "upgrade";  
        
# 而proxy_set_header Host $host;
# 和proxy_cache_bypass $http_upgrade;这两个指令不是必选的。

# proxy_set_header Host $host;:
# 这个指令设置了HTTP头Host的值,用于指定请求的主机名。
# 如果你在Nginx配置中已经设置了Host头字段的值,那么这个指令可以省略。

# proxy_cache_bypass $http_upgrade;:
# 这个指令指定了在某些情况下是否绕过缓存。
# 当HTTP请求头中的Upgrade字段的值与变量$http_upgrade的值匹配时,缓存将被绕过。
# 这确保了WebSocket连接不会被缓存,因为WebSocket连接是双向的,并且可能包含实时数据。
# 如果你不需要绕过缓存,这个指令也可以省略。        
相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉1 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦1 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj1 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei1 天前
linux 系统目录详解
linux·运维·服务器