Docker配置Nginx反向代理

文章目录

  • 1.部署微程序到docker中
    • 1.1 dockerfile文件
    • 1.2 依据自定义的dockerfile文件创建docker镜像
    • 1.3 创建容器
    • 1.4 测试
  • 2.在docker中安装Nginx
    • 2.1 安装Nginx镜像
    • 2.2 获取Nginx配置文件并将其同步到宿主电脑指定位置中
      • 安装nginx容器
      • 删除nginx容器
    • 2.3 安装Nginx容器并数据挂载
    • 2.4 测试
  • 3.反向代理
      • 3.1 配置
      • 3.2 测试
  • 参考:

1.部署微程序到docker中

1.1 dockerfile文件

从基础镜像openjdk开始构建,其中openjdk镜像包括Java运行最基本环境以及tomcatdebian系统

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区 防止在查看数据库日志出现时间错乱
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY helloworld-0.0.1-SNAPSHOT.war /app.jar
# 入口 启动容器时将执行 java -jar /app.jar 命令
ENTRYPOINT ["java", "-jar", "/app.jar"]
  • helloworld-0.0.1-SNAPSHOT.war是我的springboot简单微程序打包,主要功能有:

    image-20231107142935894

    image-20231107144317567

1.2 依据自定义的dockerfile文件创建docker镜像

进入目录:

image-20231106235420797

执行指令,这里的.指的是Dockerfile文件的所在目录

docker build -t docker-demo .

image-20231107144449803

1.3 创建容器

docker run -d --name dd -p 8088:8080 docker-demo

image-20231107144522215

1.4 测试

在宿主浏览器中输入:http://localhost:8008/hello

image-20231107152049096

2.在docker中安装Nginx

2.1 安装Nginx镜像

docker pull nginx

image-20231107145100710

2.2 获取Nginx配置文件并将其同步到宿主电脑指定位置中

安装nginx容器

docker run --name nginxdemo  -p 8880:80  -d nginx

image-20231107145516785

将容器nginx配置文件复制到宿主电脑中(这里存放目录为:E:\DockerContainersTest\Nginx

docker cp nginx:/etc/nginx/nginx.conf E:\DockerContainersTest\Nginx   #nginx 默认配置文件夹
docker cp nginx:/etc/nginx/conf.d E:\DockerContainersTest\Nginx    #nginx配置文件夹
docker cp nginx:/usr/share/nginx/html E:\DockerContainersTest\Nginx\html   #nginx的html文件夹

image-20231107150153427

这里最好先提前创建好目录:E:\DockerContainersTest\Nginx

删除nginx容器

docker stop nginxdemo
docker rm nginxdemo

image-20231107150708887

至此就获得了容器中nginx的配置文件并将其保存到宿主电脑指定位置,做这一步主要目的是,方便数据卷的挂载,后期修改配置之类的可以直接在宿主机操作上而不用在容器上。

2.3 安装Nginx容器并数据挂载

docker run --name nginxproxy -d -p 8880:80 -v E:\DockerContainersTest\Nginx\nginx.conf:/etc/nginx/nginx.conf -v E:\DockerContainersTest\Nginx\conf.d:/etc/nginx/conf.d -v E:\DockerContainersTest\Nginx\html:/usr/share/nginx/html -v E:\DockerContainersTest\Nginx\cert:/etc/nginx/cert -v E:\DockerContainersTest\Nginx\logs:/var/log/nginx -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 --privileged=true --restart=always nginx

image-20231107151620978

image-20231107151648317

2.4 测试

直接通过在宿主机修改nginx默认欢迎页网页Nginx\html\index.html

image-20231107152512975

重启容器之后在宿主机上访问

image-20231107153335508

3.反向代理

具体思路:在宿主机通过浏览器访问Nginx端口,Nginx再将请求发送给装有微程序的容器,该容器再将返回数据返回给Nginx,Nginx再返回数据给宿主机。

image-20231107155500696

装有微程序的容器的路由地址为:172.17.0.1,而直接ip地址为:172.17.0.3

我在这里踩过坑,把地址设置为直接ip地址时会出现502路由错误

3.1 配置

修改Nginx代理配置:Nginx\conf.d\default.conf

image-20231107155825232

新添配置:

    location /hello {
        proxy_pass http://172.17.0.1:8008;#反向代理配置,将请求转发到指定服务
    }

这里的172.17.0.1与8008分别为dd容器的路由地址与对外暴露的端口号。

image-20231107160112172

重启Nginx容器使配置生效

3.2 测试

image-20231107160234602

参考:

https://blog.csdn.net/lly576403061/article/details/129452986

https://www.bilibili.com/video/BV13a411q753/?p=182

https://www.bilibili.com/video/BV1HP4118797/?p=12

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【技术支持】DevTools中重写覆盖源js文件

sources面板下,左侧overrides标签下添加一个文件夹,并同意。 勾选Enable Local overrides 然后在page标签下,修改文件后ctrls保存 直接就保存在overrides的文件夹下了 或者文件上右键Override content

中低收入群体能在“双十一”购物狂欢吗?

今天这个“双十一”购物狂欢节,在各大网站的报道的确蜂拥而上,显得很有点儿“狂欢”的景象,可读罢内容却听到哀鸿遍野。 笔者仅只接力“腾迅新闻”和“今日头条”几小时前分别发表的《 双11十五年,价格战还能打多久?》…

面向萌新的技术博客入门指南

Python之禅 在Python的解释器中隐藏一个彩蛋,输入import this就会返回19条Python之禅,具体如下: import this The Zen of Python, by Tim Peters Python之禅 ,by Tim Peters Beautiful is better than ugly. 优美好于丑陋&…

FTP、NFS、SAMBA系统服务一

一、rsync托管xinetd 1、为什么要进行服务托管 独立服务:独立启动脚本 ssh ftp nfs dns ... 依赖服务: 没有独立的启动脚本 rsync telnet 依赖xinetd服务(独立服务) 2、如何将rsync托管给xinetd服务去管理? 第一步&#xff1…

飞机社交软件开发:重新定义社交媒体的空中交互体验

【导语】 随着互联网技术的快速发展,社交媒体平台的界限也逐渐模糊。飞机社交软件应运而生,打破传统的地面社交模式,为空中旅行的旅客提供全新的交流平台。本文将从市场需求、技术实现、用户体验和未来发展等方面,深入探讨飞机社交…

推荐几个宝藏app

立冬后,真尼玛冷,哎!记得多穿点衣服呀,老铁们!! GKD 去广告神器 下载网址:https://github.com/gkd-kit/gkd 特性: 它不仅支持跳过开屏广告,还支持跳过弹窗广告等&#xf…

【启扬方案】启扬安卓屏一体机在医疗自助服务终端上的应用解决方案

为了解决传统医疗模式下的“看病难、看病慢”等问题,提高医疗品质、效率与效益,自助服务业务的推广成为智慧医疗领域实现信息化建设、高效运作的重要环节。 医疗自助服务终端是智慧医疗应用场景中最常见的智能设备之一,它通过与医院信息化系统…

CentOS7安装Xrdp以便Windows远程桌面连接

Centos7已经安装了桌面环境,想要Windows系统远程连接到桌面。 1,which vncserver 如果返回no vncserver,则需要安装 2,yum -y install tigervnc* 3,安装Xrdp yum install epel* -y yum --enablerepoepel -y install xrdp 4…

LoadRunner使用动态链接库技术

什么是动态库? 动态库一般又叫动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行…

SQL必知会(二)-SQL查询篇(4)-高级过滤

第5课、高级过滤 组合 WHERE 子句 AND OR:与条件、或条件 多个 WHERE 子句有两种使用方式:AND 子句 或 OR 子句。 1)AND 操作符 AND 相当于编程语言中的与条件。 需求:如果某个产品由供应商 DLL01 制造,但价格不高…

