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

相关推荐
Youkiup3 分钟前
【linux 常用命令】
linux·运维·服务器
qq_297504617 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i12 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
weixin_4373982120 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~22 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
年薪丰厚29 分钟前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
小林熬夜学编程29 分钟前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
zhangj112530 分钟前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes
岁月变迁呀32 分钟前
kubeadm搭建k8s集群
云原生·容器·kubernetes
墨水\\32 分钟前
二进制部署k8s
云原生·容器·kubernetes