从零开始:在华为云 ECS 上部署 Nginx 并配置 HTTPS 的完整实践

举报
辣椒酱来了 发表于 2026/10/19 01:39:09 2026/10/19
【摘要】 前言很多开发者第一次接触云服务器,都会遇到一个很实际的问题:服务器买好了,域名也注册了,但网站到底怎么跑起来?从连接服务器、安装软件,到配置域名和 HTTPS,中间每一步都有一些小坑。本文就以在华为云 ECS 上部署一个简单的静态站点为例,把整个过程完整走一遍。看完之后,你应该可以独立完成一台新服务器的建站初始化。 一、准备工作 1. 一台 ECS 实例本文以 Ubuntu 22.04、2...

前言

很多开发者第一次接触云服务器,都会遇到一个很实际的问题:服务器买好了,域名也注册了,但网站到底怎么跑起来?从连接服务器、安装软件,到配置域名和 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。

五、验证结果

  1. 浏览器访问 https://example.com,地址栏出现小锁图标;
  2. 使用命令验证响应头:
curl -I https://example.com
  1. 测试 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 上线,完整走了一遍云服务器建站流程。对于个人博客、测试环境或内部工具来说,这套流程已经足够使用。

如果是生产环境,建议再补充几件事:日志轮转、访问监控、定期快照备份,以及最小化开放安全组端口。这些内容后续可以单独写一篇实践记录。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。