nginx配置websocket

本文详细介绍如何在Nginx 1.15.3环境下配置WebSocket服务,包括解压安装、配置文件修改及常用命令使用等内容。适用于Windows 2012服务器环境。

环境

nginx-1.15.3 windows版本
阿里云windows2012服务器

操作步骤

  1. 解压nginx在D:\tools\nginx目录下。;
  2. 修改D:\tools\nginx\conf\nginx.conf;
worker_processes  1;
http {
  #map块为websocket必须配置
   map $http_upgrade $connection_upgrade {
       default upgrade;
       '' close;
   }

   upstream websocket {
       server localhost:8081;
   }

   server {
       listen 80;
       #配置websocket地址
       location /system/indexWebsocket {
           proxy_pass http://websocket;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection $connection_upgrade;
       }
   }
}
  1. 启动nginx ,dos下进入D:\tools\nginx,执行start nginx命令启动nginx,不要双击nginx.exe图标,这样会导致很多问题

nginx常用命令

停止 nginx -s stop
退出 nginx -s quit
重启加载配置 nginx -s reload 这个命令在windows下不起作用
启动 start nginx

以下是两种常见的 Nginx 配置 WebSocket 的示例: #### 示例一 ```nginx server { listen 80; server_name 域名; location / { proxy_pass http://127.0.0.1:8080/; # 代理转发地址 proxy_http_version 1.1; proxy_read_timeout 3600s; # 超时设置 # 启用支持 websocket 连接 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /upload { # 静态资源地址 root /mnt/resources; } } ``` 此配置中,`server` 块监听 80 端口,对于根路径 `/` 的请求会代理到 `http://127.0.0.1:8080/`,同时通过设置 `proxy_set_header` 启用了 WebSocket 支持。对于 `/upload` 路径的请求,会从 `/mnt/resources` 目录获取静态资源 [^1]。 #### 示例二 ```nginx map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream wsbackend{ server ip1:port1; server ip2:port2; keepalive 1000; } server { listen 20038; location /{ proxy_http_version 1.1; proxy_pass http://wsbackend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 3600s; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } ``` 该配置使用了 `map` 指令来根据 `$http_upgrade` 的值设置 `$connection_upgrade`,`upstream` 块定义了后端 WebSocket 服务器的地址,`server` 块监听 20038 端口,将请求代理到 `wsbackend` 上游服务器,并设置了一系列的请求头来支持 WebSocket 连接 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值