【问题总结】基于docker-compose实现nginx转发redis

目录:

文章目录

    • 需求简介:
      • Q1: nginx的http模块和http模块有什么不同
      • Q2: 可以都使用stream模块进行配置吗
    • Docker环境下如何转发
      • 1 修改docker-compose
      • 2 修改nginx.conf
      • 3 测试连接

需求简介:

需要在192.168.3.11的ngnix上,转发192.168.3.10:16379端口的redis

原生nginx配置如下即可实现:

stream {server {listen 16379;proxy_pass 192.168.3.10:16379;}
}

在配置nginx的stream块时候,需要了解前置的知识——

Q1: nginx的http模块和http模块有什么不同

nginx有两个主要模块:http模块和stream模块。

  • http模块用于处理HTTP流量,包括HTTP请求和响应。它支持代理、负载均衡、缓存、SSL和访问控制等功能。

  • stream模块用于处理非HTTP流量,例如TCP和UDP流量。它支持TCP和UDP代理,以及SSL和SNI(服务器名称指示)等功能。

因此,http模块和stream模块主要用于不同类型的流量处理。

(显然这里我们需要的像数据库,redis等都是非HTTP请求)

Q2: 可以都使用stream模块进行配置吗

不可以。虽然HTTP请求本质上是TCP流量,HTTP使用TCP作为其传输层协议。stream模块只能用于处理非HTTP流量,例如TCP和UDP流量。如果您需要处理HTTP流量,您需要使用http模块。因此,您需要根据您的应用程序的类型和需求选择适当的模块进行配置

Docker环境下如何转发

现在实际都是用docker(compose)部署,所以这里就记录一下docker部署的nginx该如何配置。

1 修改docker-compose

docker是支持多开端口的,使用以下格式指定多个端口:

ports:- "80:80"- "443:443"

此示例将容器的80和443端口映射到主机的80和443端口。您可以根据需要添加或删除此列表中的端口。

那么实际修改后的docker-compose如下:

image-20230718101946921

2 修改nginx.conf

这里涉及到前面提到的stream块的配置。之前自己踩过坑,错将stream块配在http块内,导致失败。

正确的配置位置如下:

image-20230718102243185

3 测试连接

使用redis-cli或者rdm连接测试。

image-20230718102336726

提示连接成功,即可

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

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

相关文章

前端 | ( 十)HTML5简介及相关新增属性 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 系列笔记: 【HTML4】(一)前端简介【HTML4】(二)各种各样的常用标签【HTML4】(三)表单及HTML4收尾…

MyBatis学习笔记——4

MyBatis学习笔记——4 一、MyBatis的高级映射及延迟加载1.1、多对一1.1.1、第一种方式:级联属性映射1.1.2、第二种方式:association1.1.3、第三种方式:分步查询 1.2、一对多1.2.1、第一种方式:collection1.2.1、第二种方式&#x…

Web后端开发总结

后端web开发大致流程 和对应的核心技术 对应技术的来源 springMVC可以理解为spring框架中的web开发框架 springMVCSpringMybatis就是我们熟知的ssm框架了

golang单元测试及mock总结

文章目录 一、前言1、单测的定位2、vscode中生成单测 二、构造测试case的注意事项1、项目初始化2、构造空interface{}3、构造结构体的time.Time类型4、构造json格式的test case 三、运行单测文件1、整体运行单测文件2、运行单个单测文件报错(1)command-l…

基于sklearn计算precision、recall等分类指标

文章目录 一、分类指标函数1.1 precision_score函数1.2 recall_score函数1.3 accuracy_score函数1.4 f1_score函数1.5 precision_recall_curve函数1.6 roc_curve函数1.7 roc_auc_score函数1.8 classification_report函数 二、二分类任务三、多分类任务3.1 Macro Average&#x…

怎样原生制作lis的CentOS容器镜像

本文介绍从一个空白的裸机CentOS自己构造检验允许的docker环境。来达到运行环境的高度定制,而不是只能依赖VS或者微软或者数据库厂商提供的镜像当做基础制作。更容易理解基础原理。最终输出产物为lisnew.tar,一个开箱即用的lis运行环境。 制作的整个过程…

os.environ[“CUDA_VISIBLE_DEVICES“]学习总结

今天发现一个很有意思的东西 import torch import os # Specify the GPU device os.environ["CUDA_VISIBLE_DEVICES"] "1" print(torch.cuda.is_available())但是如果修改下面的设置后,结果就变成了 import torch import os # Specify the…

Spring MVC -- 返回数据(静态页面+非静态页面+JSON对象+请求转发与请求重定向)

