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;# 开启gzipgzip 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/vueroot /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,并通过合理配置优化其性能和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RD-搭建测试环境

测试团队职责 环境验证:确保开发部署的测试环境可访问,页面/接口无阻塞问题; 配置检查**:核对数据库连接、接口域名、HT证书等关键配置; 数据准备**:导入基线数据,隔离测试与生产数据&#xff1…

科普mfc100.dll丢失怎么办?有没有简单的方法修复mfc100.dll文件

当电脑频繁弹窗提示“mfc100.dll丢失”或应用程序突然闪退时,这个看似普通的系统文件已成为影响用户体验的核心痛点。作为微软基础类库(MFC)的核心组件,mfc100.dll直接关联着Visual Studio 2010开发的大量软件运行命脉。从工业设计…

2025蓝桥杯JAVA编程题练习Day5

1.最少步数【省模拟赛】 问题描述 小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 nn级)。小蓝每一步可以走 1 级、2 级或 3 级台阶。 请问小蓝至少要多少步才能上到楼梯顶端? 输入格式 输入一行包含一个整数 n。 输出…

破解Docker镜像拉取难题:为Docker配置代理加速镜像拉取

为Docker配置代理加速镜像拉取 概述守护进程配置(推荐长期使用)Systemd环境变量配置(适合临时调整)其他 概述 为什么需要配置代理与镜像加速? 跨国网络限制:境外镜像仓库拉取速度慢或无法访问企业安全策略&#xff…

el-table已经选中的项,通过selectable属性不可以再次选择

示例&#xff1a; 1、表格当前行状态已完成时&#xff0c;不可选择 <el-table-column type"selection" width"55" :selectable"isRowSelectable"></el-table-column>// 表格行是否可选 isRowSelectable (row, index) {// 根据row的…

BGP配置华为——路径优选验证

实验拓扑 实验要求 实现通过修改AS-Path属性来影响路径选择实现通过修改Local_Preference属性来影响路径选择实现通过修改MED属性来影响路径选择实现通过修改preferred-value属性来影响路径选择 实验配置与效果 1.改名与IP配置 2.as300配置OSPF R3已经学到R2和R4的路由 3.…

【ELK】【Elasticsearch 】DSL 和 DQL

1. DSL 查询&#xff08;Query DSL&#xff09; 全称&#xff1a;Domain Specific Language&#xff08;领域特定语言&#xff09;。 定义&#xff1a;Elasticsearch 提供的一种基于 JSON 的查询语言&#xff0c;用于构建复杂的查询逻辑。 特点&#xff1a; 支持多种查询类型…

关于ES中text类型时间字段范围查询的结构化解决方案

前言 有关es中text类型的时间字段范围查询的问题&#xff0c;比如&#xff1a; {"query": {"range": {"insertTime": {"gte": "2025-02-01T00:00:00","lte": "2025-11-30T23:59:59","format&quo…

PHP建立MySQL持久化连接(长连接)及mysql与mysqli扩展的区别

如果在 PHP 5.3 的版本以前想要创建MySQL的持久化连接(长连接)&#xff0c;需要显式调用 pconnect 创建&#xff1a; $con mysql_pconnect($server[host], $server[username], $server[password]); if (!($con false)) { if (mysql_select_db($server[database], $con) fals…

为AI聊天工具添加一个知识系统 之114 详细设计之55 知识表征

本文要点 要点 项目名称&#xff1a;为使用AI聊天工具的聊天者添加一个知识系统 项目背景&#xff1a; 在现在各种AI聊天工具层出不穷的今天&#xff0c;我觉得特别需要一个通用的AI聊天工具的图形界面能够为每个聊天者&#xff08;或一个利益相关者组织&#xff09;建立自…

AI赋能编程:PyCharm与DeepSeek的智能开发革命

