# 基于宝塔面板和 Nginx 的网站部署实战教程

作者：星苒鸭（xingranya）
发布日期：2025-10-27
更新时间：2025-10-27
原文：https://blog.xran.uk/nginx-baota-deployment-tutorial/

当开发完成一个静态网站后，如何将其高效、安全地发布到互联网上，是一个关键步骤。本文将以阿里云服务器上的宝塔面板为例，详细介绍如何使用 Nginx 快速部署一个静态网站。

### 准备工作

在开始部署之前，确保已准备好以下资源：

1.  **一台云服务器**：例如阿里云 ECS 或其他服务商的云主机(当然也可以是本地linux,然后内网穿透,我就是这么干的)。
2.  **一个域名**：并已将其 DNS 解析到服务器的 IP 地址(不要也行,就是不太安全)。
3.  **安装好的宝塔面板**：它能提供一个便捷的图形化界面来管理服务器。
4.  **完整的网站文件**：包含 `index.html` 以及所有相关的 CSS、JavaScript 和媒体文件。

### 第一步：在宝塔面板中创建站点

1.  登录宝塔面板。
2.  在左侧菜单栏中找到并点击 **“网站”**。
3.  点击 **“添加站点”** 按钮，打开站点配置窗口。
4.  填写配置信息：
    - **域名**：输入准备好的域名，例如 `example.com`。
    - **数据库**：对于静态网站，此处选择 **“不创建”**。
    - **PHP 版本**：选择 **“纯静态”**。这将让宝塔自动配置一个最优的 Nginx 环境来处理静态内容。
    - **FTP**：可按需创建，但对于本次教程，我们将使用面板的文件管理器进行操作。
5.  点击 **“提交”**，宝塔将自动完成网站目录的创建和 Nginx 的基础配置。

### 第二步：上传网站文件

1.  在宝塔的“网站”列表中，找到刚刚创建的站点，点击其对应的“根目录”链接（通常是 `/www/wwwroot/example.com`）。
2.  进入文件管理器后，首先**删除**宝塔为新站点自动生成的 `index.html` 和 `404.html` 等默认文件。
3.  将本地的网站文件**打包成一个 `.zip` 压缩文件**。
4.  在宝塔的文件管理器界面，点击 **“上传”** 按钮，将本地的 `.zip` 文件上传至网站根目录。
5.  上传完成后，在文件管理器中右键点击该 `.zip` 文件，选择 **“解压”**。
6.  解压完成后，网站的所有文件就已成功部署到服务器的指定目录。

> **部署技巧**：将大量零散的静态文件先压缩再上传，最后在服务器端解压，这种方式远比通过 FTP 逐个上传文件要快得多，且能有效避免文件遗漏。

### 第三步：配置 SSL 证书 (推荐)

为网站启用 HTTPS 是现代网站安全的标准实践,这里搞一个免费的,当然如果你用cloudflare大善人的就自带了,我就是。

1.  返回“网站”列表，点击目标站点的 **“设置”**。
2.  在弹出的窗口中，选择 **“SSL”** 标签页。
3.  宝塔面板集成了 Let's Encrypt，可以一键申请免费的 SSL 证书。选择域名，点击 **“申请”** 即可。
4.  证书部署成功后，建议开启右上角的 **“强制 HTTPS”** 功能，以确保所有用户都通过安全的加密连接访问网站。

### 第四步：Nginx 配置进阶 (可选)

对于大多数情况，宝塔面板自动生成的 Nginx 配置已经足够使用。但了解其背后的代码，能让你更深入地理解网站是如何运行的。你可以在站点“设置”的“配置文件”中看到它们。

以下是一些关键配置的解读：

```nginx
server
{
    listen 80;
    listen 443 ssl http2;
    server_name example.com;
    root /www/wwwroot/example.com;

    # SSL 证书配置 (宝塔自动添加)
    ssl_certificate    /www/server/panel/vhost/cert/example.com/fullchain.pem;
    ssl_certificate_key /www/server/panel/vhost/cert/example.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 默认索引文件
    index index.html index.htm default.html default.htm;

    # ... 其他配置
}
```

- `listen 80;` 和 `listen 443 ssl http2;`：分别监听标准的 HTTP (80) 和 HTTPS (443) 端口。
- `server_name`：定义这个 `server` 块处理哪个域名下的请求。
- `root`：指定了网站文件的根目录，Nginx 会到这个路径下寻找用户请求的文件。
- `ssl_certificate` 和 `ssl_certificate_key`：指向了宝塔为你申请的 SSL 证书和私钥文件，是实现 HTTPS 加密的关键。
- `index`：定义了当用户只访问域名（如 `http://example.com/`）而不指定具体文件时，Nginx 应该默认查找哪个文件作为首页。

通过理解这些基础配置，当未来遇到更复杂的部署需求（如反向代理、负载均衡）时，你就能更快地上手。

### 第五步：完成部署并访问

至此，所有部署步骤均已完成。打开浏览器，输入你的域名，即可看到线上运行的网站。

### 总结

通过宝塔面板，复杂的服务器管理和 Nginx 配置被简化为几次鼠标点击。这个流程不仅高效，而且大大降低了网站部署的技术门槛，让开发者能更专注于业务逻辑本身。掌握这一技能，是每一位Web开发者将作品推向世界的关键一步啊哈哈哈哈哈。
