华为云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段。安全组默认拒绝所有来自外部的请求,因此必须手动放通上述端口才能正常提供Web服务。
2.3 登录弹性云服务器
ECS创建完成后,可以通过SSH方式远程登录。在控制台获取ECS的弹性公网IP地址,使用以下命令登录:
ssh root@服务器IP地址输入创建ECS时设置的root密码即可完成登录。如果使用密钥对登录,则需指定私钥文件路径。
三、LNMP环境手工搭建
LNMP分别代表Linux、Nginx、MySQL和PHP,是目前主流的网站服务器架构之一,适合运行大型和高并发的网站应用,例如电子商务网站、社交网站、内容管理系统等。以下以Huawei Cloud EulerOS 2.0 64bit为例,详细介绍手工搭建步骤。
3.1 配置华为云镜像源
在开始安装任何软件之前,建议先将系统的软件源更新为华为云开源镜像源。华为云镜像源位于国内,访问速度更快,软件包更新也更及时。
# 备份原有repo文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载华为云镜像源配置(以HCE为例,系统默认已配置)
yum makecache3.2 安装Nginx
Nginx是一个高性能的HTTP和反向代理web服务器,以轻量级和高并发处理能力著称。
步骤1:安装Nginx
sudo yum -y install nginx在Huawei Cloud EulerOS 2.0上执行上述命令即可完成安装。在CentOS 7.2上,可能需要先下载Nginx的yum仓库包:
wget https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx步骤2:验证Nginx版本
nginx -v回显类似如下信息表示安装成功:nginx version: nginx/1.21.5。
步骤3:启动Nginx并设置开机自启
systemctl start nginx
systemctl enable nginx步骤4:查看启动状态
systemctl status nginx.service步骤5:测试访问
使用浏览器访问 "http://服务器IP地址",显示Nginx欢迎页面即说明安装成功。
3.3 安装MySQL
MySQL是一款开源的关系数据库软件,用于存储网站的结构化数据。
步骤1:安装MySQL
在Huawei Cloud EulerOS 2.0上,可以通过以下方式安装:
mkdir mysql-server
cd 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 mysql-server在CentOS 8.0上,可以使用dnf命令安装:
sudo dnf -y install @mysql步骤2:验证MySQL版本
mysql -V步骤3:启动MySQL并设置开机自启
systemctl start mysqld
systemctl enable mysqld步骤4:查看MySQL状态
systemctl status mysqld.service步骤5:安全加固MySQL
执行以下命令并按提示进行安全配置,包括设置root密码、移除匿名用户、禁止root远程登录等:
mysql_secure_installation3.4 安装PHP
PHP是一款开源软件,用于Web开发,负责处理动态页面逻辑。
步骤1:安装PHP及相关扩展
sudo yum -y install php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json步骤2:验证PHP版本
php -v步骤3:启动PHP-FPM并设置开机自启
systemctl start php-fpm
systemctl enable php-fpm3.5 配置Nginx支持PHP解析
修改Nginx配置文件以支持PHP解析:
vim /etc/nginx/nginx.conf在server块中添加以下location配置:
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}配置完成后,测试配置文件语法并重启Nginx:
nginx -t
systemctl restart nginx步骤6:测试PHP解析
在网站根目录创建测试文件:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php浏览器访问 "http://服务器IP地址/info.php",显示PHP信息页面即表示LNMP环境搭建成功。
四、域名解析配置
4.1 添加公网域名
在华为云控制台进入"云解析服务 DNS",点击"创建公网域名",输入您已注册的域名。
4.2 添加A记录
在域名解析列表中点击"添加记录集",配置以下参数:
- 类型:A - 将域名指向IPv4地址
- 主机记录:填写子域名前缀(如www,表示解析www.域名.com;如不填或填@,表示解析主域名)
- 值:填写ECS的弹性公网IP地址
- TTL:默认即可
完成添加后,等待DNS解析生效(通常几分钟到几十分钟)。
4.3 域名备案要求
如果使用中国大陆节点的ECS,域名必须完成ICP备案才能正常访问。请提前在华为云备案中心提交备案申请。
五、SSL证书部署实现HTTPS加密访问
5.1 申请SSL证书
华为云提供免费的DV型SSL证书,适合个人网站或测试环境使用。
步骤1:进入云证书管理服务
登录华为云控制台,进入"安全与合规 > 云证书管理服务"。
步骤2:购买证书
在SSL证书列表页面,点击"购买证书"按钮。选择DV(域名验证型)免费证书。
步骤3:填写域名信息并提交申请
根据提示填写要绑定的域名,完成域名验证(DNS验证或文件验证)。
步骤4:等待签发
证书签发后,在证书列表中点击"下载",选择Nginx格式的证书文件。下载得到两个文件:证书文件(.pem或.crt)和私钥文件(.key)。
5.2 在Nginx上部署SSL证书
步骤1:上传证书文件到服务器
将下载的证书文件和私钥文件上传到服务器的指定目录,例如 /etc/nginx/ssl/。
mkdir -p /etc/nginx/ssl
# 使用scp或SFTP将证书文件上传到该目录步骤2:修改Nginx配置文件
vim /etc/nginx/nginx.conf在server块中添加以下SSL配置:
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/nginx/ssl/your-domain.pem;
ssl_certificate_key /etc/nginx/ssl/your-domain.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}步骤3:配置HTTP自动跳转HTTPS
添加80端口的server块,将所有HTTP请求重定向到HTTPS:
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}步骤4:测试并重启Nginx
nginx -t
systemctl restart nginx步骤5:验证HTTPS访问
浏览器访问 "https://你的域名",地址栏显示安全锁图标即表示SSL证书部署成功。
六、自动备份策略配置
6.1 华为云云备份服务(CBR)配置
华为云云备份服务(Cloud Backup and Recovery,CBR)可自动将ECS的数据定期备份至OBS,实现应用级加存储级双保险。CBR基于磁盘的一致性快照技术工作,能够对ECS进行整机备份。
步骤1:创建备份存储库
登录华为云控制台,进入"云备份 CBR"服务,点击"创建存储库",选择"服务器备份"类型。
步骤2:关联ECS服务器
将目标ECS服务器添加至备份存储库中。
步骤3:配置备份策略
在存储库中绑定备份策略,设置备份周期和保留规则。例如:
- 执行时间:每日凌晨02:00
- 保留规则:保留最近7天的备份
配置完成后,系统将按照策略自动执行备份,无需人工干预。
6.2 MySQL数据库自动备份脚本
除了使用云备份服务进行整机备份外,针对数据库还可以配置更精细的定时备份脚本,将数据库导出为SQL文件并上传至OBS。
创建备份脚本 /opt/backup/mysql_backup.sh:
#!/bin/bash
# MySQL数据库自动备份脚本
# 配置参数
DB_USER="root"
DB_PASSWORD="你的数据库密码"
BACKUP_DIR="/opt/backup/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份所有数据库
mysqldump -u$DB_USER -p$DB_PASSWORD --all-databases > $BACKUP_DIR/all_db_$DATE.sql
# 压缩备份文件
gzip $BACKUP_DIR/all_db_$DATE.sql
# 删除7天前的备份文件
find $BACKUP_DIR -name "*.sql.gz" -mtime +$RETENTION_DAYS -exec rm -f {} \;
echo "MySQL备份完成: $BACKUP_DIR/all_db_$DATE.sql.gz"赋予脚本执行权限:
chmod +x /opt/backup/mysql_backup.sh添加定时任务(每天凌晨2点30分执行):
crontab -e
30 2 * * * /opt/backup/mysql_backup.sh6.3 网站文件自动备份脚本
创建网站文件备份脚本 /opt/backup/website_backup.sh:
#!/bin/bash
# 网站文件自动备份脚本
# 配置参数
WEB_ROOT="/usr/share/nginx/html"
BACKUP_DIR="/opt/backup/website"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
# 创建备份目录
mkdir -p $BACKUP_DIR
# 打包压缩网站文件
tar -czf $BACKUP_DIR/website_$DATE.tar.gz -C $WEB_ROOT .
# 删除7天前的备份文件
find $BACKUP_DIR -name "website_*.tar.gz" -mtime +$RETENTION_DAYS -exec rm -f {} \;
echo "网站文件备份完成: $BACKUP_DIR/website_$DATE.tar.gz"赋予脚本执行权限并添加定时任务:
chmod +x /opt/backup/website_backup.sh
crontab -e
30 3 * * * /opt/backup/website_backup.sh6.4 上传备份至OBS(可选)
为了进一步提高数据安全性,可以将备份文件上传至华为云OBS对象存储服务。安装OBS命令行工具obsutil后,在备份脚本末尾添加上传命令:
# 上传至OBS
/path/to/obsutil cp $BACKUP_DIR/all_db_$DATE.sql.gz obs://your-bucket/backup/mysql/七、安全加固建议
企业网站上线后,建议从以下几个方面加强安全防护:
- 修改默认SSH端口:将22端口修改为其他高位端口,减少暴力破解风险。
- 禁用root远程登录:创建普通用户进行日常操作,需要root权限时使用sudo。
- 定期更新系统与软件:执行
yum update或dnf update及时修复安全漏洞。 - 配置防火墙:除80、443等必要端口外,关闭其他不必要的端口。
- 启用WAF防护:华为云Web应用防火墙可有效防御SQL注入、XSS等常见Web攻击。
八、总结
本文完整介绍了在华为云ECS上搭建企业网站的完整流程:从ECS实例选购、安全组配置,到LNMP环境的手工搭建、域名解析配置,再到SSL证书的申请与部署实现HTTPS加密访问,最后配置了基于CBR云备份服务的自动备份策略以及数据库与网站文件的定时备份脚本。整套方案涵盖了企业网站从零到上线的所有关键环节,读者可根据本文的指引按步骤操作,快速完成企业网站的部署上线。
常见问题解答
问1:华为云ECS的LNMP环境搭建大概需要多长时间?
答:按照本文的步骤操作,从ECS创建到LNMP环境搭建完成,熟练情况下约需30-60分钟。如果是首次操作,建议预留1-2小时,包括阅读文档和排错时间。
问2:华为云的免费SSL证书有效期是多久?
答:华为云提供的免费DV型SSL证书目前有效期为3个月。到期前需要重新申请并部署新的证书。建议在日历中设置提醒,避免证书过期导致网站无法正常访问。
问3:域名解析添加A记录后多久生效?
答:一般情况下,A记录添加后几分钟到几十分钟内生效。具体时间取决于DNS缓存的刷新周期,全球生效可能需要24-48小时。可以通过 ping 你的域名 命令检查解析是否已生效。
问4:CBR云备份和手动脚本备份有什么区别?
答:CBR云备份是基于磁盘快照技术的整机备份,可以恢复整个ECS的系统盘和数据盘,适合灾难恢复场景。手动脚本备份是针对特定数据(如数据库SQL文件、网站源码)的精细化备份,恢复粒度更细。两者可以结合使用,实现更全面的数据保护。
问5:部署SSL证书后网站访问提示"不安全"怎么办?
答:首先检查证书是否已过期;其次确认Nginx配置中证书路径和文件名是否正确;还要检查证书是否与域名匹配(通配符证书可匹配泛域名,单域名证书只能匹配特定域名)。可以使用 openssl s_client -connect your-domain.com:443 命令检查证书详情进行排错。
问6:国内ECS搭建网站必须做ICP备案吗?
答:是的,使用中国大陆节点的ECS搭建网站,域名必须完成ICP备案才能正常访问。如果未备案,华为云会拦截80和443端口的访问流量。备案流程可在华为云备案中心提交,通常需要7-20个工作日。


