【Docker】在centos中安装nginx

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《【Docker】安装nginx》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁

目录

一,nginx介绍

二,安装nginx

三,Docker集成tomcat,jdk,nginx


一,nginx介绍

【反向代理和负载均衡器】

Nginx(发音为"engine x")是一款高性能的开源Web服务器,也可以用作反向代理、负载均衡器和HTTP缓存。

Nginx 的主要特点包括:

  1. 高性能:Nginx 可以处理大量的并发连接,而且在高负载情况下表现良好。

  2. 可扩展性:Nginx 可以作为反向代理和负载均衡器,可以轻松地扩展到多台服务器上。

  3. 低内存消耗:Nginx 采用事件驱动的模型,不需要为每个连接创建一个线程或进程,因此内存消耗比传统的 Web 服务器更低。

  4. 热部署:Nginx 支持热部署,可以在运行时重新加载配置文件和模块,无需重启服务器。

  5. 可靠性:Nginx 可以处理各种异常情况,如网络故障、后端服务器故障等。

二,安装nginx

复制代码
docker pull nginx
复制代码
docker run -itd --name nginx -p 80:80 nginx:latest

访问:404是因为容器中没有内容

输入ip访问:

这里我们要修改nginx的配置文件:

在soft下面创建:

复制代码
mkdir -p /soft/nginx/conf.d

default.conf

复制代码
#服务器的集群
upstream tomcatList {  
    server 172.20.0.101:8080 weight=1; 
    server 172.20.0.102:8080 weight=1; 
    server 172.20.0.103:8080 weight=1; 
} 
    
server {

    listen  80;
    server_name  www.zkingedu.com;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    location ~^/api/ {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass  http://tomcatList;
        proxy_redirect default;
    }

}

将html资源放入:

这时候没有后台数据:

这里访问没有数据有两个原因:

1.mysql连接有问题

2.没有设置域名

C:\Windows\System32\drivers\etc

三,Docker集成mysql,jdk,nginx(部署一个前后分离项目)

查看安装的镜像:

安装mysql镜像

复制代码
docker pull mysql/mysql-server

在root中创建一个存放MySQL的文件夹:mode

mysql有conf存放配置文件,data存放数据的。

复制代码
mkdir -p /mode/mysql/{conf,data}  

构建一个mysql,使用目录挂载的方式将外面的数据库挂载到容器中去

复制代码
docker run \
--name m1 \
-v /mode/mysql/conf/my.cnf:/etc/my.cnf \
-v /mode/mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
--net mynet \
--ip 172.20.0.200 \
-d mysql/mysql-server:5.7

进入mysql给root授予权限:

复制代码
docker exec -it m1 bash

m1 是需要进入哪个数据库容器

复制代码
grant all on *.* to root@'%' identified by '123456';

报错:查看报错信息:

复制代码
docker logs -f s1

创建数据库:

复制代码
create database shop;  

使用创建号的数据库:

复制代码
use shop;

执行:

复制代码
source  /var/lib/mysql/book.sql;
复制代码
show tables;

退出:

复制代码
exit;

一定要重启:

复制代码
docker restart m1

ip:8080/book/list 访问查看数据

编辑并且创建Dockerfile文件,用于创建镜像的配置命令:

复制代码
vim Dockerfile
复制代码
#1.指定基础镜像,并且必须是第一条指令
FROM  openjdk
#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR  /project
#4.将文件从Docker主机将jdk及jar包复制到Docker镜像中
COPY  spring.jar /project
#5.容器启动时,需要执行的命令(执行jar包)
CMD java -jar spring.jar --mysql.addr=m1

i 进行编辑 ,编辑完成按Esc,并且输入:wq进行保存并且退出。

复制代码
docker  build  -t spring:v1 .

删除镜像:

复制代码
docker rmi spring:v1

这里要切换到我们spring.jar的所在目录:不然会出现一个找不到的报错

创建3个容器:这里注意自定义网络,ip要遵循自定义网络规则。为负载均衡做准备。

复制代码
docker run -itd --name s1 --net mynet -p 8080:8080 --ip 172.20.0.101 spring:v1
docker run -itd --name s2 --net mynet --ip 172.20.0.102 spring:v1
docker run -itd --name s3 --net mynet --ip 172.20.0.103 spring:v1

将上一个nginx删掉:

docker rm -f nginx

重新布置一个nginx容器

复制代码
 docker run -itd --name n1 -v /soft/nginx/conf.d:/etc/nginx/conf.d -v /soft/nginx/html:/etc/nginx/html/ -p 80:80 --net mynet --ip 172.20.0.104 nginx

访问查看:刷新部署成功

域名已经代理掉了:

认真写博客的人,见一个少一个🤩🤩🤩🤩🤩🤩🤩🤩🤩

复制代码
               👍 点赞支持,⭐️ 收藏学习,❤️ 关注不迷路~
                        💬 如有错漏请不吝指正~

平顶山大师-CSDN博客 平顶山大师-CSDN博客

相关推荐
辉的技术笔记38 分钟前
Dify 自部署为什么跑不动?6 层瓶颈诊断法教你定位
docker
SkyWalking中文站21 小时前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
程序员老赵1 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位1 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站2 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站3 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ3 天前
Kubeneters HA Cluster部署
运维
lichenyang4533 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker