You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx访问异常求助:Flask+EC2部署后安装Certbot出现超时

问题排查:Certbot安装后Nginx反向代理超时(ERR_CONNECTION_TIMED_OUT)

问题背景

在AWS EC2实例部署Flask应用,绑定子域名subdomain.domain.com,应用运行在5001端口。原本Nginx将80端口反向代理至应用一切正常,安装Certbot的Let's Encrypt证书后,无报错提示,但访问域名时出现ERR_CONNECTION_TIMED_OUT。已尝试检查配置、重建证书、重启/重装Nginx等操作,问题仍未解决。

补充信息

  • EC2实例已开放80和5001端口的请求
  • Nginx错误日志仅出现一条"aborting"信息
  • Nginx服务状态显示为活跃
  • 当前未做站点软链接,无法看到Nginx欢迎页,现有Nginx配置:
    server {
        listen 80;
        server_name subdomain.domain.com;
    
        location / {
            include proxy_params;
            proxy_pass http://<aws-private-ip>:5001;
        }
    }
    
  • UFW防火墙处于未激活状态
  • 杀掉所有80/tcp进程并重启Nginx无效
  • 执行nginx -s reload无变化
  • 已查看80端口的netstat plant结果
  • 应用正常运行,可通过subdomain.domain.com:5001访问

排查方向

1. 验证Certbot生成的HTTPS配置是否生效

Certbot安装证书时,通常会自动生成443端口的server块,同时可能修改80端口配置(比如添加HTTP跳转HTTPS规则)。当前仅保留原80端口代理配置,可能存在配置未加载或冲突:

  • 查看/etc/nginx/sites-available/目录下是否存在Certbot生成的配置文件(如subdomain.domain.com-le-ssl.conf)
  • 检查nginx.conf中是否包含include /etc/nginx/sites-enabled/*;(若使用软链接方式),或是否直接引入了sites-available下的文件
  • 执行nginx -t检查配置文件语法,即使服务状态显示活跃,语法错误也可能导致部分配置未加载

2. 检查EC2安全组与网络ACL的443端口权限

Certbot安装后会启用HTTPS(443端口),若安全组或网络ACL未开放该端口,会导致访问超时:

  • 登录AWS控制台,确认EC2实例对应的安全组入站规则允许0.0.0.0/0的443端口(TCP)
  • 检查VPC网络ACL,确认入站、出站规则均允许443端口流量

3. 确认Nginx实际监听端口

执行ss -tulpn | grep nginx(比netstat更直观),验证Nginx是否在监听80和443端口:

  • 若80端口未被监听,说明80端口的server块配置未生效,可能是配置未加载或存在语法错误
  • 若443端口未被监听,说明Certbot生成的HTTPS配置存在问题或未被加载

4. 排查DNS解析有效性

虽然应用可通过域名加端口访问,但DNS解析可能存在缓存或异常:

  • 在本地执行nslookup subdomain.domain.com或dig subdomain.domain.com,确认解析结果为EC2实例的公网IP
  • 清除本地DNS缓存,或切换不同网络测试访问

5. 检查Nginx主配置的默认server块冲突

若nginx.conf中存在默认server块,可能优先匹配导致子域名配置失效:

  • 查看nginx.conf中的server块,确认是否有listen 80 default_server;配置
  • 可在子域名server块中添加listen 80 default_server;(按需),或调整默认server的优先级

6. 查看Certbot安装日志

Certbot安装过程中可能存在隐藏错误,查看日志文件/var/log/letsencrypt/letsencrypt.log:

  • 搜索error或fail关键字,排查是否存在配置文件写入失败、权限不足等问题

7. 验证Nginx权限配置

Nginx进程可能无权限读取配置文件或证书文件:

  • 确认Certbot生成的证书目录(/etc/letsencrypt/live/subdomain.domain.com/)权限,Nginx运行用户(通常为www-data或nginx)需具备读取权限
  • 检查配置文件权限,确保Nginx能读取sites-available或sites-enabled下的文件

内容的提问来源于stack exchange,提问作者P. Frau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:53:18