【问题总结】基于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.hqwc.cn/news/29433.html

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

相关文章

T5模型: Transfer Text-to-Text Transformer(谷歌)

🔥 T5由谷歌发表于2019,《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》,最终版本发布在:JMLR。 一句话总结T5: 大一统模型,seq2seq形式完成各类nlp任务,大数据集…

易查分怎么上传成绩?

当使用易查分制作查询系统时,许多老师可能对于如何上传成绩感到困惑。有时候,导入成绩到易查分系统后,信息可能无法完全显示,而且也很难找到错误的原因。因此,今天我将与老师们分享一下易查分上传成绩的方法。这个技巧…

【PDFBox】PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档

这篇文章,主要介绍PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档。 目录 一、PDFBox操作文本 1.1、读取所有页面文本内容 1.2、读取指定页面文本内容 1.3、写入文本内容 1.4、替换文本内容 (1&#xf…

SpringCloud系列(十六)[分布式搜索引擎篇] - DSL 查询及相关性算分的学习 (部分)

在SpringCloud系列(十五)[分布式搜索引擎篇] - 结合实际应用场景学习并使用 RestClient 客户端 API这篇文章中我们已经对 RestClient 有了初步的了解, 并且已经将一些数据进行了存储, 但是这并不是我们学习 ElasticSearch 的目的, ElasticSearch 最擅长的…

C#鼠标拖拽,移动图片实例

最近工作需要做一个鼠标可以拖拽移动图片的功能。 写了几个基本功能,勉强能用。这里记录一下。欢迎大神补充。 这个就是完成的功能。 下边的绿色是一个pictureBox,白色框也是一个pictureBox,他们二者是子父级关系。 绿色是父级&#xff0c…

Java 常用的重构技巧指南 v1.0

前段时间,leader 在 review 代码的时候发现了代码中 存在的一部分的问题,导致 代码的复杂度太高了,包括大部分的sql 都是属于慢sql ,还是在建立了索引的情况下 , 代码的流程过于臃肿,而且本人编码的习惯,习…

ubuntu打开usb摄像头

文章目录 前言一、识别 usb 摄像头二、安装应用程序显示摄像头捕捉到的视频1、使用应用程序茄子(cheese)2、运行 cheese 捕捉视频 总结 前言 记录一下解决在 Linux 下打开 usb 摄像头界面黑屏的问题。 一、识别 usb 摄像头 1、保持在 ubuntu 界面&…

(四)「消息队列」之 RabbitMQ 路由(使用 .NET 客户端)

0、引言 先决条件 本教程假设 RabbitMQ 已安装并且正在 本地主机 的标准端口(5672)上运行。如果您使用了不同的主机、端口或凭证,则要求调整连接设置。 获取帮助 如果您在阅读本教程时遇到问题,可以通过邮件列表或者 RabbitMQ 社区…

ylb-项目简介

1、各模块服务功能 注&#xff1a;其部分实体类、接口、mapper文件由MyBatis逆向工程生成。 2、Maven管理&#xff08;多模块&#xff0c;继承和聚合&#xff09; 2.1 parent模块 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"…

CSS——基础知识及使用

CSS 是什么 CSS是层叠样式表 (Cascading Style Sheets)的简写.CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离。 基本语法规范 选择器 { 一条/N条声明 } 选择器决定针对谁修改 (找谁)声明决定修改啥. (干啥)声明的…

OpenCv之Canny

目录 一、自适应阈值 二、边缘检测Canny 一、自适应阈值 引入前提:在前面的部分我们使用是全局闻值&#xff0c;整幅图像采用同一个数作为闻值。当时这种方法并不适应与所有情况&#xff0c;尤其是当同一幅图像上的不同部分的具有不同亮度时。这种情况下我们需要采用自适应闻…

记录--再也不用手动改package.json的版本号

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 本文的起因是有在代码仓库发包后&#xff0c;同事问我“为什么package.json 里的版本还是原来的&#xff0c;有没有更新&#xff1f;”&#xff0c;这个时候我意识到&#xff0c;我们完全没有必要在每…