关注分享主机优惠活动
国内外VPS云服务器

如何配置 Nginx 支持 WebSocket 和 HTTP/2 共存

为了让 Nginx 支持 WebSockets 和 HTTP/2 的共存,必须正确配置 Nginx。 下面是一个示例配置,展示了如何在同一 Nginx 服务器上支持 WebSocket 和 HTTP/2。

安装 Nginx:
确保 Nginx 已安装并支持 HTTP/2 和 WebSocket 模块。 大多数 Linux 发行版允许您使用包管理器安装 Nginx。 例如,在 Ubuntu 上,您可以使用以下命令:

sudo apt update
sudo apt install nginx

配置 Nginx
编辑 Nginx 配置文件。 通常位于 /etc/nginx/nginx.conf/etc/ 中。 nginx /sites-available/default。 以下是设置示例。

服务器 {
 监听 80;
 服务器名称 example.com;

 # HTTP/2 支持
 lis十 443 ssl http2;
 ssl_certificate /path/to/your/certificate. pem;
 ssl_certificate_key /path/to/your/private-key.pem;

 # WebSocket 支持
 位置 /websocket {
 proxy_pass http://localhost :8080; # 假设 WebSocket 服务器运行在端口 8080
 proxy_http_version 1.1;
 proxy_set_header 升级 $http_upgrade;
 proxy_set_header 连接 "升级";
 proxy_set_header Host $host;
 }

 # 在此处添加其他 HTTP/2 路由您可以
}

使用此配置:

* `listen 443 ssl http2 ;` 启用HTTPS 和 HTTP/2 支持。    您必须将“/path/to/your/certificate.pem”和“/path/to/your/private-key.pem”替换为 SSL 证书和私钥的实际路径。    
* `location /websocket` 块配置 WebSocket 端点。    这假设 WebSocket 服务器在本地端口 8080 上运行。 您需要根据自己的实际情况调整 proxy_pass 指令的地址和端口。    
* `proxy_http_version 1.1;` 告诉 Nginx 您正在使用 HTTP/1.1 协议,因为 WebSocket 是使用 HTTP/1.1 实现的。    
* `proxy_set_header Upgrade $http_upgrade;` 和 `proxy_set_header Connection "Upgrade";` 是需要告诉 Nginx 的头信息将您的请求升级为 WebSocket 连接。    

重新启动 Nginx:
保存配置文件并重新启动 Nginx 以应用更改:

sudo systemctl restart nginx

Nginx 服务器现在支持 HTTP/2 和 WebSocket 您将能够同时支持两者。 访问 https://example.com/websocket(将 example.com 替换为您的域名)并通过浏览器或其他 HTTP 客户端进行连接 您可以测试您的 WebSocket 连接。和 。 访问其他 HTTP/2 路由。

未经允许不得转载:主机频道 » 如何配置 Nginx 支持 WebSocket 和 HTTP/2 共存

评论 抢沙发

评论前必须登录!