Apache中如何配置 ws 接口

news2025/1/11 13:58:27

Apache中如何配置 wss 接口

在Apache中配置WebSockets的支持,你需要使用mod_proxy_wstunnel模块,该模块是Apache的一个代理模块,它允许你代理WebSocket请求。

以下是配置步骤的简要说明和示例:

确保你的Apache服务器安装了mod_proxy和mod_proxy_wstunnel模块。如果没有安装,你可能需要安装它们。

在Apache的配置文件中(通常是httpd.conf或者在conf.d/目录下的某个文件),配置一个代理传递规则来转发WebSocket请求到相应的后端服务。

重启Apache服务以使配置生效。

在这里插入图片描述

# 在/usr/local/apache2/conf 中的httpd.conf ,在文件在最后添加该内容
# 确保mod_proxy和mod_proxy_wstunnel已经加载 
<IfModule mod_proxy.c>
  ProxyRequests Off
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  
  # 配置WebSocket代理传递
  ProxyVia On
  ProxyPreserveHost On
  
  # 转发到WebSocket服务的地址
  # ProxyPass /ws ws://your_websocket_server:port
  # ProxyPassReverse /ws ws://your_websocket_server:port
 # 转发到WebSocket服务的地址
  ProxyPass /wisdom/websocketTest ws://121.40.221.138:8080
  ProxyPassReverse /wisdom/websocketTest ws://121.40.221.138:8080
</IfModule>

Apache 配置 WebSocket 协议

本文使用 http proxy 方式 实现 apache 支持 WebSocket 请求(JK 使用的 ajp 协议不能支持websocket)
通过 apache 访问 后端 tomcat上的 websocket 服务,需要使用 mod_proxy.so 和 mod_proxy_wstunnel.so两个库文件(在apache2.4 安装目录下已存在,放开httpd.conf文件中的注释即可使用),如果应用中需要通过http协议访问某些页面(如index页面)则需要添加使用 mod_proxy_http.so,如下:

在/usr/local/apache2/conf 中的httpd.conf ,在文件中找到mod_proxy.so 、mod_proxy_wstunnel.so 、mod_proxy_http.so ,把前面的 #号注释去掉

   
      LoadModule proxy_module modules/mod_proxy.so  
      
    LoadModule proxy_http_module modules/mod_proxy_http.so  (可选)
      
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so  
   

Apache 配置 httpd ,中配置 监听端口

#Listen 12.34.56.78:80
Listen 80

#ServerName www.example.com:80
# ServerName localhost:80 //前端访问时,使用IP访问

ServerName www.pwx.com:80 //前端访问时,使用网址访问


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1635895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

由于找不到msvcr80.dll,无法继续执行代码的解决方法

在日常使用电脑进行工作或娱乐时&#xff0c;您可能会遇到一个令人困惑的情况&#xff1a;屏幕上突然弹出一个错误提示&#xff0c;明确指出“msvcr80.dll文件丢失”&#xff0c;这个错误通常会导致某些应用程序无法正常运行。那么&#xff0c;当我们遇到这个问题时&#xff0c…

【Go 语言入门专栏】Go 语言的起源与发展

前言 Go 语言是当下最为流行的编程语言之一&#xff0c;大约在 2020、2021 年左右开始于国内盛行&#xff0c;许多大厂很早就将部分 Java 项目迁移到了 Go&#xff0c;足可看出其在性能方面的优越性。 相信各位都知道&#xff0c;在爬虫业务中&#xff0c;并发是一个关键的需…

Amazon云计算AWS之[4]非关系型数据库服务SimpleDB和DynamoDB

文章目录 简介非关系型VS关系数据库SimpleDB域条目属性值SimpleDB的使用 DynamoDBSimpleDB VS DynamoDB 简介 非关系型数据库服务主要用于存储结构化的数据&#xff0c;并为这些数据提供查找、删除等基本的数据库功能。AWS中提供的非关系型数据库主要包括SimpleDB和DynamoDB …

MySQL基础学习(待整理)

MySQL 简介 学习路径 MySQL 安装 卸载预安装的mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs安装网络工具 yum -y install net-tools yum -y install libaio下载rpm-bundle.tar安装包&#xff0c;并解压&#xff0c;使用rpm进行安装 rpm -ivh \ mysql-communi…

嵌入式全栈开发学习笔记---vim编辑器

目录 进入vim编辑器 Shiftzz退出编辑器 vim的三种模式 命令模式 插入模式 yy复制一行 p粘贴一行 nyy复制多行 dd剪切一行 ndd剪切多行 x删除一个字符 nx删除多个字符 u撤销上一次操作 shiftg从第一行如果快速调到最后一行 gg回到第一行 pagedown & pageup往…

arp欺骗详解

目录 arp攻击原理 arp协议简介 arp攻击原理 arp实验 实验环境 实验步骤 1、使用ipconfig命令查看靶机&#xff08;window10&#xff09;的IP地址为下一步攻击做好准备&#xff0c;这一步是模拟你获取对方IP的过程 2、使用ifconfig查询查看攻击者&#xff08;kali&#x…

Windows如何通过wsl2迅速启动Docker desktop的PHP的Hyperf项目容器?

一、安装WSL 什么是WSL&#xff1f; 官网&#xff1a;什么是WSL&#xff1f; Windows Subsystem for Linux (WSL) 是一个在Windows 10和Windows 11上运行原生Linux二进制可执行文件的兼容性层。 换句话说&#xff0c;WSL让你可以在Windows系统上运行Linux环境&#xff0c;而无需…

