【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博客

相关推荐
Hommy8823 分钟前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
一叶知秋yyds1 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
斯普信云原生组2 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪2 小时前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人2 小时前
docker compose部署kafka集群搭建
docker·容器·kafka
safestar20123 小时前
ES批量写入性能调优:BulkProcessor 参数详解与实战案例
java·大数据·运维·jenkins
来一颗砂糖橘3 小时前
负载均衡的多维深度解析
运维·负载均衡
楠奕3 小时前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
GCTTTTTT4 小时前
远程服务器走本地代理
运维·服务器
剑锋所指,所向披靡!4 小时前
Linux常用指令(2)
linux·运维·服务器