title: AWS Application ELB Target Group Unhealthy 403?
body: <p>I am trying to figure out why my ELB Target Group is not passing the health check and throwing a 403 (Forbidden) error. Details are:</p>
  
  <ul>
  <li>AWS Windows 10 Server</li>
  <li>WampServer3 for Apache, PHP, and MySQL</li>
  <li>Application Elastic Load Balancer</li>
  </ul>
  
  <p>I have my ALB Target Group Health Check Setup like so</p>
  
  <ul>
  <li>Protocol: HTTP</li>
  <li>Path: /folder1/folder2/public/index.php</li>
  <li>Port: traffic port</li>
  <li>Default threshold and timeouts</li>
  </ul>
  
  <p>In my Security Group I have port 80, 443, and 22 open for inbound traffic.</p>
  
  <p>Because it is throwing a 403 (Forbidden) error, I have to assume that the health check "Path" is not setup correctly. </p>
  
  <p>I am using wamp so my default path is <strong>c:/wamp64/www</strong> so naturally I first set up my path to be directed to the homepage of my website (which I am able to access from the web just fine) but the health check still fails and shows the 403 error.</p>
  
  <p>I even tried entering a path that doesn't exist to see if it would throw a different error but it just shows the 403 when hovering over the "i" next to the unhealth tag so I am not even sure the health check is updating. </p>
  
  <p><strong>Edit</strong></p>
  
  <p>Ok, after going through the resource that was given below, I have successfully pulled the "<strong>PrivateIP</strong>/index.php" page in cURL. </p>
  
  <p>I have changed my Target Group Health Check Path to "/index.php" but it is still throwing the 403 error. </p>
  
  <p>I am even able to access the homepage of my website publicly from the PrivateIP which seems unsafe but makes me wonder why it is still failing. Below is my setting to allow this in the httpd-vhosts.conf file. </p>
  
  <pre><code>&lt;VirtualHost *:80&gt;
  ServerName website.com
  ServerAlias xx.xx.xxx.xxx
  DocumentRoot c:/wamp64/www/x/x/public/
  &lt;Directory  "c:/wamp64/www/x/x/public/"&gt;
      Options +Indexes +Includes +FollowSymLinks +MultiViews
      AllowOverride All
      Require all granted
  &lt;/Directory&gt;
  </code></pre>
  
  <p></p>
  
  <p>The server alias is the private IP set by the Elastic IP on my instance.</p>
  
  <p>If anyone has an idea on what to check next please let me know. </p>