目录 1. 返回静态页面 2. 返回非静态页面 2.1 ResponseBody 返回页面内容 2.2 RestController ResponseBody Controller 2.3 示例:实现简单计算的功能 3. 返回JSON对象 3.1 实现登录功能,返回 JSON 对象 4. 请求转发(forward)或请求重定向(redirect) 4.1 请…

Rust之泛型、特性和生命期(四):验证有生存期的引用

开发环境 Windows 10Rust 1.71.0 VS Code 1.80.1 项目工程 这里继续沿用上次工程rust-demo 验证具有生存期的引用 生存期是我们已经在使用的另一种泛型。生存期不是确保一个类型具有我们想要的行为,而是确保引用在我们需要时有效。 我们在第4章“引用和借用”一…

<Java物联网> 从主动到被动:Java中的BACnet设备属性查询

目录 BACnet 使用软件 资源 模拟器 使用Java主动查 引入maven 创建网络对象 获取远程设备 获取设备属性 使用DeviceEventAdapter订阅 初始化本地BACnet设备和IP网络配置: 启动本地设备和添加监听器: 搜寻远程设备: 发送订阅COV报…

python try/except/finally

稍微总结一下&#xff0c;否则总是忘。 x abc def fetcher(obj, index): return obj[index] fetcher(x, 4) 输出&#xff1a; File "test.py", line 6, in <module> fetcher(x, 4) File "test.py", line 4, in fetcher return obj[index] …

zookeeper的应用

Zookeeper的配置文件解析: Zookeeper内部原理: 选举机制 半数机制:在集群环境中半数以上的机器存活,这个集群可用,所以在设计Zookeeper集群系统时&#xff0c;通常会选择 奇数台服务器来搭建Zookeeper的集群 虽然在配置文件中并没有指定Master和Slave。但是&#xff0c;Zookeep…

第三十二章:MySQL事务日志

第三十二章&#xff1a;MySQL事务日志 32.1&#xff1a;概述 事物有4种特性&#xff1a;原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢&#xff1f; 事物的隔离性有锁机制实现。而事物的原子性、一致性和持久性由事物的redo日志和undo日志来…

Redis入门基础命令

文章目录 一、redis1.1 redis概述1.2 redis安装 二、string2.1 基础命令2.2 存储结构2.3 应用 三、list3.1 基础命令3.2 应用 四、hash4.1 基础命令4.2 存储结构4.3 应用 五、set5.1 基础命令5.2 存储结构5.3 应用 六、zset6.1 基础命令6.2 存储结构6.3 应用 一、redis 1.1 re…

【C#】MVC页面常见的重定向方式和场景

本篇文章主要简单讲讲&#xff0c;C# MVC 页面常见跳转或者重定向的方式和场景。 在实际项目开发中&#xff0c;在一些特定场景肯定会用到重定向&#xff0c;比如&#xff1a;不同角色跳转到不同视图地址 目录 一、种常见重定向方式1.1、RedirectToAction1.2、RedirectToRoute1…

Java中的队列

队列的理解 队列&#xff08;Queue&#xff09;是一种特殊的线性表&#xff0c;它只允许在表的前端进行删除操作&#xff0c;而在表的后端进行插入操作。 LinkedList类实现了Queue接口&#xff0c;因此我们可以把LinkedList当成Queue来用。 常用方法 实例 import java.util…

Stable Diffusion服务环境搭建(远程服务版)

Stable Diffusion服务环境搭建&#xff08;远程服务版&#xff09; Stable Diffusion是什么 Stable diffusion是一个基于Latent Diffusion Models&#xff08;潜在扩散模型&#xff0c;LDMs&#xff09;的文图生成&#xff08;text-to-image&#xff09;模型。具体来说&#…

C# IO FileStream流(一)使用整理

一、C# IO 文件流&#xff0c;常用操作整理 来自其他开发者的整理&#xff1a; 文件操作常用相关类 1)Directory //操作目录&#xff08;文件夹&#xff09;&#xff0c;静态类。2)Path//静态类&#xff0c;对文件或目录的路径进行操作&#xff08;很方便&#xff09;【字符…

[深度学习实战]基于PyTorch的深度学习实战(中)[线性回归、numpy矩阵的保存、模型的保存和导入、卷积层、池化层]

目录 一、前言二、线性回归2.1 训练代码2.2 绘图部分代码2.3 numpy 数组的保存和导入代码2.4 完整代码 三、numpy矩阵的保存四、模型的保存和导入4.1 保存模型4.2 导入模型 五、卷积层5.1 Conv2d5.1.1 函数定义5.1.2 参数说明5.1.3 测试代码5.1.4 最终结果 5.2 Conv1d5.2.1 函数…

element ui 上传控件携带参数到后端

1.携带固定参数&#xff1a; 2.携带不固定参数&#xff1a; <el-row> <el-col :span"24"> <el-upload :multiple"false" :show-file-list"false" :on-success"f_h…