记录nginx wss 代理转发

2024-03-12 10:48
文章标签 记录 nginx 转发 代理 wss

本文主要是介绍记录nginx wss 代理转发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

var uniqueClientID = getUniqueID();if ('WebSocket' in window) {websocket = new WebSocket("wss://aaa.com:8008/websocket/" + uniqueClientID + "");} else {console.log("您的浏览器不支持对话连接");
}websocket.onopen = function () {console.log("连接成功");
}websocket.onclose = function () {console.log("退出连接");
}websocket.onmessage = function (event) {console.log("收到消息" + event.data);
}websocket.onerror = function () {console.log("连接出错");
}

nginx转发之前 WebSocket的链接是ws://aaa.com:8008/websocket/a, a是一个变量
转发后的链接是wss://aaa.com:8008/websocket/a

我的nginx配置

server {listen       8008 ssl;server_name  aaa.com;ssl_certificate      ssl/4952229_aaa.com.pem;ssl_certificate_key  ssl/4952229_aaa.com.key;ssl_session_cache    shared:SSL:1m;ssl_session_timeout  5m;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;location / {root   html;}location ~ ^/websocket/(.+)$ {proxy_pass http://aaa.com:8006/websocket/$1;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# For WebSocket upgrade header proxy_http_version 1.1;#告诉nginx使用HTTP/1.1通信协议,这是websoket必须要使用的协议proxy_set_header Upgrade $http_upgrade;#告诉nginx,当它想要使用WebSocket时,响应http升级请求proxy_set_header Connection "upgrade";client_max_body_size 10m;client_body_buffer_size 512k;proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_timeout 300;add_header Access-Control-Allow-Origin '*';}}

**

像我这样将变量作为反向代理的地址最重要的一点

**
将变量作为反向代理的地址的话会在Nginx0.6.18以后的版本中都会提示“ no resolver defined to resolve ”的类似错误,而在proxy_pass 中直接设置地址却不会。,原因是Nginx0.6.18以后的版本中启用了一个resolver指令,在使用变量来构造某个server地址的时候一定要用resolver指令来制定DNS服务器的地址,所以解决这个问题的方法很简单:在nginx的配置文件中的http{}部分添加一行resolver 8.8.8.8;即可

在这里插入图片描述

这篇关于记录nginx wss 代理转发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/801023

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压