华为云ECS企业网站从零到上线完整落地教程:LNMP环境搭建+域名解析+SSL部署+自动备份全套方案
一、前言:为什么选择华为云ECS搭建企业网站
在数字化转型的浪潮中,企业网站的稳定性和安全性直接关系到业务的可信度与用户体验。华为云弹性云服务器(ECS)凭借其高可用性、灵活配置和强大的生态支持,成为众多企业搭建官方网站、电商平台和内容管理系统的首选基础设施。LNMP架构——即Linux、Nginx、MySQL和PHP的组合——以其高性能、低资源消耗和高并发处理能力,在Web服务器领域占据重要地位。
本文旨在提供一份从零到上线的完整落地教程,涵盖ECS云服务器选购与登录、LNMP环境手工搭建、域名解析配置、SSL证书部署实现HTTPS加密访问,以及基于华为云云备份服务的自动备份策略。无论您是初次接触云服务器的技术新手,还是希望系统化梳理部署流程的运维人员,本文都将为您提供清晰、可操作的全套方案。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
二、ECS云服务器选购与登录准备
2.1 选购ECS实例的核心参数
在华为云控制台购买ECS时,需要根据网站预期访问量和业务类型选择合适的配置。对于大多数中小企业网站,以下配置可满足日常运营需求:
- 计费模式:按需计费适合短期测试或流量波动较大的场景;包年包月适合长期稳定运行的业务,单位成本更低。
- 可用区:选择靠近目标用户群体的区域,可降低网络延迟。
- 规格:入门级推荐s6.large.2(2核4GB)或s6.large.4(2核8GB),中型业务可选择更高规格。
- 镜像:本文以Huawei Cloud EulerOS 2.0 64bit为例,该镜像是华为云自研操作系统,对云环境有深度优化。也可选择CentOS 7.2/7.4/8.0或Ubuntu 20.04等主流Linux发行版。
- 系统盘:建议至少40GB,可根据网站数据量适当扩容。
- 弹性公网IP:选择"现在购买",线路推荐全动态BGP,带宽按流量计费更加灵活。
2.2 安全组规则配置
安全组是ECS的虚拟防火墙,用于控制出入云服务器的网络流量。搭建Web网站必须放通以下端口:
- TCP 22:SSH远程登录端口
- TCP 80:HTTP网站访问端口
- TCP 443:HTTPS加密访问端口
在华为云控制台进入"虚拟私有云 > 安全组",选择ECS所属的安全组,添加入方向规则:协议端口填写"TCP:80"和"TCP:443",源地址设置为"0.0.0.0/0"(允许所有IP访问)。为提升安全性,建议将SSH端口的源地址限制为办公网络的IP范围。
2.3 登录ECS云服务器
ECS创建成功后,可通过多种方式远程登录。推荐使用密钥对登录,安全性高于密码登录。在ECS控制台选择"远程登录",或使用本地SSH客户端(如PuTTY、Xshell、Terminal)执行以下命令:
ssh -i /path/to/private-key.pem root@服务器公网IP首次登录后,建议立即更新系统软件包并切换至华为云镜像源,以加快软件安装速度:
yum update -y三、LNMP环境手工搭建全流程
LNMP环境是运行PHP动态网站的基础架构。以下步骤以Huawei Cloud EulerOS 2.0 64bit系统为例,逐项完成Nginx、MySQL和PHP的安装与配置。
3.1 安装Nginx Web服务器
Nginx是一款高性能的HTTP服务器和反向代理服务器,以事件驱动架构著称,能够高效处理大量并发连接。
步骤1:安装Nginx
yum -y install nginx执行后系统将自动从华为云镜像源下载并安装Nginx。
步骤2:验证安装版本
nginx -v正常回显类似:nginx version: nginx/1.21.5。
步骤3:启动Nginx并设置开机自启
systemctl start nginx
systemctl enable nginx步骤4:检查运行状态
systemctl status nginx.service状态显示为"active (running)"即表示Nginx已正常运行。
步骤5:浏览器访问测试
在浏览器地址栏输入 http://服务器公网IP,看到Nginx默认欢迎页即表示安装成功。
3.2 安装MySQL数据库
MySQL是全球最流行的开源关系型数据库,用于存储网站的结构化数据。
步骤1:安装MySQL
在Huawei Cloud EulerOS 2.0中,可通过以下方式安装:
mkdir -p /root/mysql-server
cd /root/mysql-server
wget https://repo.huaweicloud.com/hce/2.0/os/x86_64/Packages/mysql-8.0.28-1.hce2.x86_64.rpm
yum install -y mysql-server在CentOS系统中,可使用 yum -y install mysql-server 直接安装。
步骤2:启动MySQL并设置开机自启
systemctl start mysqld
systemctl enable mysqld步骤3:查看运行状态
systemctl status mysqld.service步骤4:执行MySQL安全加固
mysql_secure_installation该脚本会引导您完成以下安全设置:设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库、重新加载权限表。请务必执行此步骤,这是保障数据库安全的基本操作。
步骤5:登录MySQL验证
mysql -u root -p输入刚设置的root密码,进入MySQL命令行界面即表示安装成功。
3.3 安装PHP及必要扩展
PHP是一种开源的服务器端脚本语言,专门用于Web开发,WordPress、Discuz!、Laravel等主流建站系统均基于PHP运行。
步骤1:安装PHP及常用扩展
yum -y install php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json php-curl php-zip- php:PHP核心
- php-fpm:PHP FastCGI进程管理器,负责处理Nginx转发的PHP请求
- php-mysqlnd:MySQL数据库驱动
- php-gd:图形处理库
- php-xml:XML解析支持
- php-mbstring:多字节字符串支持
- php-json:JSON数据处理
- php-curl:URL请求库
- php-zip:ZIP压缩支持
步骤2:验证PHP版本
php -v步骤3:启动php-fpm并设置开机自启
systemctl start php-fpm
systemctl enable php-fpm3.4 配置Nginx支持PHP解析
这是LNMP环境搭建中最关键的步骤——让Nginx能够将PHP请求转发给php-fpm处理。
步骤1:编辑Nginx配置文件
vi /etc/nginx/nginx.conf步骤2:配置server块支持PHP
在 http 块内找到或新建 server 块,修改以下关键配置:
server {
listen 80;
server_name 你的域名;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}- root:网站文件存放目录,可根据需要修改
- index:默认首页文件顺序
- location ~ \.php$:匹配所有以.php结尾的请求,转发至php-fpm(默认监听127.0.0.1:9000)
步骤3:创建网站根目录并设置权限
mkdir -p /var/www/html
chown -R nginx:nginx /var/www/html步骤4:创建PHP测试文件
echo "<?php phpinfo(); ?>" > /var/www/html/index.php步骤5:重新加载Nginx配置
nginx -t # 检查配置文件语法是否正确
systemctl reload nginx步骤6:浏览器访问测试
访问 http://服务器公网IP/index.php,看到PHP信息页面即表示LNMP环境搭建成功。
四、域名解析配置
域名是用户访问网站的门牌号。完成LNMP环境搭建后,需要将域名解析到ECS的公网IP地址,才能通过域名访问网站。
4.1 添加域名至华为云云解析服务
步骤1:登录华为云控制台,进入"网络 > 云解析服务 DNS"。
步骤2:创建公网域名
在左侧导航栏选择"公网域名",点击"创建公网域名",输入您在域名注册商处购买的域名(如 example.com),将域名添加至华为云云解析服务。
步骤3:验证DNS服务器地址
添加域名后,检查域名当前的DNS服务器地址是否已指向华为云DNS服务器。如未指向,需在域名注册商处修改DNS服务器为华为云提供的地址。
4.2 添加A记录解析
A记录用于将域名指向一个IPv4地址,是网站域名解析的基础配置。
操作步骤:
- 在公网域名列表页面,点击待配置域名所在行的"管理解析"。
- 点击"添加记录集"。
- 配置参数如下:
- 记录类型:A
- 主机记录:如需解析主域名(如 example.com),留空即可;如需解析子域名(如 www.example.com),填写 "www"
- 线路类型:全网默认
- 记录值:填写ECS绑定的弹性公网IP地址
- TTL:默认即可(通常为300秒)
- 点击"确定",等待解析生效(通常几分钟至几十分钟)。
解析生效后,即可通过域名访问网站。如需添加多个子域名(如 blog.example.com、shop.example.com),重复上述步骤添加对应的A记录即可。
五、SSL证书部署与HTTPS配置
HTTPS通过SSL/TLS协议对传输数据进行加密,防止数据在传输过程中被窃取或篡改。搜索引擎也将HTTPS作为排名因素,部署SSL证书已成为企业网站的标配。
5.1 申请SSL证书
步骤1:登录华为云控制台,进入"安全与合规 > 云证书管理服务 CCM"。
步骤2:购买证书
点击"购买证书",选择合适的证书类型:
- DV(域名验证型)证书:仅验证域名所有权,适合个人网站或测试环境,部分厂商提供免费DV证书。
- OV(组织验证型)证书:验证企业身份,适合企业官网、电商平台等商业网站。
- EV(扩展验证型)证书:最高级别验证,浏览器地址栏显示企业名称,适合金融、政府等高安全需求场景。
步骤3:提交证书申请
购买成功后,选择证书点击"申请证书",填写域名信息(绑定需要保护的域名),选择"系统生成CSR"(推荐)。
步骤4:完成域名验证
CA机构会要求验证您对域名的所有权,通常通过DNS添加TXT记录或邮箱验证等方式完成。按照提示操作即可。
步骤5:下载证书
证书签发后,点击"下载证书"。下载时证书格式选择 PEM(适用于Nginx和SLB) 或证书类型选择 Nginx。解压下载的ZIP包,会得到两个关键文件:
- xxx_server.crt 或 fullchain.pem:证书文件
- xxx_server.key 或 privkey.pem:私钥文件
5.2 在Nginx中部署SSL证书
步骤1:上传证书文件到服务器
使用SCP或SFTP工具将证书文件和私钥文件上传到ECS服务器,建议存放于 /etc/nginx/ssl/ 目录:
mkdir -p /etc/nginx/ssl
# 将证书文件上传至该目录步骤2:编辑Nginx配置文件添加HTTPS支持
vi /etc/nginx/nginx.conf在 http 块内添加或修改 server 块,配置如下:
server {
listen 443 ssl http2;
server_name 你的域名;
root /var/www/html;
index index.php index.html index.htm;
ssl_certificate /etc/nginx/ssl/xxx_server.crt;
ssl_certificate_key /etc/nginx/ssl/xxx_server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# HTTP自动跳转HTTPS
server {
listen 80;
server_name 你的域名;
return 301 https://$server_name$request_uri;
}- ssl_certificate:指定证书文件路径
- ssl_certificate_key:指定私钥文件路径
- ssl_protocols:启用TLSv1.2和TLSv1.3,禁用不安全的旧协议
- return 301:将HTTP请求永久重定向到HTTPS,确保所有访问都经过加密
步骤3:检查配置并重新加载Nginx
nginx -t
systemctl reload nginx步骤4:验证HTTPS访问
在浏览器访问 https://你的域名,地址栏显示小锁图标即表示SSL证书部署成功。
六、自动备份策略配置
数据是企业的核心资产,定期备份是防范数据丢失的最后一道防线。华为云云备份服务(CBR)支持对ECS进行全量或增量备份,并可配置自动备份策略。
6.1 创建备份存储库
步骤1:登录华为云控制台,进入"存储 > 云备份 CBR"。
步骤2:创建存储库
点击"创建存储库",配置以下参数:
- 名称:自定义(如 web-backup-vault)
- 保护类型:选择"云服务器"
- 容量:根据数据量设置,建议为系统盘和数据盘总容量的1.5倍以上
- 绑定服务器:选择需要备份的ECS实例
6.2 配置自动备份策略
步骤1:创建备份策略
在云备份控制台,进入"策略"页面,点击"创建策略"。
步骤2:设置策略参数:
- 策略名称:如 daily-website-backup
- 备份周期:建议每日备份(如每天凌晨2:00执行,避开业务高峰期)
- 保留规则:建议保留最近7-30天的备份,可根据数据重要性调整
- 备份类型:推荐"增量备份",节省存储空间和备份时间
步骤3:将策略绑定至存储库
在存储库详情页,点击"绑定策略",选择刚创建的备份策略。绑定后,云备份服务将按照策略自动执行备份任务。
6.3 手动备份与恢复验证
除自动备份外,建议在重大更新(如系统升级、应用部署)前手动执行一次全量备份。
手动备份操作:
- 进入ECS控制台,选择目标云服务器
- 点击"更多 > 磁盘/备份 > 创建云服务器备份"
- 选择备份存储库,点击"确定"即可
数据恢复操作:
- 进入云备份控制台,选择"备份副本"
- 找到需要恢复的备份点,点击"恢复"
- 选择恢复目标(原服务器或新服务器),确认后执行恢复
6.4 网站文件与数据库的增量备份脚本(可选)
除了使用云备份服务进行整机备份外,对于网站文件和数据库,也可以编写Shell脚本实现更细粒度的增量备份。以下是一个简单的备份脚本示例,可根据实际需求扩展:
#!/bin/bash
# 网站文件与数据库备份脚本
# 建议配置为每日定时任务(cron)执行
BACKUP_DIR="/backup/website"
DATE=$(date +%Y%m%d_%H%M%S)
WWW_ROOT="/var/www/html"
DB_NAME="your_database"
DB_USER="your_db_user"
DB_PASS="your_db_password"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份网站文件(全量,可结合rsync做增量)
tar -czf $BACKUP_DIR/www_$DATE.tar.gz -C $WWW_ROOT .
# 备份数据库
export MYSQL_PWD=$DB_PASS
mysqldump -u $DB_USER $DB_NAME > $BACKUP_DIR/db_$DATE.sql
unset MYSQL_PWD
# 删除7天前的旧备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
echo "Backup completed at $DATE"将脚本保存为 /root/backup.sh,赋予执行权限 chmod +x /root/backup.sh,然后通过 crontab -e 添加定时任务:
0 2 * * * /root/backup.sh这样每天凌晨2点会自动执行备份,并将备份文件保留7天。
七、网站上线后的日常运维建议
网站成功上线后,持续的运维管理同样重要。以下几点建议有助于保障网站的长期稳定运行:
- 定期更新系统与软件:每月执行
yum update -y或apt update && apt upgrade -y安装安全补丁。 - 监控网站访问状态:可利用华为云云监控服务(CES)设置告警规则,当CPU、内存或磁盘使用率过高时及时收到通知。
- 日志管理与分析:定期查看Nginx访问日志(
/var/log/nginx/access.log)和错误日志(/var/log/nginx/error.log),及时发现异常访问或程序错误。 - 定期检查备份恢复:每季度至少执行一次备份恢复演练,确保备份数据可用。
- 安全加固:禁用root远程登录、使用密钥认证、安装fail2ban防御暴力破解。
八、常见问题解答
问1:LNMP环境搭建完成后,访问IP地址显示Nginx欢迎页,但访问index.php显示空白或404,是什么原因?
答:通常是因为Nginx配置文件中PHP解析部分未正确配置。请检查 /etc/nginx/nginx.conf 中是否包含 location ~ \.php$ 配置块,并确认 fastcgi_pass 指向的地址和端口(127.0.0.1:9000)与php-fpm监听配置一致。修改配置后务必执行 nginx -t 检查语法,再 systemctl reload nginx 重新加载。
问2:域名解析添加A记录后,为什么还是无法通过域名访问网站?
答:首先确认域名DNS服务器是否已修改为华为云DNS地址(在域名注册商处修改)。其次,A记录添加后需要一定生效时间(通常几分钟到几十分钟)。可通过 ping 你的域名 检查是否解析到正确的IP地址。如长时间未生效,可尝试清除本地DNS缓存。
问3:SSL证书部署后,浏览器提示"证书不安全"或"连接不是私密连接",如何解决?
答:常见原因包括:证书与域名不匹配(如证书绑定的是 www.example.com 但访问的是 example.com)、证书已过期、证书链不完整。请确认访问的域名与证书绑定的域名完全一致。如果是免费DV证书,部分浏览器可能对证书颁发机构有信任差异,建议更换为知名CA机构签发的证书。
问4:云备份的自动备份策略如何设置最合理?
答:对于企业网站,建议每日凌晨业务低峰期执行一次增量备份,保留最近7天的备份副本。如网站更新频繁(如电商平台每日有订单数据),可增加备份频率至每6小时一次。关键操作(如版本升级)前务必手动执行全量备份。备份存储库容量建议为服务器磁盘总容量的1.5-2倍,以容纳多个备份版本。
问5:网站数据被误删除,如何通过云备份快速恢复?
答:登录华为云控制台,进入"云备份 CBR > 备份副本",找到误删除时间点之前的备份记录,点击"恢复",选择恢复到原ECS或新建ECS。恢复过程中系统会停止服务器(约几分钟),恢复完成后服务器自动重启,数据将回到备份时的状态。建议恢复前先对当前状态做一次备份,以防恢复操作出现意外。
问6:华为云ECS按量计费和包年包月哪个更划算?
答:按量计费适合短期测试、流量波动大或不确定使用周期的场景,灵活性高但单价较贵。包年包月适合长期稳定运行的业务,预付费用可获得较大折扣,单位成本更低。对于企业生产环境网站,建议选择包年包月模式,同时可结合华为云预留实例进一步降低成本。


