AWS EC2换静态IP后WordPress站点无法访问的解决方法
解决AWS EC2静态IP无法访问WordPress的步骤
1. 先搞定EC2网络层面的配置
- 确认弹性IP绑定状态:登录AWS控制台,进入EC2实例列表,选中你的实例,点「操作」->「网络」->「关联弹性IP」,检查是否已经绑定目标静态IP(65.1.84.172)
- 检查安全组规则:找到实例对应的安全组,确保入站规则里允许**80端口(HTTP)**和可选的443端口(HTTPS),来源设为
0.0.0.0/0(允许所有IP访问,按需调整) - 排查网络ACL:如果用了自定义网络ACL,要保证入站规则允许80/443端口的流量,出站规则允许所有返回流量(目标
0.0.0.0/0)
2. 修正Nginx的站点配置
登录EC2实例,编辑WordPress对应的Nginx配置文件(一般在/etc/nginx/sites-available/目录下,比如wordpress.conf):
server { listen 80; server_name 65.1.84.172; # 替换成你的静态IP root /var/www/wordpress; # 这里换成你实际的WordPress根目录 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意PHP版本,比如php7.4-fpm.sock,根据实际情况改 } location ~ /\.ht { deny all; } }
- 保存后先验证配置是否合法:
sudo nginx -t - 验证通过后重启Nginx:
sudo systemctl restart nginx
3. 更新WordPress内部的站点URL
WordPress会把旧的动态IP存在配置里,必须改成新的静态IP,两种方法任选:
方法1:直接改wp-config.php
找到WordPress根目录下的wp-config.php,打开后添加以下两行:
define('WP_HOME', 'http://65.1.84.172'); define('WP_SITEURL', 'http://65.1.84.172');
保存文件就生效,不用登录后台。
方法2:通过数据库修改
- 登录MySQL:
sudo mysql -u root -p(输入你的数据库密码) - 切换到WordPress数据库:
USE wordpress;(替换成你的实际数据库名) - 更新URL配置:
UPDATE wp_options SET option_value = 'http://65.1.84.172' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'http://65.1.84.172' WHERE option_name = 'home';
注意:如果你的数据库表前缀不是wp_,要换成实际的前缀(比如blog_)。
4. 清理各类缓存
- 浏览器端:强制刷新页面(Ctrl+F5),或者用隐私/无痕窗口访问,避免旧缓存干扰
- WordPress缓存:如果装了缓存插件,能登录后台就直接清插件缓存;不能登录的话,直接删缓存目录:
sudo rm -rf /var/www/wordpress/wp-content/cache - Nginx缓存(如果开了的话):删除Nginx缓存目录(一般是
/var/cache/nginx/),然后重启Nginx。
5. 最后验证连通性
在本地终端用curl测试:curl http://65.1.84.172,看是否能返回WordPress的页面内容
如果curl能访问但浏览器不行,检查本地防火墙或代理;如果curl也失败,看Nginx错误日志排查:sudo tail -f /var/log/nginx/error.log
内容的提问来源于stack exchange,提问作者Akshay Bisht
相关产品推荐
相关产品推荐