MySQL时间类型注意事项

MySQL常见的时间类型有YEAR、DATE、TIME、DATETIME、TIMESTAMP,绝大多数业务都是精确到秒的,所以通常用后两种。并且MySQL5.6以后后两种支持精度到毫秒(最多小数点后6位) DATETIME占8字节,不论要不要毫秒 TIMESTAMP占4…

抖音短视频账号矩阵系统、短视频矩阵源码+无人直播源码开发可打包

抖音短视频账号矩阵系统、短视频矩阵源码无人直播源码开发可打包 矩阵系统源码主要有三种框架:Spring、Struts和Hibernate。Spring框架是一个全栈式的Java应用程序开发框架,提供了IOC容器、AOP、事务管理等功能。Struts框架是一个MVC架构的Web应用程序框…

数据库数据恢复—无备份,未开启binlog的MySQL误删除怎么恢复数据

数据库数据恢复环境: 一台本地windows sever操作系统服务器,服务器上部署mysql数据库单实例,引擎类型为innodb,表内数据存储所使用表空间类型为独立表空间。无数据库备份,未开启binlog。 数据库故障&分析&#xf…

计算机服务器中了mallox勒索病毒怎么解决,勒索病毒解密,数据恢复

企业的计算机服务器为企业的数据存储提供了极大便利,也让企业的生产运行效率得到了极大提升,但是网络数据安全威胁随着技术的不断发展也不断增加。近期,云天数据恢复中心接到很多企业的求助,企业的计算机服务器遭到了mallox勒索病…

Easyui DataGrid combobox联动下拉框内容

发票信息下拉框联动,更具不同的发票类型,显示不同的税率 专票 普票 下拉框选择事件 function onSelectType(rec){//选中值if (rec2){//普通发票对应税率pmsPlanList.pmsInvoiceTaxRatepmsPlanList.pmsInvoiceTaxRateT}else {//专用发票对应税率pmsPlan…

SQL必知会(二)-SQL查询篇(6)-创建计算字段

第7课、创建计算字段 1)拼接字段 需求:检索Vendors 表包含供应商的名称和地址的所有信息,返回结果需要把地址括号起来。 SELECT vend_name ( vend_country ) FROM Vendors ORDER BY vend_name;-- 以下例子与上面例子相同工作 SELECT ve…

YOLOv8-Seg改进:分割注意力系列篇 | 高效的通道先验卷积注意力(CPCA) | 中科院 2023.6

🚀🚀🚀本文改进:高效的通道先验卷积注意力(CPCA)方法,支持注意力权重在通道和空间维度上的动态分布; 🚀🚀🚀CPCA 小目标分割检测&复杂场景首选,实现涨点 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新…

SmargGBD(GB28181设备接入模块)如何对接wvp-gb28181-pro

技术背景 我们在对接SmartGBD(GB28181设备接入模块)的时候,除了常规的海康大华宇视等国标平台外,有些公司会选择wvp-gb28181-pro。 众所周知,WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频…

【Docker】iptables命令的使用

iptables是一个非常强大的Linux防火墙工具,你可以使用它来控制网络流量的访问和转发。 前面已经学习了iptables的基本原理,四表五链的基本概念,也已经安装好了iptables,下面我们主要学习iptables命令的基本使用。 可以使用iptable…

苍穹外卖-day07

苍穹外卖-day07 课程内容 缓存菜品缓存套餐添加购物车查看购物车清空购物车 功能实现:缓存商品、购物车 效果图: 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据…