EC2托管WordPress:域名到EC2的GET请求被拒(net::ERR_CONNECTION_REFUSED)
排查与修复方案
1. 修正WordPress核心站点URL配置
这是问题的根源——WordPress的siteurl和home参数被设置成了EC2公网IP,导致资源路径指向错误。
方式一:修改wp-config.php
登录EC2实例,找到WordPress根目录下的wp-config.php,添加以下代码(替换为你的域名):
define('WP_SITEURL', 'https://你的域名.com'); define('WP_HOME', 'https://你的域名.com');
保存后重启Web服务:
- Apache环境:
sudo systemctl restart httpd - Nginx环境:
sudo systemctl restart nginx
方式二:直接修改数据库(无法登录后台时用)
登录EC2上的MySQL,执行以下SQL(替换数据库名、域名和表前缀):
USE 你的WordPress数据库名; UPDATE wp_options SET option_value = 'https://你的域名.com' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'https://你的域名.com' WHERE option_name = 'home';
注:如果你的表前缀不是wp_,要换成实际前缀
2. 清理各类缓存
修改URL后,旧的IP路径可能还存在缓存里,需要彻底清理:
- 清空WordPress自带缓存(如果有)
- 若使用了缓存插件(如WP Rocket、W3 Total Cache),彻底清空插件缓存
- 用浏览器无痕模式访问测试,避免本地缓存干扰
3. 检查网络配置拦截问题
出现ERR_CONNECTION_REFUSED是因为请求EC2公网IP的HTTPS端口被拦截:
- 检查EC2安全组:允许ALB所在安全组访问EC2的80端口(ALB到EC2走HTTP转发即可,无需EC2开443)
- 检查ALB监听规则:确认443端口的HTTPS请求转发到EC2的80端口,规则配置正确
- 检查EC2本地防火墙(如iptables):确保没有拦截443端口的入站请求
4. 手动修复混合内容(无需依赖插件)
如果修正URL后仍有混合内容问题,需要统一资源路径:
- 检查主题/插件代码,确保用WordPress内置函数生成资源路径(比如
get_template_directory_uri()、plugins_url()),不要硬编码HTTP路径 - 数据库全局替换旧路径(执行前务必备份数据库):
USE 你的WordPress数据库名; UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://你的EC2公网IP', 'https://你的域名.com'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://你的EC2公网IP', 'https://你的域名.com');
5. 验证修复效果
访问域名后打开浏览器控制台,确认所有资源请求都指向https://你的域名.com,没有再请求EC2公网IP的资源,混合内容错误和连接拒绝错误都会消失。
内容的提问来源于stack exchange,提问作者Hakers
相关产品推荐
相关产品推荐

