nginx配置websocket

非加密的WebSocket连接。


#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连接

#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;  
    }  
}

简单说明

# 配置这两个参数,升级链接为 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连接是双向的,并且可能包含实时数据。
# 如果你不需要绕过缓存,这个指令也可以省略。        

相关推荐

  1. nginx配置websocket

    2024-03-14 10:02:01       35 阅读
  2. websocket nignx 配置

    2024-03-14 10:02:01       22 阅读
  3. Nginx Websocket 协议配置支持

    2024-03-14 10:02:01       20 阅读
  4. Nginx配置支持WebSocket功能

    2024-03-14 10:02:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 10:02:01       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 10:02:01       80 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 10:02:01       64 阅读
  4. Python语言-面向对象

    2024-03-14 10:02:01       75 阅读

热门阅读

  1. Ribbon负载均衡

    2024-03-14 10:02:01       39 阅读
  2. 3、ETAS INCA标定系统建立过程

    2024-03-14 10:02:01       38 阅读
  3. MCU简单的前后台软件架构

    2024-03-14 10:02:01       38 阅读
  4. 蓝桥杯 递增三元组

    2024-03-14 10:02:01       41 阅读
  5. Elastic boosting的使用

    2024-03-14 10:02:01       36 阅读
  6. vue element input让浏览器不保存密码

    2024-03-14 10:02:01       39 阅读
  7. Redis实现全局唯一id

    2024-03-14 10:02:01       38 阅读
  8. Redisson

    2024-03-14 10:02:01       40 阅读
  9. Http 请求状态码

    2024-03-14 10:02:01       41 阅读
  10. 前端框架的发展史

    2024-03-14 10:02:01       33 阅读
  11. git命令行提交——github

    2024-03-14 10:02:01       39 阅读
  12. react diff 原理

    2024-03-14 10:02:01       43 阅读