记录nignx配置websocket不生效

背景

搭建了一个minio,需要使用nginx代理minio的前端访问。

问题现象

按照官网配置了websocket配置,但是访问的时候依然有websocket错误,无法访问minio中bucket中的对象。

nginx配置

server {
    listen 80;
    server_name minio-ui-dev.3finfo.com;
    location / {
      proxy_pass http://192.168.1.114:31901;
      proxy_set_header Host $host;      #这一句配置一定要配置上
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }

这里设置头部中的Host字段是必须要配置,不然不生效,具体原因还不知道。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
配置 Nginx 支持 WebSocket,你需要在 Nginx配置文件中添加以下配置: ``` map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } location /websocket { proxy_pass http://localhost:9000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } ``` 这个配置文件中定义了两个 location,分别代表 HTTP 请求和 WebSocket 请求。其中,`/` 代表 HTTP 请求,`/websocket` 代表 WebSocket 请求。 在 HTTP 请求中,Nginx 会将请求代理到 `http://localhost:8000`,而在 WebSocket 请求中,Nginx 会将请求代理到 `http://localhost:9000`。为了支持 WebSocket,我们需要在请求头中设置 `Upgrade` 和 `Connection` 字段,这可以通过 `proxy_set_header` 指令来实现。 注意,上面的配置文件中,使用了一个名为 `map` 的指令,用于根据请求头中的 `Upgrade` 字段来设置 `Connection` 字段。这是为了向后兼容,因为旧版本的浏览器可能会使用 `Connection: keep-alive, Upgrade`,而新版本的浏览器则会使用 `Connection: Upgrade`。 配置完成后,你需要重新加载 Nginx配置文件,使其生效。你可以使用以下命令重新加载 Nginx: ``` sudo nginx -s reload ``` 希望这些信息能够帮助你配置 Nginx 支持 WebSocket
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值