前言
在现代 Web 服务部署中,Docker 和 Nginx 的结合是一种高效、灵活且可扩展的解决方案。
- Docker 使应用程序及其依赖项封装到一个独立的容器中,确保一致性,并简化部署过程。
- Nginx 作为高性能 Web 服务器和反向代理,能够高效处理请求、提供负载均衡,并提升网站安全性。
本教程将详细介绍如何使用 Docker 和 Nginx 部署 Web 服务,并结合 慈云数据 的服务器推荐,帮助您高效地完成部署任务。
一、准备工作
在开始部署之前,确保您拥有一台稳定的服务器。慈云数据 提供高性能云服务器,适合各类 Web 应用和 DevOps 项目。
1.1 为什么选择慈云数据?
- 高性价比:提供灵活的配置,满足不同规模的业务需求。
- 高速稳定:BGP 多线接入,直连中国电信 CN2 网络,保证低延迟、高速访问。
- 7x24h 服务器监控:专业运维团队提供全天候支持,确保业务稳定运行。
👉 服务器推荐:
- 基础型:2 核 4G 内存,适用于个人博客、小型应用。
- 标准型:4 核 8G 内存,适用于中等流量网站、企业应用。
- 高性能型:8 核 16G 内存,适用于高并发、大流量 Web 服务。
立即获取服务器 👉 慈云数据官网
二、Docker 环境安装
2.1 安装 Docker
可以通过官方提供的安装脚本进行快速安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果遇到网络问题,可使用国内 Daocloud 一键安装:
curl -sSL https://get.daocloud.io/docker | sh
启动 Docker 服务:
sudo systemctl start docker
验证 Docker 是否安装成功:
docker --version
如果正确显示版本号,则安装成功。
2.2 推荐安装 1Panel 面板
1Panel 是一款现代化的服务器管理面板,支持一键安装 Docker 和 Docker Compose,极大提升服务器管理的便捷性。
可在 慈云数据 服务器上安装:
curl -sSL https://get.1panel.cn | bash
安装完成后,即可在 Web 界面管理容器、创建 Web 服务,极大简化运维操作。
三、部署 Web 应用
3.1 拉取 Nginx 镜像
docker pull nginx
这将从 Docker 官方仓库拉取最新版的 Nginx 镜像。
3.2 创建挂载目录
在宿主机上创建以下目录,用于存放 日志、配置、Web 文件:
mkdir -p /root/nginx_conf
mkdir -p /root/nginx_logs
mkdir -p /root/nginx_web
授权文件夹,防止 Nginx 无法访问:
chmod 777 /root/nginx_conf
chmod 777 /root/nginx_logs
chmod 777 /root/nginx_web
3.3 创建容器并挂载目录
⚠️ 注意:如果直接挂载空目录,会导致 Nginx 容器的配置文件目录为空,进而启动失败。我们先启动一次容器,然后复制默认配置文件。
第一步:启动 Nginx 容器
docker run -itd --name nginx -p 80:80 nginx
第二步:复制配置文件到宿主机
docker cp nginx:/etc/nginx /root/nginx_conf
第三步:删除容器,并重新创建
docker rm -f nginx
docker run -itd --name nginx -p 80:80 \-v /root/nginx_web:/var/www/html \-v /root/nginx_conf/nginx:/etc/nginx \-v /root/nginx_logs:/var/log/nginx \nginx
四、配置 Nginx
进入配置目录 /root/nginx_conf/conf.d/
,修改 default.conf
,或者新建 .conf
文件。
Nginx 会自动读取该目录下所有
.conf
配置文件
示例 Nginx 配置文件:
server {listen 80;server_name 你的服务器IP或域名;client_max_body_size 20m;access_log /var/log/nginx/host.access.log main;gzip on;gzip_static on;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 5;gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_disable "MSIE [1-6]\.";location / {root /var/www/html;index index.html index.htm;try_files $uri $uri/ /index.html;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}
}
五、上传 Web 文件并访问
5.1 上传 Web 项目
将您的 Web 项目上传到 /root/nginx_web 目录,例如:
scp -r my_project root@your_server_ip:/root/nginx_web
5.2 重启 Nginx
docker restart nginx
5.3 访问 Web 服务
通过浏览器访问:
http://你的服务器IP:80
如果一切正常,您的 Web 页面应能正确加载。
六、域名绑定和 HTTPS 配置
6.1 绑定域名
如果您想通过 域名 访问 Web 服务,需要进行 DNS 解析。
操作步骤:
- 在域名服务商(如阿里云、腾讯云)购买域名
- 在 DNS 解析管理页面,添加 A 记录,将域名指向 慈云数据 服务器的 IP
- 修改 Nginx 配置文件,将
server_name
改为你的域名:
server_name www.yourdomain.com;
- 重启 Nginx
docker restart nginx
6.2 配置 HTTPS(SSL 证书)
HTTP 站点会被浏览器标记为 不安全,因此建议启用 HTTPS。
步骤:
- 在 阿里云 申请 免费 SSL 证书,下载
.pem
和.key
文件 - 将证书上传至服务器
/root/nginx_conf/ssl/
目录 - 在 Nginx 配置中启用 HTTPS:
server {listen 443 ssl;server_name www.yourdomain.com;ssl_certificate /root/nginx_conf/ssl/cert.pem;ssl_certificate_key /root/nginx_conf/ssl/key.pem;location / {root /var/www/html;index index.html index.htm;}
}
- 重启 Nginx
docker restart nginx
访问 https://yourdomain.com
,即可使用 HTTPS 安全访问。
总结
本教程介绍了如何在 Docker + Nginx 环境中部署 Web 服务,并结合 慈云数据 云服务器,确保高效稳定运行。
如果你需要高性能云服务器,推荐访问 慈云数据官网,选择适合的配置!🚀