首页 > 系统相关 >nginx 中根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接

nginx 中根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接

时间:2023-07-18 18:34:34浏览次数:40  
标签:upgrade HTTP ssl nginx proxy http 连接

配置 “$connection_upgrade” 变量

连接升级通常与 WebSockets 结合使用。 在 nginx 中,我们可以根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接。

我们可以使用 map 块在 nginx 中定义连接和 http 升级之间的依赖关系:

vim nginx.conf

map $http_upgrade $connection_upgrade {
        default upgrade;
        '  '       close;
       }
如果 Upgrade 标头设置为 ‘’,此 map 块告诉 nginx 正确设置相关的 Connection 标头来关闭连接。
将 map 块放入 nginx 配置的 http 块中。 nginx 配置的默认文件路径是 /etc/nginx/nginx.conf 。
————————————————
cat   abcd.hkml.com.conf

map $http_upgrade $connection_upgrade {
  default upgrade;
  '  '       close;
        }

server {
  listen 443 ;

  server_name abcd.hkml.com;

  ssl_certificate /etc/nginx/ssl/abcd.hkml.com.pem;
  ssl_certificate_key /etc/nginx/ssl/abcd.hkml.com.key;
  #ssl_session_cache shared:SSL:1m;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;

  location ~^/webSocket{
    proxy_pass http://172.1.1.10:9099;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_read_timeout 3600s;
    proxy_connect_timeout 86400;
    proxy_ignore_client_abort on;
    }

  }

标签:upgrade,HTTP,ssl,nginx,proxy,http,连接
From: https://www.cnblogs.com/walkersss/p/17563824.html

相关文章

  • jfinal 框架学习笔记-第三天 Model相关学习--record+Model增删改查的用法(震惊之今日刷
    1.了解了数据库连接池。其中使用最多也是最广泛的是druid数据库连接池也就是阿里云研发的数据库连接池2.ActiveRecord(jFinal的核心技术)+DruidPlugin(数据库连接词,如何与数据库打交道)ActiveRecord:1.Record(记录,相当于一个通用的Model),2.Model(提供日常CRUD的封装)Model示例......
  • python用逗号连接字符串
    Python用逗号连接字符串的实现方法引言在Python中,我们经常会遇到需要将多个字符串连接起来的情况。其中一种常见的需求是将多个字符串用逗号进行连接。本文将介绍如何使用Python实现这一功能。实现步骤下面是实现“Python用逗号连接字符串”的步骤概览:步骤描述第一步......
  • 欧姆龙以太网选项板设置连接 Kepware opc步骤
    在数字化和自动化的今天,PLC在工业控制领域的作用日益重要。然而,PLC通讯口的有限资源成为了困扰工程师们的问题。为了解决这一问题,捷米特推出了JM-ETH-CP转以太网模块,让即插即用的以太网通讯成为可能,不仅有效利用了PLC的通讯资源,还提高了数据传输的效率和稳定性。  捷米特JM-......
  • Mobax ssh 连接 Ubuntu 虚拟机
    1.ConnectionRefused虚拟机检查ssh是否安装ps-e|grepssh安装openssh-serversudoapt-getinstallopenssh-server2.使用root登录后,提示Accessdenied修改/etc/ssh/sshd_configPermitRootLoginyes然后重启服务https://blog.csdn.net/haolvshiqi/article/......
  • python连接mongodb副本集(PSA)
    环境:Python:3.6.5mongodb:4.4.22192.168.1.104:29001主节点192.168.1.107:29001从节点192.168.1.106:29001仲裁节点 #!/usr/bin/envpython#coding=utf-8importos,json,urllib,datetime,shutil,random,uuidfromrandomimportchoiceimportpymysqlimporttrace......
  • 解决 Https 站点请求 Http 接口服务后报 the content must be served over HTTPS 错误
    问题分析之前将自己所有的Http站点全部更新为Https站点,但是在请求后台接口服务的时候还是Http请求,导致部署之后,直接在控制台报Thisrequesthasbeenblocked;thecontentmustbeservedoverHTTPS;的错误解决思路因为我不想耗费精力,将所有的后台接口服务也更新为支......
  • Netty 作为 http client 请求https 的 get与post(二)双向ssl
    接Netty作为httpclient请求https的get与post,packagecom.example.demo;importio.netty.bootstrap.Bootstrap;importio.netty.buffer.ByteBuf;importio.netty.buffer.Unpooled;importio.netty.channel.*;importio.netty.channel.nio.NioEventLoopGroup;importio.net......
  • 数据库连接池之c3p0-0.9.1.2,线上偶发APPARENT DEADLOCK,如何解?
    前言本篇其实是承接前面两篇的,都是讲定位线上的c3p0数据库连接池,发生连接泄露的问题。第二篇讲到,可以配置两个参数,来找出是哪里的代码借了连接后没有归还。但是,在我这边的情况是,对于没有归还的连接,借用者的堆栈确实是打印到日志了,但是我在本地模拟的时候,发现其实这些场景是有归......
  • 如何连接远程数据库
    如何连接远程数据库在数据库新建连接,输入远程数据库信息,测试连接提示连接成功后点击确定>确定即可双击ceshi连接,即可查看远端服务器的数据库内容......
  • docker buildx http: server gave HTTP response to HTTPS client
    参考:https://github.com/docker/buildx/issues/163https://github.com/thegeeklab/drone-docker-buildx/issues/153https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md 准备用buildx构建多平台镜像,基于Dockerfilefrom私服中的jdk在执行以下命令时,......