从零开始:在华为云 ECS 上部署 Nginx 并配置 HTTPS 的完整实践
前言
很多开发者第一次接触云服务器,都会遇到一个很实际的问题:服务器买好了,域名也注册了,但网站到底怎么跑起来?从连接服务器、安装软件,到配置域名和 HTTPS,中间每一步都有一些小坑。
本文就以在华为云 ECS 上部署一个简单的静态站点为例,把整个过程完整走一遍。看完之后,你应该可以独立完成一台新服务器的建站初始化。
一、准备工作
1. 一台 ECS 实例
本文以 Ubuntu 22.04、2 核 4G 的通用型实例为例。其他规格和系统(如 CentOS、openEuler)操作思路基本一致,只是个别命令不同。
创建实例时建议注意两点:
- 系统盘不要选太小,后续装软件、放日志都会占用空间;
- 登录方式优先选择密钥对,比密码更安全。
2. 配置安全组
这一步非常容易被忽略。默认安全组通常只放行 22 端口,网站相关端口需要在安全组里手动添加:
- 80 端口:HTTP
- 443 端口:HTTPS
在华为云控制台进入「云服务器 ECS → 实例 → 安全组」,添加入方向规则即可。如果服务器上还开了防火墙(如 ufw、firewalld),记得同步放行。
3. 域名解析
在域名服务商处添加一条 A 记录,把域名指向 ECS 的公网 IP。解析生效一般需要几分钟到几十分钟,可以先用 ping 验证一下。
二、连接服务器并安装 Nginx
使用 SSH 连接服务器:
ssh -i ~/.ssh/your_key.pem root@你的公网IP
更新软件源并安装 Nginx:
apt update
apt install -y nginx
systemctl enable nginx
systemctl status nginx
安装完成后,在浏览器访问 http://公网IP,如果能看到 Nginx 的欢迎页,说明服务已经正常启动。
如果访问不通,先检查两个地方:安全组是否放行 80 端口、服务器本机防火墙是否拦截。这两个问题占了新手排查问题的绝大多数。
三、配置站点
Nginx 的站点配置一般放在 /etc/nginx/sites-available/ 目录下。新建一个配置文件,例如 demo.conf:
server {
listen 80;
server_name example.com;
root /var/www/demo;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
创建站点目录并放一个测试页面:
mkdir -p /var/www/demo
echo "<h1>Hello Huawei Cloud ECS</h1>" > /var/www/demo/index.html
启用配置并检查语法:
ln -s /etc/nginx/sites-available/demo.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
nginx -t 通过后,再 reload 才不会把线上服务搞挂。这个习惯建议从第一次配置就养成。
四、配置 HTTPS
HTTPS 证书有两种常见做法:
方式一:Let’s Encrypt 免费证书
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com
certbot 会自动修改 Nginx 配置、申请证书并设置定时续期,对个人站点来说非常省事。
方式二:华为云 SSL 证书管理服务
在华为云控制台申请或上传证书后,下载 Nginx 格式的证书文件,放到服务器上并在配置中引用:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
root /var/www/demo;
index index.html;
}
配置完成后同样先 nginx -t,再 systemctl reload nginx。
五、验证结果
- 浏览器访问
https://example.com,地址栏出现小锁图标; - 使用命令验证响应头:
curl -I https://example.com
- 测试 HTTP 是否自动跳转到 HTTPS。如果没有,可以在 80 端口的 server 块里加一行:
return 301 https://$host$request_uri;
六、几个常见问题
Q1:网站打不开,但 Nginx 状态正常?
优先检查安全组和本机防火墙,其次确认域名解析是否生效。
Q2:80 能访问,443 不通?
大概率是安全组没有放行 443,或者 Nginx 没有监听 443。
Q3:证书快过期了怎么办?
certbot 安装时会自动创建续期任务,可以用 certbot renew --dry-run 测试续期流程。
Q4:改完配置不生效?
先 nginx -t 检查语法,再 systemctl reload nginx;不要直接 restart,reload 对线上业务更友好。
总结
本文从实例准备、安全组配置,到 Nginx 安装、站点配置和 HTTPS 上线,完整走了一遍云服务器建站流程。对于个人博客、测试环境或内部工具来说,这套流程已经足够使用。
如果是生产环境,建议再补充几件事:日志轮转、访问监控、定期快照备份,以及最小化开放安全组端口。这些内容后续可以单独写一篇实践记录。
- 点赞
- 收藏
- 关注作者
评论(0)