基于Docker的Nginx部署教程_nginx使用docker部署应用

基于Docker的Nginx部署教程

本教程基于Docker部署Nginx,演示部署Nginx的版本为1.22.0,操作系统为CentOS7,其部署方式包括以下两种方式:

  1. 单机部署
  2. 自定义配置模块部署

什么是Nginx

Nginx (engine x) 是一款高性能、轻量级、稳定性高、并发性好的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 广泛应用于Http服务、负载均衡、反向代理等实用场景。其配置简单、配置语法简洁,社区活跃,学习成本低等优点,使其成为最受欢迎的的服务器应用之一。

部署前的注意

在进行部署之前,最好对服务器的防火墙进行相关处理,命令如下,请按需使用

# 开放8888端口,端口自定义,我这里以8888为例
firewall-cmd --zone=public --add-port=8888/tcp --permanent
#关闭8888端口 
firewall-cmd --zone=public --remove-port=8888/tcp --permanent
# 配置立即生效
firewall-cmd --reload   

# 查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

firewall-cmd --zone=public --list-all

# 关闭防火墙 如果不想管控端口,直接关闭系统防火墙,啥都能通,但安全性不强,不建议。
systemctl stop firewalld.service
systemctl start firewalld.service
systemctl restart firewalld.service
# 查看防火墙状态
firewall-cmd --state

# 查看监听的端口
netstat -lnpt

# 检查端口被哪个进程占用
netstat -lnpt | grep 8888

# 查看进程的详细信息
ps 8888

单机部署Nginx

拉取Nginx镜像
# 拉取Nginx镜像,版本使用1.22.0
docker pull nginx:1.22.0

# 查看拉取镜像
docker images

镜像拉取成功则如下图所示

在这里插入图片描述

创建主本地目录
# 创建配置目录
mkdir -p /data/nginx/conf
# 创建日志目录
mkdir -p /data/nginx/log
# 创建前端显示目录
mkdir -p /data/nginx/html
#对nginx本地文件进行递归赋权
chmod -R 755 /data/nginx

如下图

在这里插入图片描述

部署Nginx容器
1.生成容器
# 先简单启动容器
docker run -p 80:80 --name nginx -d nginx:1.22.0

# 进入容器内部
docker exec -it 容器id /bin/bash 

2.复制容器配置到宿主机
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf

# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d

# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html/index.html /data/nginx/html
docker cp nginx:/usr/share/nginx/html/50x.html /data/nginx/html

3.重启容器
# 使用数据卷重启nginx容器
docker run -p 80:80 --name nginx -v /data/nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf -v /data/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/nginx/log:/var/log/nginx -v /data/nginx/html:/usr/share/nginx/html -d nginx:1.22.0

查看容器是否启动成功

在这里插入图片描述

4.测试验证

访问服务器ip:80端口(请先保证防火墙的端口已经打开,或者已经关闭),如下图所示,则安装成功。

在这里插入图片描述

5.Nginx配置

进入本地宿主机配置目录,由于我们启用的是include模式,所以在内部创建了conf.d目录

在这里插入图片描述

在这里插入图片描述

我们设置一个简单测试的配置,默认只有一个default.conf配置文件,如果有其他配置需要可以在conf.d目录下继续添加配置,我们在这里增加一个mydoc.conf的配置文件

在这里插入图片描述

配置mydoc.conf

server {
    listen       8001;
    listen  [::]:8001;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html/mydoc;
        index  index.html index.htm;
    }
}

配置default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/home;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html/home;
    }
    
    # 配置mydoc的测试代理
    location /mydoc {
        proxy_pass   http://127.0.0.1:8001/;
		proxy_set_header Host $host;
     }



    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #

    #location ~ \.php$ {
    #    root           html/mydoc;
    #    #fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_pass   192.168.2.103:9000;
    #    fastcgi_index  index.php;
    #    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    #    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;


### 那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

*   并发编程面试题汇总

*   JVM面试题汇总

*   Netty常被问到的那些面试题汇总

*   Tomcat面试题整理汇总

*   Mysql面试题汇总

*   Spring源码深度解析

*   Mybatis常见面试题汇总

*   Nginx那些面试题汇总

*   Zookeeper面试题汇总

*   RabbitMQ常见面试题汇总

JVM常频面试:

![Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计](https://img-blog.csdnimg.cn/img_convert/6c6aa231ae6c945cde3da1aa5a4975c3.webp?x-oss-process=image/format,png)

Mysql面试题汇总(一)

![Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计](https://img-blog.csdnimg.cn/img_convert/6b412770c2b660a330d8e047e5aae2ed.webp?x-oss-process=image/format,png)

Mysql面试题汇总(二)

![Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计](https://img-blog.csdnimg.cn/img_convert/dd4e477da304a4acf8d3075078f10fe8.webp?x-oss-process=image/format,png)

Redis常见面试题汇总(300+题)

![Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计](https://img-blog.csdnimg.cn/img_convert/c83b54b89cca8890f1ef2f1b9a9dabce.webp?x-oss-process=image/format,png)

*   Zookeeper面试题汇总

*   RabbitMQ常见面试题汇总

JVM常频面试:

[外链图片转存中...(img-IRdYbVmO-1714652118007)]

Mysql面试题汇总(一)

[外链图片转存中...(img-X8bvG0Il-1714652118008)]

Mysql面试题汇总(二)

[外链图片转存中...(img-nMfyA0Hm-1714652118008)]

Redis常见面试题汇总(300+题)

[外链图片转存中...(img-YQ0H9BI1-1714652118009)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值