【docker安装nginx】

【了解nginx】

Nginx 是一个高性能的 Web 服务器 和 反向代理服务器,也可以用作负载均衡器、HTTP 缓存和邮件代理。它由俄罗斯工程师伊戈尔·赛索耶夫开发,2004年发布,以占用内存少、处理并发能力强而闻名。

相当于一个万能的门卫:

        · 当你访问一个网站时,浏览器请求先到达nginx、它决定是直接返回网页文件(HTML/图片),还是请求转发给后端的应用程序(比如java、python、PHP)

        · 若很多用户同时访问,Nginx可以把请求分摊给多台后段服务器(负载均衡),避免某一台累垮

        · 他还能缓存经常请求的内容,加快响应速度

作用:

1️⃣ 静态文件服务器
直接提供 HTML、CSS、JavaScript、图片等文件。比如把前端项目放在 Nginx 后面,用户访问时不需要动态生成内容,效率极高。

2️⃣ 反向代理
用户请求到达 Nginx 后,Nginx 将请求转发给内部的服务(如 Tomcat、Node.js、Django 等)。对外暴露的是 Nginx 的地址,隐藏了后端真实服务,增加安全性。

3️⃣ 负载均衡
当有多个后端服务实例时,Nginx 可以按策略(轮询、最少连接、IP哈希等)把请求分发到不同的实例,提高系统整体处理能力。

4️⃣ 缓存加速
Nginx 可以缓存后端返回的响应,下次相同请求直接返回缓存内容,减轻后端压力,提升响应速度。

5️⃣ SSL/TLS 终端
Nginx 可以处理 HTTPS 加密,与客户端建立安全连接,再以 HTTP 方式与后端通信,简化后端配置。

与docker的关系:

        ·在docker中,经常运行nginx容器来;作为Web服务器测试前端页面;

        · 作为反向代理把请求转发到其他容器(如docker run -p 80:80 nginx只是最基础的用法)

        · 配合Let‘s Encrypt 做 HTTPS 终端

对比apache占据内存小,处理高并发能力强,配置相对简单。

【nginx安装步骤】

下载镜像pull

docker pull nginx         #下载nginx;

docker images             #查看是否启动

运行测试:可以通过公网的3344可以访问到docker里面的80端口

                ⚠️简单来说就是:后台启动一个叫nginx01的Nginx容器,并把你自己电脑(宿主机)的端口映射到容器的80端口,这样访问自己电脑的3344端口就能看到容器里的Nginx页面。

                对外(公网)你访问3344端口,对内(容器)实际时80端口在工作;

docker run -d --name nginx01 -p 3344:80 nginx        #宿主机端口映射到80端口

⚠️:-p表示暴露端口;宿主机端口:容器那边端口

        --name [名字]        给这个容器取名叫nginx01

这里可以验证一下docker端口映射是否成功

curl localhost:3344        #验证

此时已经成功了!!

这时在浏览器中打开http://localhost:3344同样可以看到欢迎页面

【docker安装tomcat】

首先可以去dockerhub上搜索一下,#如果不想使用最新的可以去看一下版本号;

【tomcat安装步骤】

docker pull tomcat:9.0-jdk11        #下载tomcat        或者可以直接

docker pull tomcat               #这个命令很快就可以搜索到,下载速度快\

docker images                     #查看正在运行的容器

⚠️:在下载tomcat的时候一定要加一个jdk的版本

 docker run -d -p 3355:8080 --name tomcat01 tomcat        #内部的3355给外部的8080做一个映射,并且给容器去一个新名字叫tomcat01

查看公网:

⚠️:这时需要把容器中的webapps.dist中的文件复制下载到webapps中

⚠️!原因是:当你访问 http://虚拟机IP:3355 时,Tomcat 默认会在 webapps 目录下寻找一个叫 ROOT 的应用。如果找不到,就会返回 HTTP 404 状态码(未找到)。而我们下载的tomcat镜像为了精简体积,默认吧webapps目录清空了,而把默认的欢迎页面和示例应用放在了webapps.dist目录里。所以需要手动吧webapp.dist里的内容复制到webapps中

【复制文件】

docker exec -it tomcat01 /bin/bash        #进入romcat01容器中

ls        #查看当前目录下的文件

cd ./webapps        #回到webapps目录中

ls         #查看webapps文件中,什么也没有;确认404原因

cp -r webapps.dist/* webapps        #复制webapps.dist中的文件,放在webapps中

cd /usr/local/tomcat/webapps        #回到webapps目录

ls        #可以看到已经存在

回到公网查看,页面正常显示

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