尝试访问 EC2 上的 Web 应用程序时获取 "You don't have permission to access / on this server"

Getting "You don't have permission to access / on this server" when trying to access web Application on EC2

环境:
服务器:AWS EC2-WINDOWS 2012 R2
网络服务器:Apache 2.4.17

简单的 web 应用程序,可以从服务器访问,使用带有 http://localhost/http://127.0.0.1/

的浏览器

但是,当我尝试通过在浏览器中放置我的 ec2 实例 public DNS ('ec2-.compute.amazonaws.com') 从外部(例如,客户端或通过互联网的任何其他机器)访问它时,我得到以下

现在我知道这是网络服务器问题。 EC2 安全规则和 Windows 服务器防火墙已被绕过。问题来自我的 Apache 服务器设置。

我在这里花了很多时间尝试所有可能的解决方案:

WAMP error: Forbidden You don't have permission to access /phpmyadmin/ on this server
Forbidden: You don't have permission to access / on this server, WAMP Error
Error message “Forbidden You don't have permission to access / on this server”
You don't have permission to access / on this server

虽然我没有创建虚拟主机。我需要吗?

我当前的 httpd.conf 具有以下设置:

<Directory "C:/wamp64/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
</Directory>

可能是什么问题?

所以这花了我整个周末的时间才弄清楚。但最终,我在这个 answer 中找到了解决方案。对于一个似乎非常有争议的问题,它就像许多其他高票答案中的一个隐藏的宝藏。

我在这里提供一个适用于我在问题中提到的特定环境的答案。 httpd.conf 文件所需的更改如下:

  1. <Directory .... >改成这样:

    <Directory "C:/wamp64/www/"> Options Indexes FollowSymLinks MultiViews AllowOverride all Require all granted </Directory>

    我的 index.html 文件在 www apache 默认目录下

  2. 这就是我被卡住的地方:在同一个文件中,搜索 # onlineoffline tag - don't remove,在此行下方您会找到 Require local。将其更改为 Require all granted.

  3. 不要忘记重启 Apache 服务器。

    • 虚拟主机无关紧要。您是否使用 Windows 服务器。只要你有一个网站托管,就不需要虚拟主机

    • 托管在 EC2 上无关紧要。由于您收到 Forbidden 回复,您将绕过 EC2 安全组规则和主机服务器防火墙(在本例中为 windows 2012 R2)。响应来自网络服务器。