详细nginx配置websocket的wss协议

2023-05-16

需求: 小程序连接websocket,必须使用wss协议
nginx配置websocket以及wss协议
其实wss协议就是使用了ssl协议的域名所自带的协议,所以wss协议需要域名来进行socket连接,并且开通ssl证书访问即可。
首先部署项目:
项目的websocket接口在内部为: localhost:28888
也就是本地通过 ws://localhost:28888 进行socket连接,当然因为使用域名wss,所以此处需要放到服务器 ws://你的服务器ip:28888 (这样访问的前提是将28888加入开放端口)

首先设置新二级域名的dns解析
并且开通ssl证书
下载ssl证书(此处使用腾讯云,里面有nginx部署ssl证书教程)
上传ssl证书到服务器,并将证书部署到对应的二级域名
nginx配置websocket

map $http_upgrade $conn_upgrade {
      default upgrade;
      '' close;
    }
        
    server {
      listen 80;
      listen 443 ssl;
      server_name www.aaa.com; # 按实际域名添加
      
      # 证书地址(根据喜好选择文件夹)
      ssl_certificate /www/wwwcertificate/xxx.crt; # 按实际文件名填
      # 证书key地址
      ssl_certificate_key /www/wwwcertificate/xxx.key;
      ssl_session_timeout 5m;
      ssl_protocols TLSv1.2 TLSv1.3;
      #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        
        location /ws {
           #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
           #例如,您的网站运行目录在/etc/www下,则填写/etc/www。
            proxy_pass http://localhost:28888;  # 本地服务的ws连接端口
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connetion $conn_upgrade;
        }

    }

主要涉及到ws的配置是

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connetion $conn_upgrade;

这两行配置的意思是将http协议升级为ws协议。变量值为前面定义的map

这样跳转会有个有意思的地方,那就是在服务端获取localhost:28888后面的参数时,会将上级代理的参数也获取到
比如:使用 www.aaa.com/ws连接ws,那么会获取到uri为/ws。这里明明是:

  location /ws {
            proxy_pass http://localhost:28888;
            # ...
            }

按道理应该是 www.aaa.com/ws/ws对应是localhost:28888/ws,uri才是/ws,
此处也就是说,最终获取的其实是连接域名的uri,而不管是否经过代理

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详细nginx配置websocket的wss协议 的相关文章

