用于 SSL PHP 站点和 Websockets WSS 的 Nginx 配置?

保利

我正在尝试设置 websocket 连接 (wss)。我的域使用 ssl (certbot) 并由 Nginx 提供支持。我不确定如何配置我的/etc/nginx/sites-available/example.com文件。

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
...
}

我在我的配置块中添加了以下内容:

location /websocket {
    proxy_pass         https://example.com;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "upgrade";
    proxy_set_header   Host $host;
}

通过连接时:wss://example.com/,我收到错误

WebSocket connection to 'wss://example.com/' failed: 
Error during WebSocket handshake: Unexpected response code: 200

那里的大多数示例都使用 nodejs 框架来为其站点提供服务,但我使用的是 php。有没有可以指导我的教程,或者有没有人知道如何配置我的配置文件?谢谢!

泰洛夫

proxy_pass https://example.com;在你的 nginx 配置中找到,但是https://example.com是 http 服务器而不是 websocket 服务器,所以你得到了响应代码 200

这是一个例子

location ~ ^/websocket/(.*$) {
    tcp_nodelay on;
    keepalive_timeout  1200s 1200s;
    keepalive_requests 100000;
    proxy_pass http://127.0.0.1:51966/$1;
    proxy_read_timeout 1200s;
    proxy_send_timeout 1200s;
    proxy_http_version 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;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

51966是websocket监听的端口

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用于socket.io/websockets的Nginx配置

来自分类Dev

用于静态和PHP文件的NGINX配置

来自分类Dev

用于SSL的Laravel Forge Nginx配置

来自分类Dev

用于SSL的Laravel Forge Nginx配置

来自分类Dev

NGINX Websocket和SSL配置

来自分类Dev

用于 php 后端和 JS 前端的 NGINX 配置

来自分类Dev

SSL 不适用于 nginx 443 配置

来自分类Dev

使用Nginx和SSL配置SocketCluster

来自分类Dev

如何配置Nginx和Node使用SSL?

来自分类Dev

Netty SSL和websockets

来自分类Dev

使用Django和Node.js为Websocket设置Nginx的配置(wss://)

来自分类Dev

用于Nginx和PHP-FPM的OOB配置管理软件?

来自分类Dev

Nginx SSL配置失败

来自分类Dev

Nginx SSL 配置设置

来自分类Dev

在nginx.conf或启用站点的SSL中配置SSL有什么区别?

来自分类Dev

使用Fleck的WebSockets。WSS

来自分类Dev

修改 nginx 配置以正确反向代理 websockets

来自分类Dev

engine.io/wss/SSL/HTTP:如何配置?

来自分类Dev

购买用于nginx和tomcat设置的ssl证书

来自分类Dev

购买用于nginx和tomcat设置的ssl证书

来自分类Dev

用于 nginx 和 php-fpm 的 Docker

来自分类Dev

Nginx 1.6上的SSL配置

来自分类Dev

nginx忽略了我的站点配置

来自分类Dev

结合使用 Ratchet WsServer 和 React SecureServer (WSS / SSL)

来自分类Dev

Nginx和SSL证书

来自分类Dev

ssl 与 apache 和 nginx

来自分类Dev

为什么我的wss://(基于SSL / TLS的WebSockets)连接立即断开连接而没有出现任何错误?

来自分类Dev

为什么我的wss://(基于SSL / TLS的WebSockets)连接立即断开连接而没有出现任何错误?

来自分类Dev

SAAJInInterceptor和WSS4JInInterceptor Bean的Java配置