Container App Not Accepting Http Traffic

Dinesh Nimmagadda 25 Reputation points
2025-03-21T11:43:21.24+00:00

1.Public Access Layer

Public IP/Static with Standard SKU

WAF Policy in Prevention Mode (OWASP 3.2)
  1. Application Gateway Subnet Application Gateway in WAF_v2 SKU with HTTP Listener
  2. Container Apps Subnet Container App Environment
    	Frontend Container (External Ingress Enabled) (5464)
    
    	API Container (Internal Only)(8080)
    

We are experiencing connectivity issues between our Application Gateway and Container App when using HTTP ingress. Specifically:

  1. When the Container App ingress is set to "internal" (which is our security requirement), the Application Gateway health probe fails and marks the backend as unhealthy.
  2. The system works correctly when we change the Container App ingress type to "tcp".
  3. The issue appears to be related to DNS resolution when using HTTP traffic with internal ingress configuration. We have exposed our application on port 5464, as ports 80/443 are being used by default Container App services.

Troubleshooting Steps Already Taken

  1. Confirmed the Container App works correctly with TCP ingress
  2. Verified Application Gateway configuration matches Container App endpoints
  3. Checked NSG rules to ensure traffic is permitted
  4. Confirmed VNet integration is properly configured

Impact

This issue is preventing us from implementing our planned security architecture, forcing us to either:

  1. Expose our Container App publicly (security risk), or Use TCP instead of HTTP (limits our ability to use HTTP-specific features)container
Azure Container Apps
Azure Container Apps
An Azure service that provides a general-purpose, serverless container platform.
620 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Arko 1,895 Reputation points Microsoft External Staff
    2025-03-26T07:38:58.61+00:00

    Hi Dinesh Nimmagadda,

    Ensure a Private DNS Zone is set up for Azure Container Apps internal domain

    Example: privatelink.azurecontainerapps.io

    Link the Private DNS Zone to the Virtual Network where App Gateway lives

    Optional: Deploy a VM or use Azure Bastion in same subnet to verify DNS resolution

    Command: nslookup <your-internal-container-app-name>.azurecontainerapps.io

    In Application Gateway:

    • Create a custom Health Probe
      • Protocol: HTTP
      • Port: 5464 (or your custom exposed port)
      • Path: / (or your app's health endpoint)
      • Host: <internal FQDN of your container app>
      • Interval/Timeout: 30s/20s (or preferred settings)
    • Create a custom HTTP Setting
      • Backend port: 5464
      • Override host header: <internal FQDN of your container app>
      • Use custom probe created above
    • Attach the container app's internal IP or FQDN as a backend pool target

    Final check: Ensure NSG rules allow traffic between App Gateway subnet and Container App subnet on port 5464

    Once all is wired correctly, Application Gateway should see backend as healthy and route traffic successfully. Let me know if any confusion in this.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.