随机推荐

  • android系统锁屏详解【android锁屏解析二】

    谷歌的代码写的确实不错 xff0c 我很幸运 xff0c 一开始接触代码就赶上了谷歌这个开源的系统 xff0c 让我的视野开阔了很多 xff0c 也让我看到了优秀的代码工程师写到的代码 心怀感恩之心 题记 我的有篇文章说了这个锁屏 xff0
  • <转载>创建第一个Android项目

    Android 如何创建项目 Android Hai的博客 CSDN博客 android新建项目 目录一 创建流程二 Android Studio 主窗口三 链接一 创建流程1 安装最新版 Android Studio 2 第一次打开And
  • kotlin---使用注释处理的 Android 框架

    在日常 Android 开发中 xff0c 流行着数以千计的框架帮助我们提升开发效率 使用 Kotlin 开发时仍然可以沿用这些框架 xff0c 而且和使用 Java 同样简单 本章教程将提供相关示例并重点介绍配置的差异 教程以 Dagge
  • 集合的使用——超市购物小票案例

    集合的使用 超市购物小票案例 1 定义GoodsItem类 名称 货号 单价 数量 计价单位 金额 span class token comment 定义GoodsItem类 名称 货号 单价 数量 计价单位 金额 span span cl
  • 在Eclipse中添加sun.misc.Launcher类

    研究类加载器 xff0c 用到sun misc Launcher类 xff0c 如何在Eclipse中添加呢 xff1f 启动类加载器的加载路径 URL ruls 61 sun misc Launcher getBootstrapClass
  • IllegalMonitorStateException异常 | 生产者消费者模式

    文章目录 结论先行 xff1a 生产者消费者 synchronized版生产者消费者 Lock版 结论先行 xff1a 这是JDK对这异常的定义 就是说线程没有拿到对应对象的监视器 xff0c 也就不能在监视器上完成wait或者notify
  • Warning Stopping docker.service, but it can still be activated by docker.socket

    执行 systemctl stop docker 后提示 Warning Stopping docker service but it can still be activated by docker socket 解释 xff1a 这是d
  • docker desktop stopping 问题解决

    搜了下网上一些解决问题好像比较多的是docker desktop stopped xff0c 他们是说换低版本的docker desktop解决的 xff0c 但是我的是通过更新WSL xff08 Windows Subsystem for
  • Hadoop启动

    博主用的是Cent0S XShell7使用Hadoop 1 启动Hadoop start all sh 这里会给你报出不赞同的问题 xff0c 但是也是可以使用的 xff0c 最好是采用分别运行HDFS YARN的方式来启动Hadoop 2
  • IDEA2020启动Tomcat控制台中文乱码解决

    IDEA2020启动Tomcat控制台中文乱码解决 1 中文乱码原因 基本上大家安装的windows系统本地语言都是选择中文 xff08 不会有人选择英文吧 xff1f 不会吧 xff1f 不会吧 xff1f xff09 xff0c 也就是
  • log4j和logback的比较

    一 slf4j slf4j是一系列的日志接口 xff0c 而log4j logback等则是具体实现了的日志框架 因为是接口 xff0c 所以在项目中如果你不引用log4j logback或者其它日志框架你会发现 xff0c 控制台的输出是
  • MyEclipse配置Tomcat 7

    1 打开步骤 xff1a 窗口 gt 首选项 gt MyEclipse gt Servers gt Tomcat gt Tomcat 7 x 2 配置自己本地的Tomcat 7版本 3 关闭MyEclipse自带的Tomcat服务器 4 启
  • mysql之模糊查询的方法

    Mysql模糊查询正常情况下在数据量小的时候 xff0c 速度还是可以的 xff0c 但是不容易看出查询的效率 xff0c 在数据量达到百万级 xff0c 千万级的甚至亿级时mysql查询的效率是很关键的 xff0c 也是很重要的 一 一般
  • Spring Cloud限流详解

    Spring Cloud限流详解 Spring Cloud Spring Cloud 2017 12 01 在高并发的应用中 xff0c 限流往往是一个绕不开的话题 本文详细探讨在Spring Cloud中如何实现限流 在Zuul上实现限流
  • 如何释放linux的内存

    你们知道怎么释放linux的内存吗不知道的话跟着学习啦小编一起来学习怎么释放linux的内存 释放linux的内存的步骤 Linux下操作频繁时 xff0c 物理内存会被快速用完 xff0c 当操作结束后 xff0c 物理内存没有被正常的释
  • docker修改镜像名称以及tag版本

    docker tag 镜像ID 镜像名称 tag版本信息 docker tag 8ef375298394 mysql v5 7
  • 跨域的五种解决方案详解

    1 跨域解决方案一 cors技术 CORS 全称cross origin resource share xff08 资源共享 xff09 工作原理 xff1a 服务器 在返回响应报文的时候 xff0c 在响应头中 设置一个允许的header
  • MySQL 日期时间类型精确到毫秒

    MySQL 常用的日期时间类型常用的是datetime timestamp 其中datetime占用5个字节 xff08 有些文档中说占用8个字节是不对的 xff0c 默认也不会保存毫秒 xff09 DATETIME和TIMESTAMP两种
  • Spring Boot——Thymeleaf

    哈喽 xff01 大家好 xff0c 我是 xff0c 一位上进心十足的 Java领域博主 xff01 的写作风格 xff1a 喜欢用 通俗易懂 的文笔去讲解每一个知识点 xff0c 而不喜欢用 高大上 的官方陈述 博客的领域是 面向后端技
  • 详细nginx配置websocket的wss协议

    需求 xff1a 小程序连接websocket xff0c 必须使用wss协议 nginx配置websocket以及wss协议 其实wss协议就是使用了ssl协议的域名所自带的协议 xff0c 所以wss协议需要域名来进行socket连接