如何通过AWS控制台实现单实例模式下的AWS Elastic Beanstalk运行?
AWS Elastic Beanstalk单实例模式控制台部署及访问问题解决
一、创建单实例环境的正确步骤
创建环境时务必避开默认的负载均衡配置,选择单实例模式:
- 进入Elastic Beanstalk控制台,点击「创建应用」,填写应用名称后进入环境配置流程
- 在「环境类型」环节,直接选择单实例(不要选「负载均衡的Web服务器环境」)
- 挑选与你的Web应用匹配的平台(如Node.js、Python、Tomcat等),上传符合平台结构要求的应用包(比如Python需包含requirements.txt,Node.js需包含package.json)
二、关键网络与安全组配置(访问失败核心排查点)
- 安全组规则:找到环境关联的EC2实例,检查其绑定的安全组入站规则,必须开放:
- 80端口(HTTP):来源设为
0.0.0.0/0(或指定允许访问的IP段) - 443端口(HTTPS):同上,若需HTTPS访问则必须配置
- 80端口(HTTP):来源设为
- VPC与公有IP:创建环境时,在「网络」配置模块勾选「分配公有IP」,同时确保实例部署在公有子网内(私有子网无法直接通过公网访问)
三、实例内服务与日志检查
若网络配置无误但仍无法访问,需验证实例内部状态:
- 登录EC2实例(通过控制台「连接」功能或SSH),检查Web服务运行状态:
- Apache:执行
systemctl status httpd - Nginx:执行
systemctl status nginx - 自定义应用(如Node.js):用
ps aux | grep node检查进程是否存活
- Apache:执行
- 查看日志定位问题:
- 直接在Elastic Beanstalk控制台「日志」选项卡下载完整日志包
- 实例内日志路径:
/var/log/nginx/(Nginx日志)、/var/log/httpd/(Apache日志)、/var/log/web.stdout.log(应用运行日志)
四、单实例模式下的HTTPS配置
若需HTTPS访问,需在实例层面完成SSL配置:
- 在AWS Certificate Manager(ACM)申请或导入匹配你域名的证书
- 通过
.ebextensions配置文件修改Web服务器代理规则:
以Nginx为例,创建.ebextensions/nginx-ssl.config,内容示例:files: /etc/nginx/conf.d/ssl.conf: mode: "000644" owner: root group: root content: | server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key /etc/pki/tls/certs/server.key; location / { proxy_pass http://localhost:3000; # 替换为你的应用实际监听端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } - 将ACM证书导出后上传至实例对应路径,同时确保安全组开放443端口入站规则
五、常见故障快速排查清单
- 无法ping通实例:检查安全组是否开放ICMP入站规则,或实例是否部署在公有子网
- HTTP访问超时:验证安全组80端口是否开放,实例内Web服务是否正常监听对应端口
- HTTPS报错(证书无效、连接重置):检查证书域名匹配性、配置文件中的端口转发规则、证书文件路径是否正确
内容的提问来源于stack exchange,提问作者francman
相关产品推荐
相关产品推荐

