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

相关推荐
鸿蒙布道师15 分钟前
宇树科技安全漏洞揭示智能机器人行业隐忧
运维·网络·科技·安全·机器学习·计算机视觉·机器人
带鱼吃猫20 分钟前
Linux系统:文件系统前言,详解CHS&LBA地址
linux·运维·服务器
默默提升实验室37 分钟前
Linux 系统如何挂载U盘
linux·运维·服务器
Lw老王要学习1 小时前
Linux架构篇、第五章git2.49.0部署与使用
linux·运维·git·云计算·it
showmethetime1 小时前
搭建高可用及负载均衡的Redis
运维·redis·负载均衡
上天_去_做颗惺星 EVE_BLUE2 小时前
Docker入门教程:常用命令与基础概念
linux·运维·macos·docker·容器·bash
alden_ygq3 小时前
Kubernetes容器运行时:Containerd vs Docker
docker·容器·kubernetes
努力搬砖 ing3 小时前
Docker疑难杂症解决指南
docker·容器·eureka
林九生3 小时前
【Docker】Docker环境下快速部署Ollama与Open-WebUI:详细指南
java·docker·eureka
Grassto3 小时前
dockerfile: PaddleOCR hubserving api 服务
docker·ocr·paddleocr