【套接字-Socket】学习笔记(更新中)

【套接字-Socket】学习笔记 套接字(Socket)的概念TCP通信流程Socket编程中的细节字节序IP地址转换主机字节序 -> 网络字节序网络字节序 -> 主机字节序 参考资料 套接字(Socket)的概念 TCP/IP网络模型有四层&#xff1a;网络接口层、网络互连层、传输层和应用层。 当应用…

GCB | 陆地生态系统C:N:P化学计量对降水变化的响应

西北农林科技大学水保学院上官周平研究员团队在陆地生态系统C:N:P化学计量对降水变化的响应方面取得新进展&#xff0c;并以“C:N:P stoichiometry of plants, soils, and microorganisms: Response to altered precipitation”为题发表在国际生态环境领域著名期刊Global Chang…

令牌技术详解

1. 问题引出 之前我们讲 Cookie 和 Session 时提到过一个用户登录的场景&#xff1a;当用户登录时&#xff0c;服务器端可以把用户的登录信息存在Session中 并返回给客户端对应的SessionID&#xff0c;客户端会把这个SessionID存在Cookie 中当下次访问该服务器时&#xff0c;…

Ubuntu如何更换 PyTorch 版本

环境&#xff1a; Ubuntu22.04 WLS2 问题描述&#xff1a; Ubuntu如何更换 PyTorch 版本考虑安装一个为 CUDA 11.5 编译的 PyTorch 版本。如何安装旧版本 解决方案&#xff1a; 决定不升级CUDA版本&#xff0c;而是使用一个与CUDA 11.5兼容的PyTorch版本&#xff0c;您可…

Google Test Tutorial

Google Test Tutorial 1. 简介(Introduction) google开发的测试框架 2. 术语(Nomenclature) Test Case&#xff1a;一组相关的测试&#xff0c;GoolgeTest Test Suit: 一些出版物、教科书、包括国际软件测试认证委员会资料使用的术语 GoogleTest在逐渐使用TestSuit代替TestCa…

电商致命问题,抖音小店没有流量怎么办?三个方法解决

哈喽~我是电商月月 昨天有个朋友问我&#xff0c;她在抖音上做网店&#xff0c;图的就是抖音日活量大&#xff0c;有了流量&#xff0c;也就容易出单了&#xff0c;但她遇到了一个尴尬的问题&#xff1a;就是抖音的流量并不是她店铺的流量&#xff0c;她上架的商品没几个人浏览…

「Java开发指南」如何利用MyEclipse启用Spring DSL?(二)

本教程将引导您通过启用Spring DSL和使用Service Spring DSL抽象来引导Spring和Spring代码生成项目&#xff0c;本教程中学习的技能也可以很容易地应用于其他抽象。在本教程中&#xff0c;您将学习如何&#xff1a; 为Spring DSL初始化一个项目创建一个模型包创建一个服务和操…

【深度学习基础(1)】什么是深度学习,深度学习与机器学习的区别、深度学习基本原理,深度学习的进展和未来

文章目录 一. 深度学习概念二. 深度学习与机器学习的区别三. 理解深度学习的工作原理1. 每层的转换进行权重参数化2. 怎么衡量神经网络的质量3. 怎么减小损失值 四. 深度学习已取得的进展五. 人工智能的未来 - 不要太过焦虑跟不上 一. 深度学习概念 先放一张图来理解下人工智能…

不同路径 1 2

class Solution {public int uniquePaths(int m, int n) {int[][] dpnew int[m][n];//记录到每个格子有多少种路径for(int i0;i<m;i) dp[i][0]1;for(int j0;j<n;j) dp[0][j]1;//初始化for(int i1;i<m;i){for(int j1;j<n;j){dp[i][j]dp[i-1][j]dp[i][j-1];}}return …

【IR 论文】HyDE:让 LLM 对 query 做查询改写来改进 Dense Retrieval

论文&#xff1a;Precise Zero-Shot Dense Retrieval without Relevance Labels ⭐⭐⭐⭐ CMU, ACL 2023, arXiv:2212.10496 Code: github.com/texttron/hyde 文章目录 论文速读总结 论文速读 在以往的 dense retrieval 思路中&#xff0c;需要对 input query 做 encode 来得到…

Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步

1. Spring6 当中 Bean 的生命周期的详细解析&#xff1a;有五步&#xff0c;有七步&#xff0c;有十步 文章目录 1. Spring6 当中 Bean 的生命周期的详细解析&#xff1a;有五步&#xff0c;有七步&#xff0c;有十步每博一文案1.1 什么是 Bean 的生命周期1.2 Bean 的生命周期 …

Halcon 检测物体定位点

文章目录 get_domain 返回所有输入图像的定义域作为一个区域add_channels 给区域增加灰度值find_shape_model 发现匹配模板find_shape_models 发现最佳模板示例 get_domain 返回所有输入图像的定义域作为一个区域 Halcon 中的区域 get_domain(Image : Domain : : ) Image : …

【JavaWeb Day 2 - JS 】

JavaWeb Day 2 - JS JS背景故事1. JS 引入方式2. JS 基本语法2.2 变量2.3 数据类型2.4 运算符 3. JS 函数4. JS 对象4.1 Array对象4.2 String对象4.3 JSON对象4.4 BOM对象4.4.1 windows 对象4.4.2 location 对象 4.5 DOM 对象DOM 案例 5. JS 事件监听5.1 JS 事件绑定 及 常见事…