即使 SSH 工作,AWS 公共 DNS 也不会加载

Posted

技术标签:

【中文标题】即使 SSH 工作,AWS 公共 DNS 也不会加载【英文标题】:AWS Public DNS does not load even though SSH works 【发布时间】:2017-01-08 08:26:40 【问题描述】:

我已经设置了一个带有 LAMP 堆栈的 AWS EC2 实例并安装了 Wordpress。

可以通过浏览器通过其公共 DNS 访问我的实例。我登录到 wordpress 管理员并进行了一些更改,一切正常。

然后我添加了一个弹性 IP,现在我无法通过浏览器通过其公共 DNS 访问我的站点。

但是,可以通过 SSH 完全访问服务器。

公共 DNS 是:

[ec2-52-210-2-56.eu-west-1.compute.amazonaws.com][1]

我的安全组如下:

80 tcp 0.0.0.0/0 22 tcp 209.93.74.222/32 443 tcp 0.0.0.0/0

我已删除 EIP。那没什么区别。我已经重新启动并停止并重新启动了实例。那也没什么区别。

我不知道如何解决它?

【问题讨论】:

你能粘贴你设置的apache配置吗 不确定如何获取该信息?我可以使用简单的 SSH 命令吗? 我在设置实例时下载了最新版本的 apache。 httpd24 php56 mysql55-server php56-mysqlnd. 您的数据库是本地数据库还是您使用 RDS? 使用本地数据库而不是 RDS 【参考方案1】:

我刚接触 AWS 时遇到了类似的问题。

我发现您需要执行以下步骤将您的网址重定向到正确的 IP 地址:

您的实例的旧站点 URL 和新站点 URL。当您安装 WordPress 时,旧站点 URL 可能是您的 EC2 实例的公共 DNS 名称。新站点 URL 是您的 EC2 实例的当前公有 DNS 名称。如果您不确定您的旧站点 URL,您可以使用 curl 通过以下命令找到它。

$curl localhost | grep wp-content

您应该会在输出中看到对旧公共 DNS 名称的引用,如下所示(旧站点 URL 为红色):

<script type='text/javascript' src='http://ec2-52-8-139-223.us-west-1.compute.amazonaws.com/wp-content/themes/twentyfifteen/js/functions.js?ver=20150330'></script>


$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

使用以下命令搜索并替换 WordPress 安装中的旧站点 URL。用新旧站点 URL 替换您的 EC2 实例和 WordPress 安装路径(通常是 /var/www/html 或 /var/www/html/blog)。

$ php wp-cli.phar search-replace 'old_site_url' 'new_site_url' --path=/path/to/wordpress/installation --skip-columns=guid

您的网站将得到修复!!! 完成!

注意:但每次更改 IP 时,都需要将 url 更改为新 IP。

【讨论】:

curl localhost | grep wp-content 不打印旧 URL。我只打印: % Total % Received % Xferd 平均速度 时间 时间 当前 Dload 上传总花费 左速度 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --: --:-- 0 你可以在你的 Wordpress 文件夹中找到 wp-content (/var/www/html/wordpress)...尝试手动调整它【参考方案2】:

访问This site can’t be reached Amazon Ec2

我在通过 HTTP 80 端口连接时遇到了 Windows EC2 的问题,并按照以下链接进行操作。

如果您的计算机位于公司网络上,请询问您的网络管理员内部防火墙是否允许来自您计算机的端口 22(Linux 实例)或端口 3389(Windows 实例)的入站和出站流量。

如果您的计算机上有防火墙,请验证它是否允许来自您计算机的端口 22(对于 Linux 实例)或端口 3389(对于 Windows 实例)的入站和出站流量。

或点击链接:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout

检查Windows EC2中的防火墙设置:转到>防火墙设置或属性选择公共配置文件>检查入站连接,如果它是“默认阻止”则更改为“允许”

【讨论】:

以上是关于即使 SSH 工作,AWS 公共 DNS 也不会加载的主要内容,如果未能解决你的问题,请参考以下文章

是否可以为 AWS 公共 DNS EC2 实例设置 SSL

AWS EC2 公共 IP 与私有 IP

带有 PHP SDK 的 AWS EC2 - 等到实例具有公共 DNS 名称

我为AWS EC2实例更改了区域。但我无法从新的IP地址和公共DNS看到一个网站

将 AWS Route 53 DNS 记录静态链接到 EC2 实例

亚马逊 AWS - Windows 实例设置