nginx 转发webSocket连接请求

2023-11-08

一、导读

nginx 是一个反向代理的轻量服务器,能对http请求进行转发,但是最新学习websocket发现,普通的nginx转发http请求时候无法转发websocket请求,今天就来介绍一下nginx如何转发websocket请求;与普通的端口转发差不多,只需要修改或加多一两个配置信息。

二、修改nginx.conf配置文件

1. http模块配置如下

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format   '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
	access_log  /home/xxx/logs/access.log;

    sendfile        on;
    keepalive_timeout  65;
    
    # 添加 websocket 转发配置
	map $http_upgrade $connection_upgrade {
	  default upgrade;
	  ''      close;
	}

	server {
		listen       8080;
        server_name  127.0.0.1;
		
	    location /api {
			# 添加 websocket 转发配置
            proxy_http_version 1.1;
	        proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            
            # 转发后台地址
            proxy_pass              http://127.0.0.1:8081/api;
        }
    }
}

2. 以上有2个地方配置好,即可实现websocket请求转发。

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

nginx 转发webSocket连接请求 的相关文章

  • Nginx 背后的多个 Meteor 站点

    这个问题与this https stackoverflow com questions 10936242 how can i correct the meteor base url in a nginx reverse proxy conf
  • 我怎样才能重写这个nginx“if”语句?

    例如 我想这样做 if http user agent MSIE 6 0 http user agent MSIE 7 0 etc etc rewrite ROOT ROOT ancient last break 而不是这个 if http
  • Nginx 中 uwsgi_pass 和 proxy_pass 的区别?

    我在 Nginx 后面运行 uWSGI 并一直在使用proxy pass让 Nginx 访问 uWSGI 切换到有什么好处吗uwsgi pass 如果是这样 那是什么 uwsgi pass使用一个uwsgi协议 proxy pass使用普通
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • 如何在位置中使用 Nginx Regexp

    Web 项目将静态内容放入 some content img 文件夹中 url规则为 img some md5 但文件夹中的位置 content img 前两位数字 Example url example com img fe5afe048
  • nginx 匹配位置中的特定单词

    我在匹配 nginx request body 变量中的特定单词时遇到问题 如果正文请求中有特殊单词 我想代理传递 所以我的方法是这样的 location php if request body proxy pass http test p
  • 标签库支持命名空间:http://xmlns.jcp.org/jsf/core,但没有为名称定义标签:websocket

    我正在将 jsf 2 2 升级到 jsf 2 3 使用 Wildfly 11 0 0 Beta 作为服务器 我按照本网站上的说明进行操作 http arjan tijms omnifaces org p jsf 23 html 1396 h
  • 在 Apache 上设置 websocket?

    所以我正在对 websockets 进行一些研究 我有几个问题似乎找不到明确的答案 如何在 Linux 服务器上设置 Web 套接字 有 Apache 模块吗 我可以吗have使用第 3 方 PHP 代码或类似代码 除了浏览器兼容性之外 问
  • 常规请求期间 Django AJAX 请求未通过

    我有一个带有登录网页的 Django 站点 当提交页面上的登录表单时 它会执行登录视图 该视图会在其中运行一个需要很长时间处理 30秒左右 的函数 因此 为了在登录期间向客户端显示进度 一旦提交表单 登录页面上的 JS 函数就会开始向服务器
  • nginx代理认证拦截

    我有几个服务 它们支持 nginx 实例 为了处理身份验证 在 nginx 中 我拦截每个请求并将其发送到身份验证服务 在那里 如果凭据正确 我将设置一个包含用户相关信息的 cookie 现在 请求应该被路由到适当的服务 并设置 cooki
  • 使用nginx容器作为反向代理时的原始url

    我有一个 Web 应用程序部署为码头集装箱 我也有一个nginx容器 使用dnsmasq解析器 设置为充当 Web 应用程序前面的反向代理 它的 80 端口映射到主机 我的应用程序使用 SSO 身份验证 当我使用身份提供商登录时 回调 ur
  • 抑制 nginx 访问被拒绝错误日志

    我在 nginx 中设置了一些规则来拒绝 IP 访问 这很有效 但对于来自被拒绝 IP 的每个请求 都会记录以下开头的错误 error 7325 0 5761 access forbidden by rule client 有没有办法抑制这
  • WebSocket 无法与 DNS 配合使用

    我有一个网络应用程序 我正在使用 websockets 我在使用 ws myDomain com 作为 websocket 服务器的地址时遇到问题 这个问题很奇怪 因为我使用许多 PC 测试了连接 似乎这适用于大约 1 5 的 PC 当我将
  • 在 docker 中将 pgadmin 连接到 postgres

    我有一个docker compose与服务文件python nginx postgres and pgadmin services postgres image postgres 9 6 env file env volumes postg
  • 错误请求 400:nginx/gunicorn

    我已经遵循了这个教程 http blog wercker com 2013 11 25 django 16 part3 html http blog wercker com 2013 11 25 django 16 part3 html我现
  • 连接被拒绝:当uwsgi和nginx在不同容器中时

    我正在尝试设置两个 docker 容器 是的 无需 docker compose 分开 一个带有 nginx 另一个带有带有基本 Flask 应用程序的 uwsgi 我在 docker 内的同一网络中运行容器我的 nginx 配置已添加 链
  • 上游太大 - nginx + codeigniter

    我从 Nginx 收到此错误 但似乎无法弄清楚 我正在使用 codeigniter 并使用数据库进行会话 所以我想知道标题怎么会太大 有没有办法检查标题是什么 或者看看我能做些什么来修复这个错误 如果您需要我提供任何conf文件或其他文件
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • Nginx docker容器代理传递到另一个端口

    我想在 docker 容器中运行 Nginx 它监听端口 80 并且当 url 以 word 开头时 我希望它 proxy pass 到端口 8080api 我有一些网络应用程序侦听端口 8080 这在没有 docker 的情况下对我来说一
  • 为什么我会收到 ElasticBeanstalk::ExternalInitationError?

    我的应用程序基于 RubyOnRails 构建 并使用乘客部署为弹性 beanstalk 应用程序 我尝试向 nginx 服务器添加标头并重新启动它 这是我的配置文件 是 aws elastic beanstalk 中 ebextensio

