🎉🎉欢迎来到我的CSDN主页!🎉🎉
🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚
🌟推荐给大家我的博客专栏《【Docker】安装nginx》。🎯🎯
🎁如果感觉还不错的话请给我关注加三连吧!🎁
目录
一,nginx介绍
二,安装nginx
三,Docker集成tomcat,jdk,nginx
一,nginx介绍
【反向代理和负载均衡器】
Nginx(发音为"engine x")是一款高性能的开源Web服务器,也可以用作反向代理、负载均衡器和HTTP缓存。
Nginx 的主要特点包括:
高性能:Nginx 可以处理大量的并发连接,而且在高负载情况下表现良好。
可扩展性:Nginx 可以作为反向代理和负载均衡器,可以轻松地扩展到多台服务器上。
低内存消耗:Nginx 采用事件驱动的模型,不需要为每个连接创建一个线程或进程,因此内存消耗比传统的 Web 服务器更低。
热部署:Nginx 支持热部署,可以在运行时重新加载配置文件和模块,无需重启服务器。
可靠性: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博客