Nginx学习研究-Docker安装Nginx 实现反向代理

简介: Nginx学习研究-Docker安装Nginx 实现反向代理

Docker安装Nginx 实现反向代理

为了安全考虑,我们一般会设置反向代理,用来屏蔽应用程序真实的IP和端口号。在Linux系统上最常用的反向代理就是Nginx。

一、 Nginx 安装部署

1、下载 nginx 镜像

docker pull nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z75d58tg-1627219716343)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210725102119333.png)]

2、查看 docker 是否成功安装了 nginx

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMayukDu-1627219716345)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210725104406812.png)]

在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。

3、创建并启动nginx容器

docker run --name nginx -p 4030:80 -d nginx

上面命令的解释如下:

  1. –name:设置容器的名称。
  2. -d:表示在后台运行容器。
  3. -p:指定端口映射。前面端口 4030是宿主机的端口,后面的端口是Nginx容器内部的端口。
  4. nginx:表示根据nginx镜像运行容器。

4、安装成功测试

在浏览器里面访问:

出现上面的截图,就说明Nginx容器运行成功。

二、运行应用程序

1、构建应用程序容器

我们在宿主机上面创建一个demo目录,然后在创建一个ReverseProxy目录,把发布后的项目上传到ReverseProxy目录下面。

然后使用下面的命令创建镜像

docker build -t reverseproxy .

命令的解释:

-t:表示给镜像起一个名字

上面命令最后英文状态的"."不能省略,表示在当前目录中查找Dockerfile文件。

2、运行应用容器

创建完镜像以后运行容器

docker run --name=reverseproxy -d -p 9020:80 reverseproxy

这里使用宿主机的9020端口映射到容器内的80端口。

从上图中我们可以看到容器已经在运行了,我们在浏览器里面访问,验证容器是否运行成功。

三、设置反向代理

在上面的步骤中,我们分别运行了nginx容器和应用程序的容器,并且都可以在浏览器里面访问,下面我们来设置反向代理。

反向代理实现如下的效果:在浏览器里面访问4030端口的时候跳转到9020端口,浏览器显示应用程序。

配置反向代理,我们需要修改Nginx的配置文件。在Nginx的配置文件里面设置反向代理的HTTP地址。

要修改Nginx的配置文件,首先需要进入Nginx容器里面,使用下面的命令进入容器里面。

docker exec -it nginx /bin/bash

上面命令的解释说明:

  1. -it:表示分配一个伪终端。
  2. nginx:表示容器的名称,这里也可以使用容器ID。
  3. /bin/bash:表示对容器执行bash操作。

执行过程如图所示

我们使用ls查看,发现里面其实就是一个Linux操作系统

Nginx默认会安装在etc目录下面

进入nginx目录

我们看到了nginx.conf配置文件,需要在这个配置文件里面设置反向代理。我们使用vim命令编辑nginx.conf文件:

我们看红框里面的内容,表示使用的是conf.d目录下面的conf文件进行配置。我们进入conf.d目录下面,然后编辑default.conf文件。

要配置反向代理,我们首先需要知道要代理的程序的IP地址,所以在修改配置之前,我们首先需要获取reverseproxy容器的IP地址。

docker inspect 容器名称

我们会看到很多信息,这里只需要关注最后的网络配置信息即可

获取到了容器的IP地址以后,我们就可以配置反向代理了。default.conf文件

因为容器是内部访问,所以设置的端口是80,而不是运行容器时设置的9020端口。 修改完成之后保存退出。

我们使用命令检查修改后的配置文件:

nginx -t

如果修改的配置文件没有错误,则退出容器。

如果修改的配置文件有错误,要改正错误,然后退出容器。

由于我们修改了配置,所以需要重新运行容器,以便配置生效。

docker stop nginx 
docker start nginx

然后我们在浏览器里面访问4030端口

可以看到页面被代理到了9020端口显示的内容。

修改了配置,所以需要重新运行容器,以便配置生效。

docker stop nginx
docker start nginx

然后我们在浏览器里面访问4030端口

可以看到页面被代理到了9020端口显示的内容

至此就实现了反向代理。


相关文章
|
6月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2457 4
|
9月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
6月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
292 5
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
717 6
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
1334 152
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
674 61
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
861 60
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
878 60
|
前端开发 应用服务中间件 nginx
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
1351 25