华为云 ECS 搭建 Nginx 静态站点,三层网络排查踩坑记录
【摘要】 最近在华为云 ECS 上部署静态演示页面,本以为安装 Nginx 就能直接外网访问,结果接连遇到访问超时、403 报错等问题,整理排查思路给新手参考。环境:华为云 ECS,CentOS 系统,用来放前端静态 H5 页面。一、部署流程简述安装 Nginxyum install nginx -ysystemctl start nginxsystemctl enable nginx准备静态资源,放...
最近在华为云 ECS 上部署静态演示页面,本以为安装 Nginx 就能直接外网访问,结果接连遇到访问超时、403 报错等问题,整理排查思路给新手参考。
环境:华为云 ECS,CentOS 系统,用来放前端静态 H5 页面。
一、部署流程简述
- 安装 Nginx
yum install nginx -y
systemctl start nginx
systemctl enable nginx
- 准备静态资源,放到自定义站点目录,修改 nginx.conf 配置,指定 root 网页路径。
- 执行
nginx -t校验配置,校验无误后nginx -s reload重载生效。
二、重点踩坑:三层访问限制(最容易忽略)
很多新手装好 Nginx,本地 curl 127.0.0.1 可以正常返回页面,但是自己电脑浏览器输入公网 IP 打不开。这里要区分三层拦截:
- 华为云安全组(第一层,云上最重要) 安全组是华为云侧的访问控制,和服务器本身防火墙分开。需要在 ECS 实例绑定的安全组,入方向放行 TCP 80 端口,如果后续配置 HTTPS,再加 443 端口。
避坑提醒:SSH 的 22 端口尽量不要全开 0.0.0.0/0,建议只放行自己的本地公网 IP,降低被扫描爆破的风险。
- 服务器系统防火墙(第二层) CentOS 默认 firewalld 可能开启,即使安全组放行,系统内部也会拦截访问。 查看状态命令:
systemctl status firewalld
调试的时候可以临时关闭测试,正式环境建议按需放行端口,不要长期关闭防火墙。
- Nginx 监听配置(第三层) 如果 Nginx 配置里写死监听
127.0.0.1:80,那只能服务器本机访问,外网无法接入,正确写法是listen 80;监听所有网卡。
三、常见报错处理
- 访问 403 Forbidden:大多是网页文件夹权限不足,Nginx 运行用户没有读取权限,给目录授权
chmod -R 755 站点目录。 - SPA 单页应用刷新 404:在 location 配置里增加
try_files $uri $uri/ /index.html;,前端路由刷新问题即可解决。 - 修改配置不生效:先确认
nginx -t没有语法报错,重载服务之后,浏览器清除缓存再测试。
四、收尾小建议
静态站点部署完成后,如果只是临时测试使用,按量计费的实例用完及时释放,避免持续产生费用;正式业务建议搭配 OBS 存储、CDN 加速,提升页面访问速度。
【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,
举报邮箱:cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)