阿里云海外企业账号 阿里云服务器网站部署教程:Nginx环境搭建和HTTPS证书配置实战
阿里云国际 / 2026-09-22 16:26:17
## 阿里云服务器网站部署教程:Nginx环境搭建和HTTPS证书配置实战
### 一、用户场景与常见问题
搜索“阿里云服务器网站部署教程:Nginx环境搭建和HTTPS证书配置”的用户,通常不是想看概念介绍,而是已经进入实际部署阶段,正在解决以下问题:
- 已经买了阿里云 ECS,但不知道怎么创建适合网站运行的实例
- 不清楚地域、可用区、带宽、系统镜像该怎么选
- 无法通过 SSH 连接 Linux 服务器
- Nginx 安装后页面打不开,80/443 端口无法访问
- 域名已备案并解析,但 HTTPS 证书不会部署
- 浏览器提示证书无效、重定向循环、443 连接失败
本文按真实部署流程来写,目标是帮助你把一个网站从“新购服务器”部署到“可通过 HTTPS 正常访问”。
---
## 二、准备工作
在开始之前,先确认以下前置条件。
### 1. 账号与权限要求
| 项目 | 要求 |
|---|---|
| 阿里云账号 | 已完成实名认证 |
| ECS 权限 | 可创建和管理实例 |
| 域名 | 已完成注册,国内站点建议已备案 |
| 证书 | 已申请 SSL 证书,可使用阿里云免费证书 |
### 2. 所需资源
| 资源 | 建议 |
|---|---|
| 云服务器 ECS | 2 核 2G 起步,个人站点够用 |
| 系统盘 | 40GB 以上 ESSD Entry 或高效云盘 |
| 公网带宽 | 测试站点 3Mbps 起,正式业务按访问量评估 |
| 操作系统 | Ubuntu 22.04 / CentOS Stream / Alibaba Cloud Linux |
| 安全组 | 放行 22、80、443 端口 |
### 3. 前置条件检查
部署前先确认:
- 域名已解析到 ECS 公网 IP
- 安全组已配置入方向规则
- 服务器系统可以正常远程登录
- 站点代码、静态文件或后端程序已准备好
---
## 三、阿里云服务器购买与实例创建
如果你还没有 ECS,可以按下面流程创建。
### 步骤1:购买云服务器 ECS
进入阿里云控制台,依次点击:
**产品与服务 → 云服务器 ECS → 实例与镜像 → 创建实例**
#### 参数填写建议
| 参数 | 建议配置 | 说明 |
|---|---|---|
| 计费方式 | 按量付费或包年包月 | 测试环境建议按量,长期站点建议包年包月 |
| 地域 | 选择目标用户近的地域 | 华东用户可选杭州/上海,华北用户可选北京 |
| 可用区 | 任意可用资源区 | 同地域内一般差异不大 |
| 实例规格 | 2核2G / 2核4G | WordPress、企业官网、接口服务常用起步配置 |
| 镜像 | Ubuntu 22.04 或 Alibaba Cloud Linux | 文档多,兼容性较好 |
| 系统盘 | 40GB 以上 | 便于后续日志、证书、站点文件存放 |
| 公网 IP | 开启 | 网站外部访问必须有公网能力 |
| 带宽 | 3~5 Mbps 起 | 图片多、下载多时需要提高 |
| 登录凭证 | 密码或密钥对 | 建议 Linux 使用密钥对,更安全 |
#### 注意事项
- 网站面向国内用户时,地域优先选国内节点,延迟更低
- 个人测试站不要一开始选过高配置,后续可以升级
- 购买时如果绑定了错误安全组,后面也能修改,但会增加排错成本
---
## 四、远程连接服务器
### 步骤2:通过 SSH 连接 Linux 服务器
实例创建完成后,在 ECS 控制台查看:
**实例 → 目标 ECS → 公网 IP**
然后在本地终端连接:
```bash
ssh root@你的公网IP
```
如果使用自定义端口,例如 2222:
```bash
ssh -p 2222 root@你的公网IP
```
如果使用密钥对:
```bash
ssh -i ~/.ssh/id_rsa root@你的公网IP
```
### 无法连接时先检查这4项
| 检查项 | 说明 |
|---|---|
| 安全组 | 是否放行 22 端口 |
| ECS 系统防火墙 | firewalld / ufw 是否拦截 |
| 公网 IP | 是否配置成功 |
| 登录用户 | Ubuntu 默认可能不是 root,可用 ubuntu 用户 |
### 防火墙检查命令
#### CentOS / Alibaba Cloud Linux
```bash
systemctl status firewalld
firewall-cmd --list-all
```
放行端口:
```bash
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload
```
#### Ubuntu
```bash
ufw status
```
放行端口:
```bash
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
```
---
## 五、安全组配置:80 和 443 端口必须放行
### 步骤3:在阿里云控制台配置安全组
进入:
**ECS 控制台 → 实例 → 目标实例 → 安全组 → 配置规则**
添加入方向规则:
| 协议类型 | 端口范围 | 授权对象 | 用途 |
|---|---|---|---|
| SSH | 22/22 | 0.0.0.0/0 或办公 IP | 远程登录 |
| HTTP | 80/80 | 0.0.0.0/0 | 网站访问 |
| HTTPS | 443/443 | 0.0.0.0/0 | HTTPS 访问 |
### 注意事项
- 生产环境建议 SSH 端口只对固定办公 IP 放行
- 如果你修改了 SSH 端口,要同步修改安全组和系统配置
- 安全组放行后仍访问失败,通常是系统防火墙未放行
---
## 六、安装 Nginx 环境
下面分别给出 Ubuntu 和 CentOS 系安装方式。
### Ubuntu 安装 Nginx
```bash
apt update
apt install -y nginx
systemctl enable nginx
systemctl start nginx
systemctl status nginx
```
### CentOS / Alibaba Cloud Linux 安装 Nginx
```bash
yum install -y nginx
systemctl enable nginx
systemctl start nginx
systemctl status nginx
```
### 验证 Nginx 是否正常
浏览器访问:
```text
http://你的服务器公网IP
```
如果看到默认欢迎页,说明 Nginx 已成功运行。
### 常见安装问题
| 问题 | 原因 | 处理方法 |
|---|---|---|
| 访问超时 | 80 端口未放行 | 检查安全组和防火墙 |
| Nginx 启动失败 | 端口被占用 | 用 `ss -lntp` 检查占用进程 |
| 找不到 nginx 命令 | 安装失败或源异常 | 重新更新软件源后安装 |
检查端口占用:
```bash
ss -lntp | grep -E '80|443'
```
---
## 七、部署网站文件与站点配置
假设你的网站文件放在 `/var/www/mysite`。
### 创建网站目录
```bash
mkdir -p /var/www/mysite
```
写入一个测试首页:
```bash
echo '
阿里云海外企业账号 Hello Alibaba Cloud Nginx
' > /var/www/mysite/index.html
```
### 配置 Nginx 虚拟主机
#### Ubuntu 常用目录
新建配置文件:
```bash
vim /etc/nginx/sites-available/mysite.conf
```
写入:
```nginx
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/mysite;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
}
```
启用配置:
```bash
ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
```
#### CentOS 常用目录
```bash
vim /etc/nginx/conf.d/mysite.conf
```
内容同上。
### 参数说明
| 参数 | 作用 |
|---|---|
| listen 80 | 监听 HTTP 端口 |
| server_name | 绑定域名 |
| root | 网站根目录 |
| index | 默认首页文件 |
| try_files | 资源存在性检查 |
### 域名解析设置
到域名解析控制台添加 A 记录:
| 记录类型 | 主机记录 | 记录值 |
|---|---|---|
| A | @ | 服务器公网 IP |
| A | www | 服务器公网 IP |
解析生效后,可先访问:
```text
http://yourdomain.com
```
---
## 八、HTTPS 证书配置
网站可通过 HTTP 访问后,再配置 HTTPS,排错会简单很多。
### 步骤4:申请并下载 SSL 证书
如果使用阿里云数字证书管理服务,可在控制台申请免费 DV 证书。证书签发完成后,下载 **Nginx** 格式证书包,通常包含:
- `yourdomain.com.pem`
- `yourdomain.com.key`
上传到服务器,例如放到:
```bash
mkdir -p /etc/nginx/ssl
```
上传后路径示例:
```text
/etc/nginx/ssl/yourdomain.com.pem
/etc/nginx/ssl/yourdomain.com.key
```
### 步骤5:配置 Nginx HTTPS
修改站点配置:
```nginx
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
root /var/www/mysite;
index index.html index.htm index.php;
ssl_certificate /etc/nginx/ssl/yourdomain.com.pem;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
location / {
try_files $uri $uri/ =404;
}
}
```
检查配置并重载:
```bash
nginx -t
systemctl reload nginx
```
### 验证 HTTPS
浏览器访问:
```text
https://yourdomain.com
```
如果浏览器地址栏出现锁标识,说明证书部署成功。
---
## 九、网站部署中的关键排错方法
### 1. 域名能 ping 通,但网页打不开
常见原因:
- 安全组未放行 80/443
- Nginx 未启动
- 站点配置未生效
- 系统防火墙拦截
排查命令:
```bash
systemctl status nginx
nginx -t
ss -lntp | grep nginx
curl -I http://127.0.0.1
```
### 2. HTTPS 访问失败
常见原因:
- 443 端口未放行
- 证书路径错误
- 证书文件权限不足
- 域名与证书不匹配
查看错误日志:
```bash
tail -f /var/log/nginx/error.log
```
### 3. 浏览器提示证书不安全
排查方向:
- 证书绑定的域名是否正确
- 是否访问了未包含在证书中的子域名
- 证书是否已过期
- 服务器时间是否不准确
### 4. 配置修改后不生效
通常是以下原因:
- 修改了错误的配置文件
- 忘记执行 `systemctl reload nginx`
- 配置语法错误导致未加载
建议每次改完都执行:
```bash
nginx -t && systemctl reload nginx
```
---
## 十、不同场景下的配置建议
### 1. 个人开发者
| 项目 | 建议 |
|---|---|
| ECS 规格 | 2核2G |
| 系统盘 | 40GB |
| 带宽 | 3Mbps |
| Web 环境 | Nginx + 静态站 / PHP |
| 备份方式 | 每周快照一次 |
适合个人博客、作品站、测试环境。
### 2. 企业官网
| 项目 | 建议 |
|---|---|
| ECS 规格 | 2核4G 或 4核8G |
| 带宽 | 5Mbps 起 |
| HTTPS | 必须启用 |
| 备份 | 自动快照 + 站点文件异地备份 |
| 日志 | 开启访问日志与错误日志轮转 |
### 3. 跨境业务
重点关注:
- 用户主要来源国家对应的地域选择
- 跨境网络延迟测试
- CDN 加速与静态资源分发
- HTTPS 全站启用,减少中间链路风险
### 4. 网站应用
如果是 PHP、Java、Node.js 站点,Nginx 通常作为反向代理或静态资源服务器,后端应用需要额外监听本地端口,再由 Nginx 转发。
### 5. 数据库业务
建议数据库不要直接暴露公网,优先:
- 应用服务器与数据库走私网
- 仅对特定 IP 开放数据库端口
- 定期备份 MySQL/Redis 数据
---
## 十一、快照备份、系统重装与迁移建议
### 快照备份
在 ECS 控制台可为系统盘和数据盘创建快照。建议:
- 部署前做一次快照
- 证书更新、环境升级前做一次快照
- 生产环境设置自动快照策略
### 系统重装
适合以下场景:
- 环境被反复测试后配置混乱
- 中毒或异常修改较多
- 需要切换系统版本
重装前必须备份:
- 网站目录
- 数据库
- Nginx 配置
- SSL 证书文件
### 服务器迁移
如果从本地服务器迁移到阿里云:
1. 先在新 ECS 搭建同版本 Nginx 环境
2. 同步网站文件和配置
3. 导入数据库
4. 修改 hosts 测试
5. 最后切换域名解析
这样可以减少正式切换时的中断时间。
---
## 十二、优化建议
### 1. 安全优化
- SSH 禁止弱密码,优先使用密钥登录
- 仅开放必要端口:22、80、443
- 定期升级系统补丁和 Nginx
- 隐藏 Nginx 版本号
可在 `nginx.conf` 中添加:
```nginx
server_tokens off;
```
### 2. 性能优化
- 开启 gzip 压缩
- 静态资源设置缓存头
- 图片、JS、CSS 通过 CDN 分发
- 日志过大时及时切割,避免磁盘占满
### 3. 成本优化
- 测试环境使用按量付费
- 低峰业务可降低带宽规格
- 小型网站无需一开始上高配 ECS
- 静态资源分离后可减少源站带宽压力
### 4. 稳定性优化
- 定期做 ECS 快照
- 网站文件与数据库分开备份
- 监控 CPU、内存、带宽、磁盘 IO
- 重要变更先在测试环境验证
---
## 十三、FAQ:常见问题解答
### Q1:为什么阿里云服务器无法通过 SSH 连接?
A:先检查安全组是否放行 22 端口,再确认 ECS 系统防火墙没有拦截,最后检查你使用的用户名是否正确。Ubuntu 镜像常用用户是 `ubuntu`,并不一定能直接用 `root` 登录。
### Q2:Nginx 安装成功了,但公网 IP 访问不到页面,怎么办?
A:优先检查 80 端口是否在安全组和系统防火墙中放行,其次确认 Nginx 已经启动,并且网站配置文件已加载。可用 `systemctl status nginx` 和 `curl -I http://127.0.0.1` 验证本机服务是否正常。
### Q3:HTTPS 配置后浏览器仍显示不安全,原因是什么?
A:常见原因是证书与访问域名不一致、证书已过期、证书链不完整,或者浏览器访问的是旧缓存页面。先确认下载的是 Nginx 格式证书,并且 `ssl_certificate` 与 `ssl_certificate_key` 指向正确文件。
### Q4:为什么配置了 301 跳转后出现重定向循环?
A:通常是因为站点前面还有 CDN、SLB 或其他代理,Nginx 没有正确识别原始协议,导致 HTTP/HTTPS 判断混乱。先简化配置,仅保留基础 80 跳 443 规则,再逐层排查代理设置。
### Q5:网站上线后访问慢,应该先优化哪里?
A:先看地域是否靠近用户,再检查带宽是否过低,随后优化 Nginx 静态资源缓存、开启 gzip,并把图片、JS、CSS 接入 CDN。如果是动态站点,还要继续检查后端程序和数据库响应时间。
### Q6:证书文件放在哪个目录更合适?
A:常见做法是放在 `/etc/nginx/ssl/`,权限仅授予管理员和 Nginx 必要读取权限。不要把私钥放在网站根目录,避免被误下载。
### Q7:修改 Nginx 配置后服务起不来怎么办?
A:先执行 `nginx -t` 查看具体语法错误,再根据提示修正配置。不要直接重启,建议先测试配置,再 reload。这样可以避免因错误配置导致站点中断。
---
## 十四、结语
阿里云服务器网站部署的关键,不是单纯把 Nginx 装上,而是把“ECS 实例创建、地域与带宽选择、SSH 连接、安全组、防火墙、域名解析、HTTPS 证书配置、故障排查”这一整条链路打通。实际操作中,最常见的问题通常集中在端口未放行、域名未生效、证书路径错误和 Nginx 配置未重载。
如果你按本文顺序执行:先创建 ECS、再连接服务器、安装 Nginx、部署站点、确认 HTTP 可用、最后启用 HTTPS,基本可以避开大多数部署失败问题。对于正式业务,建议继续补充快照备份、日志监控、数据库私网访问和 CDN 加速,避免网站上线后因配置遗漏影响访问稳定性。