随机推荐

  • 构造方法、类的初始化块以及类字段的初始化顺序

    构造方法 首先 以下代码为何无法通过编译 哪儿出错了 public class Test public static void main String args Foo obj1 new Foo class Foo int value pu
  • 如何写出高质量代码——站在巨人的肩膀上

    如何写出高质量代码 站在巨人的肩膀上 高质量代码的三要素 可读性 可维护性 可变更性 可读性强 可维护性 适应软件在部署和使用中的各种情况 1 3 可变更性 因需求变化而对代码进行修改 牛顿曾经说过 如果说我看得比别人更远 那是因为我站在巨
  • 遍历Newtonsoft.Json.Linq.JObject

    JObject 遍历 引用命名空间 using Newtonsoft Json Linq JObject jObject JObject Parse ID 001 Mark Hello Word StringBuilder str new
  • C++进阶:Makefile基础用法

    文章目录 1 Makefile基本语法与执行 2 Makefile简化过程 3 Makefile生成并使用库 3 1 动态库的建立与使用 3 2 动态加载库的建立与使用 1 Makefile基本语法与执行 作用 Makefile 文件告诉
  • 光纤收发器A,B端含义解释

    最近有朋友问到 光纤收发器型号或者收发器模块上A B字母的含义是什么 今天飞畅科技的小编就来为大家介绍一下 收发器中A B端字母的真正含义 一起来看看吧 首先 光纤收发器按光纤芯数分类有2种 一种是单模双纤光纤收发器 一种是单模单纤光纤收发
  • (二叉树)二叉树的序列化与反序列化

    题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作 进而可以将转换后的数据存储在一个文件或者内存中 同时也可以通过网络传输到另一个计算机环境 采取相反方式重构得到原数据 请设计一个算法来实现二叉树的序列化与反序列化 这里不限定
  • Highway network

    Highway Network主要解决的问题是 网络深度加深 梯度信息回流受阻造成网络训练困难的问题 假设定义一个非线性变换为 定义门函数 携带函数 对于门函数取极端的情况0 1会有 而对应的门函数使用sigmoid函数 则极端的情况不会出
  • Java接口详解

    一 static静态关键字 定义变量不加static关键字 每个对象单独保存一个变量 定义变量加static关键字 静态变量 类变量 共享变量 public static 数据类型 变量名 所有对象会共享该变量 如果一个变量 静态变量 类变
  • C++友元函数

    友元 让函数或者类作为另外一个类的朋友 则可以访问当前类的private或者protected 友元friend机制允许一个类授权其他的函数访问它的非公有成员 友元声明以关键字friend开头 它只能出现在类的声明中 它们不受其在类体中的p
  • node.js系统学习2

    1 最基础的东西 也很实用 用于工作 本地搭建一个简单的服务 实际工作中 有很多时候可能你自己需要一个简单的静态服务 但是你发现你的同事全都有 你没有 人家看一个那个产品原型直接用静态服务看 人家看一个文件直接用静态服务看 而你就很lowb
  • docker 简单运用,使用阿里镜像

    第一步 确定docker已经安装 第二步 去阿里上搜索镜像 找到你想要的镜像 然后点击详细中有命行 如下 注意后面加版本号 如 V1 0 docker pull registry cn hangzhou aliyuncs com kenny
  • 【JavaEE】线程安全

    文章目录 1 前言 2 线程安全的概念 3 造成线程不安全的原因 4 如何解决出现的线程不安全问题 4 1 如何使用 synchronized 加锁 4 2 解决上面自增问题导致的线程安全问题 5 synchronized 的特性 5 1
  • STM32 输入捕获的脉冲宽度及频率计算

    输入捕获模式可以用来测量脉冲宽度或者测量频率 STM32 的定时器 除了 TIM6 和 TIM7 其他定时器都有输入捕获功能 以下是对脉冲宽度及频率的计算 1 脉冲宽度 如下图所示 采集该高电平脉冲的宽度 只需要进入输入捕获上升沿检测 记录
  • 查看文件中关键字前后几行的内容

    有时候文件太大 我们无法全部看完 去查找我们想要的内容 这时我们需要linux命令来查看某个关键字前后几行的内容 grep 使用linux的help命令 如下图 我们可以看到grep的用法 这里我们关注关键字前后的显示问题 以文件test
  • elk多项目收集

    1 filebeat配置 gt etc filebeat filebeat yml filebeat prospectors type log enabled true paths root project logs all all log
  • BACnet MSTP协议485功能测试

    文章目录 BACnet MSTP协议485功能测试 一 命令行运行方法 二 测试工具 1 使用sscom串口助手 2 使用yabe查看结果 三 代码部分 1 包含头文件 2 变量和宏定义 2 RS485配置函数 3 RS485初始化函数 使
  • 【容器适配器的认识与模拟】

    目录 前言 一 引入 二 容器适配器 一 stack deque stack模拟实现 二 queue queue模拟实现 为什么栈和队列要使用deque 三 priority queue priority queue模拟实现 总结 前言 打
  • AngularJS 学习笔记(四)--- 表单验证和常用API

    一 表单验证 1 概念 AngularJS 表单和控件可以对输入的数据进行验证 并对用户输入的非法数据进行警告 一般来说就算前端进行了验证 后端为了安全还是要再次进行验证 HTML5的表单本身带有一定的验证能力 可以与 AngularJS
  • 最新JetBrains PyCharm 使用教程--常用快捷键和设置PyCharm为Eclipse快捷键(四)

    PyCharm常用快捷键使用 Ctrl D 复制当前行 Ctrl Y 删除当前行 Ctrl Z 撤销 Shift Enter 快速换行 Ctrl 快速注释 Ctrl F 查找 Ctrl H 替换 Tab 缩进 Shift Tab 取消缩进
  • nginx 转发webSocket连接请求

    一 导读 nginx 是一个反向代理的轻量服务器 能对http请求进行转发 但是最新学习websocket发现 普通的nginx转发http请求时候无法转发websocket请求 今天就来介绍一下nginx如何转发websocket请求 与