当前位置: 首页 > news >正文

Docker 安装和配置 Nginx 详细图文教程

🚀 作者主页: 有来技术
🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template
🌺 仓库主页: GitCode︱ Gitee ︱ Github
💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正!

目录

  • 1. 环境准备
  • 2. 创建挂载目录
  • 3. 编写 Nginx 配置文件
  • 4. 拉取 Nginx 容器
  • 5. 启动 Nginx 容器
  • 6. 验证安装
  • 7. 配置 SSL(可选)
  • 8. 结语

Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛用于处理高并发的 Web 流量。在这篇文章中,通过 Docker 快速安装并配置 Nginx。

1. 环境准备

首先,确保你的系统已安装 Docker。如果尚未安装 Docker,请参考相关文档进行安装:

  • Linux (CentOS 9) 安装 Docker
  • Linux (CentOS 8) 安装 Docker
    • Windows 安装 Docker

2. 创建挂载目录

在安装和配置 Nginx 之前,首先需要创建一些目录,用于存放 Nginx 配置文件、网页文件、日志文件和 SSL 证书等。

sudo mkdir -p /mnt/nginx/{conf.d,html,logs,ssl}
目录路径核心用途
/mnt/nginx/conf存放自定义配置文件
(如虚拟主机配置)
/mnt/nginx/html网站静态资源
(HTML/CSS/JS/图片)
/mnt/nginx/logs存储访问日志/错误日志
(access.log, error.log)
/mnt/nginx/sslHTTPS证书文件
(.crt, .key, .pem)

3. 编写 Nginx 配置文件

/mnt/nginx/nginx.conf 目录下创建一个自定义的 Nginx 配置文件,执行以下命令:

sudo touch /mnt/nginx/nginx.conf

接下来,使用以下配置来部署 vue3-element-admin 项目的前端应用,并代理后端 API:

worker_processes 1;

events {
    worker_connections 1024;
}

http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;

    # 开启gzip
    gzip on;
    gzip_http_version 1.1;
    gzip_disable "MSIE [1-6]\.";
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_comp_level 5;
    gzip_vary on;
    gzip_types text/plain application/javascript text/css;

    server {
        listen 80;
        server_name localhost;
        location / {
        	# 指定前端静态资源路径
            # 需将 vue3-element-admin 项目构建后的 dist 目录拷贝至 /usr/share/nginx/html/vue
            root /usr/share/nginx/html/vue;
            index index.html index.htm;
        }

        # 代理后端 API 请求
        location /prod-api/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 后端服务地址,注意保留 URL 末尾的 `/`
            proxy_pass https://api.youlai.tech/;
        }
    }
}

4. 拉取 Nginx 容器

docker pull nginx

5. 启动 Nginx 容器

使用以下命令在 Docker 中启动 Nginx 容器,并挂载自定义配置文件和网页文件:

docker run -it -d --restart always --network host \
  --name nginx \
  -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf \
  -v /mnt/nginx/html:/usr/share/nginx/html \
  -v /mnt/nginx/logs:/var/log/nginx/ \
  -v /mnt/nginx/ssl:/etc/nginx/ssl \
  nginx
参数功能说明
--network host网络模式
--name nginx容器命名
-v [宿主机路径]:[容器路径]数据卷挂载
/mnt/nginx/nginx.conf:/etc/nginx/nginx.conf挂载主配置文件
/mnt/nginx/html:/usr/share/nginx/html挂载网站文件
/mnt/nginx/logs:/var/log/nginx/持久化存储日志
/mnt/nginx/ssl:/etc/nginx/ssl挂载SSL证书

在这里插入图片描述

6. 验证安装

7. 配置 SSL(可选)

如果您需要启用 HTTPS,可以通过 阿里云数字证书管理 申请免费的 SSL 证书。申请完成后,下载适用于 Nginx 服务器的证书文件。
在这里插入图片描述

下载后,解压并将 SSL 证书放置到 /mnt/nginx/ssl 目录下。

接下来,在 Nginx 配置文件 nginx.conf 中添加以下配置来启用 HTTPS:

server {
    listen 443 ssl;
    server_name vue.youlai.tech;
    # 配置 SSL 证书路径
    ssl_certificate ssl/vue.youlai.tech.pem;
    ssl_certificate_key ssl/vue.youlai.tech.key;

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

    # 设置反向代理接口
    location /prod-api/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 后端服务地址,注意保留 URL 末尾的 `/`
        proxy_pass https://api.youlai.tech/;
    }
}

确保 SSL 证书的路径设置正确,并且 Nginx 配置无误。完成配置后,重新加载 Nginx 以使更改生效:

docker exec -it nginx nginx -s reload

8. 结语

通过 Docker 快速搭建并配置 Nginx 服务,可以极大地简化部署过程,并使得管理和维护更加高效。希望本文能帮助你在生产环境中顺利运行 Nginx,并通过合理配置优化其性能和安全性。

相关文章:

  • STM32 低功耗模式
  • 一周学会Flask3 Python Web开发-Debug模式开启
  • TailwindCss的vue3安装使用
  • 深度学习05 ResNet残差网络
  • 备战蓝桥杯 Day4 差分
  • vite+vue3开发uni-app时低版本浏览器不支持es6语法的问题排坑笔记
  • 【论文笔记】Transformer^2: 自适应大型语言模型
  • 【Linux】【网络】Libevent基础
  • React入门 – 1. 学习React的预备知识
  • JVM内存模型详解
  • 数据结构-双向链表
  • 面试题之Vuex,sessionStorage,localStorage的区别
  • Qt常用控件之按钮QPushButton
  • 解决 `pip is configured with locations that require TLS/SSL` 错误
  • 使用DeepSeek+本地知识库,尝试从0到1搭建高度定制化工作流(数据分析篇)
  • RabbitMQ 3.12.2:单节点与集群部署实战指南
  • lab3 CSAPP:AttackLab
  • PosgreSQL比MySQL更优秀吗?
  • nlp|微调大语言模型初探索(2),训练自己的聊天机器人
  • 算法与数据结构(最小栈)
  • 贯彻落实《生态环境保护督察工作条例》,充分发挥生态环境保护督察利剑作用
  • 美国新泽西客运公司遭遇罢工:40年来首次,35万人受影响
  • 俄乌直接谈判结束,乌称“毫无成果”
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • “多规合一”改革7年成效如何?自然资源部总规划师亮成绩单
  • 艺术稀缺性和价值坚守如何构筑品牌差异化壁垒?从“心邸”看CINDY CHAO的破局之道