安全组设置不影响laravel安装,但决定部署后能否被访问;它作为云服务器虚拟防火墙,仅控制网络连通性,需开放80/443端口供用户访问,ssh端口应限制来源ip,避免数据库端口暴露公网。

安全组设置本身不会影响 Laravel 的安装过程,但会直接决定 Laravel 项目部署后能否被正常访问。
安全组控制的是网络连通性,不是应用运行逻辑
安全组是云服务器的虚拟防火墙,只管“能不能连上”,不管“连上了能不能跑”。Laravel 安装(比如用 composer create-project)是在服务器内部执行的命令,不依赖公网入站规则。只要能 SSH 登录,安装就完全不受安全组影响。
但安装完成后,用户通过浏览器访问你的网站时,请求必须经过安全组放行才能到达 Nginx/Apache —— 这才是关键。
常见导致 Laravel 访问失败的安全组问题
- HTTP/HTTPS 端口未开放:Nginx 默认监听 80(HTTP)或 443(HTTPS),如果安全组没放行这两个端口,浏览器会显示“无法访问此网站”或连接超时
- 误用“放通全部端口”模板:虽然能访问,但存在高风险;应只开放必要端口(80、443、22)
- 数据库端口暴露在公网:MySQL 默认 3306,若为 Laravel 配置了远程数据库且安全组开放了 3306 给 0.0.0.0/0,极易被暴力扫描和攻击
-
开发调试端口未放行:比如用
php artisan serve --host=0.0.0.0 --port=8000临时调试,需手动添加 8000 端口入站规则
推荐的安全组配置组合
-
入站规则:
- 类型:HTTP(端口 80),来源:
0.0.0.0/0(允许所有人访问网站) - 类型:HTTPS(端口 443),来源:
0.0.0.0/0 - 类型:SSH(端口 22),来源:限制为你的固定 IP 或办公网络段(如
203.0.113.50/32),切勿对公网开放
- 类型:HTTP(端口 80),来源:
- 出站规则:通常默认全放行,用于 Composer 更新、邮件发送、第三方 API 调用等
验证是否是安全组问题的快速方法
在浏览器中输入 http://你的服务器IP,如果出现:
- “连接已拒绝”或“连接超时” → 极大概率是安全组没开 80 端口,或 Web 服务根本没启动
- “403 Forbidden”或“404 Not Found” → 安全组已通,问题出在 Web 服务器配置、目录权限或 Laravel 路由上
- 能打开 Nginx 默认欢迎页,但 Laravel 页面报错 → 安全组无问题,专注查 Laravel 部署结构、
public/根目录设置、.env配置等