在这个智能化的时代&#xff0c;人工智能技术正在深刻地改变着我们的工作方式&#xff0c;尤其是在编程领域。无论是初学者还是资深开发者&#xff0c;都希望借助更高效的工具和智能助手来提升生产力、优化代码质量。今天&#xff0c;我们将聚焦于两个强大的工具&#xff1a;Py…

Vue 和 React 响应式的区别

React 和 Vue 在响应式机制上的核心区别主要体现在数据变化侦测方式、更新触发逻辑和设计理念上&#xff0c;具体如下&#xff1a; 一、数据变化侦测方式 Vue 的响应式 原理&#xff1a;通过 Proxy&#xff08;Vue3&#xff09;或 Object.defineProperty&#xff08;Vue2&#…

Ollama常用命令详解:快速掌握核心操作

Ollama作为一款高效、易用的机器学习平台&#xff0c;为开发者和数据科学家提供了强大的工具支持。无论是数据预处理、模型训练还是部署上线&#xff0c;Ollama都通过简洁的命令行工具帮助用户快速完成任务。然而&#xff0c;对于初学者来说&#xff0c;掌握Ollama的常用命令是…

超级详细,知识图谱系统的理论详解+部署过程

知识图谱系统(Knowledge Graph System)是一种用于表示、存储、查询和推理知识的系统。它通过结构化的方式将现实世界中的实体、概念及其相互关系组织成一个图结构,从而帮助机器理解和处理复杂的知识。 知识图谱的核心组成部分 实体(Entities): 实体是知识图谱中的节点,…

Web 开发中的 5 大跨域标签解析:如何安全地进行跨域请求与加载外部资源

在 Web 开发中,跨域(Cross-Origin)是指从一个源(协议、域名、端口)访问另一个源的资源。以下是5个常见的用于跨域操作的 HTML 标签,它们主要用于跨域请求或加载外部资源:1. <script> 标签 用途:最常用于进行跨域请求的标签,特别是在 JSONP 技术中。浏览器允许通…

Elasticsearch常用的查询条件

目录 1. Match Query 2. Term Query 3. Range Query 4. Bool Query 5. Exists Query 6. Prefix Query 7. Wildcard Query 8. Regexp Query 9. Terms Query 10. Nested Query 11. Geo Distance Query 12. Script Query 13. Fuzzy Query 14. Ids Query 15. More L…

vxe-table 如何实现跟 Excel 一样的数值或金额的负数自动显示红色字体

vxe-table 如何实现跟 Excel 一样的数值或金额的负数自动显示红色字体&#xff0c;当输入的值为负数时&#xff0c;会自动显示红色字体&#xff0c;对于数值或者金额输入时该功能就非常有用了。 查看官网&#xff1a;https://vxetable.cn gitbub&#xff1a;https://github.co…

Spring Boot项目开发常见问题及解决方案(上)

启动相关问题 问题 1&#xff1a;项目启动时报错“找不到主类” 在使用 Spring Boot 打包成可执行 JAR 文件后启动&#xff0c;有时会遇到这个头疼的问题。通常是因为打包配置有误或者项目结构不符合要求。 解决方案&#xff1a; 首先&#xff0c;检查 pom.xml&#xff08;Ma…

基于开源Odoo、SKF Phoenix API与IMAX-8数采网关的圆织机设备智慧运维实施方案 ——以某纺织集团圆织机设备管理场景为例

一、方案背景与需求分析 1.1 纺织行业设备管理痛点 以某华东地区大型纺织集团为例&#xff0c;其圆织机设备管理面临以下挑战&#xff1a; 非计划停机损失高&#xff1a;圆织机主轴轴承故障频发&#xff0c;2024年单次停机损失达12万元&#xff08;停机8小时导致订单延误&am…

手动配置 Yum 仓库

在我使用虚拟机&#xff0c;系统在尝试访问CentOS的镜像列表时遇到了网络问题&#xff0c;具体表现为无法解析mirrorlist.centos.org 于是手动配置yum仓库 备份现有的 repo 文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 创建新…