Not able to access the container app via UI:Azure - azure

I created the Container App where i would like to access from its website using host url
My container app into the vnet and it is having specific resource groups and and it contains specific NSG rules
Also, I have created and configured the private DNS zone in which I create a Virtual Network Link associated to VNET,
than I added a dns record set with name *.[same container app address] and container app ip address
When i tied to access the container app using app url i am not able to access it is showing the below error
{"statusCode":404,"message":"Cannot GET /","error":"Not Found"}
when i close ad reopen the url again got one more error
I deleted entire app and created newly got the one more error
Any help will be needed, Thankyou.

I tried to check same in my environment and got the below results
I created the virtual network with subnets
After that created the container app environment
If I check the application URL in the browser I am not able to access because I did not set the private dns zone record set
created the private dns zone and linked with the virtual network
I have added the dns record with container IP address to access the web
When I check in the command prompt I am able to see the that my container app URL is working
nslookup app-container.icycliff-187ffXXXXXXXXX.io
When check in the browser using app URL I am able to get application
NOTE:
1). After creating private dns zone must add the dns record with container app static IP address
2). 404 error message when website content has been removed or moved to another url
3). server responsible for the website is not running or the connection is broken

Related

App Service Private Endpoint with Custom Domains gives Error 403 - Forbidden

I'm on the last stage of my journey to try and lock down public access to app. After a bunch of research I decided on using "Private Endpoints" so that only when on work VPN can we access apps. I did manage to get this to work however when I setup custom domains in the VNet it no longer works. I've looked at countless resources and even hit second page of Google a few times...
Basic Setup
I have setup a VM and an out of the box Node App Service in Azure. Both are accessible publicly. I have setup Private endpoints for the appservice and put both on the same VNet. The VM can reach the app nicely, and publicly I can't (yay!)
Here's what I see:
here's my VNet DNS settings
here's the app working on a VM on the VNet.
When it doesn't work
So the above works - but I want to supply my own DNS servers so I can resolve stuff on our internal network which is peered to the VNet. All I do is update the DNS settings to include my custom ones and the Amazon one (just in case)
Now I get a 403 - Forbidden as if I'm accessing it externally:
Several of the tutorials mentioned updating the host file as a test (vs updating internal DNS). I believe I did this like they were showing - but same result
I'm near giving up and using a separate VNet for Inbound/Outbound since I only need the custom DNS on the outbound.
Random Resources
https://www.youtube.com/watch?v=8Zof54j8qWk&ab_channel=WintellectNOW
https://learn.microsoft.com/en-us/azure/private-link/create-private-endpoint-portal#create-a-private-endpoint
https://learn.microsoft.com/en-us/azure/app-service/networking-features#private-endpoint
https://learn.microsoft.com/en-us/azure/app-service/networking/private-endpoint
https://learn.microsoft.com/en-us/answers/questions/264747/azure-app-service-with-private-endpoint-throws-403.html
https://learn.microsoft.com/en-us/answers/questions/11844/403-forbidden-access-is-denied.html
After azure publish my domain gives 403 error
Azure App Service Deploy returns (403) Forbidden with IP restriction
WebApp private endpoint azure vpn
Azure API Management with custom domain getting HTTP 403 error
Periodically getting 403 IP Forbidden on App Service with private endpoint
Your internal DNS should forward .azurewebsites.net zone to DNS Forwarder in Azure which then would resolve to private endpoint IP address using default Azure DNS address - 168.63.129.16.
Private Links can only be resolved from Azure (via Virtual Network Link between private DNS zone and virtual network) so without conditional DNS forwarder configured for your internal DNS, it resolves address using public DNS and that's why it doesn't work.
Take a look here at the second example (with own internal DNS server) - https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns#on-premises-workloads-using-a-dns-forwarder

APIM unable to connect to service deployed in AKS

We have private AKS cluster create under a virtual network (MC resource group). We also have an APIM crated under the same virtual network. A few services are deployed in K8 and exposed via internal loadbalancer of K8. when we do kubectl get svc get a cluster IP and an external IP.
I've used the external IP to connect to APIM. but its failing with the following error
Unable to download specified file. Please ensure the URL is valid and the file is publicly accessible.
The error of unable to download ... might be from the URL of the IP address, because when the field is filled with a azure blob storage url, no errors should come.
I think you can try to add api instance by uploading json file from localhost.
In the Network Security Groups, you should also add a new Inbound Security Rule.
Change the label in the Source service tag by selecting Service Tag from the dropdown menu that appears. There is an option for ApiManagement in this dropdown.
You must select an IP address from the drop-down list and type the API Management Service's IP address.
For more information to resolve this error, refer here and also this SO Thread.

Azure DNS zone record not resolving to specified IP from App service to Virtual Machine

I followed the documentation guide here to configure an Azure DNS zone for a virtual network.
I then created a virtual machine on that virtual network and provisioned a virtual network gateway to allow my Azure web apps to communicate with the virtual machine using VNet integration. My web apps are then able to resolve against the virtual machines private IP as expected.
I then created an 'A' type record set within the DNS zone resolving a service name against the private IP of the virtual machine just like here.
However, when I then attempt to access the DNS configured service name that should resolve against the private IP address of the virtual machine, I get the following error:
curl: (6) Could not resolve host: xxxx.local
Am I missing something obvious here?
I can not reproduce this error following your steps:
Create an Azure VNet with a DNS private zone like private.test.com.
Create a VM and a VPN gateway on that VNet.
Enable VNet integration with my Azure web app service.
My web apps are able to resolve against the virtual machines private IP as expected. This could verify the Azure private DNS zone should work. Then I also create an A record for a custom name against the VM private IP address. Both scenarios work.
You could check if an A record is something like below picture in the private DNS zone.
Then you could verify if curl with http:// or without that, or without the specific port 9200, the error is still the same.
I suggest using SET WEBSITE_DNS_ command. This command will output the current DNS server that is being used by the web app. If the error Environment variable WEBSITE_DNS_ not defined is received, no custom DNS servers are configured for the web app. See more details about networking Related Commands for Azure App Services.

External Facing ASE behind WAF

I have created the External facing ASE with a single Web App. Trying to place a WAF enabled Application Gateway.
I have configure the Application gateway subnet and frontend to Public facing.
To interconnect the WAF with ASE(APP), i have set the target of the App hostname (FQDN) in the Backend pool. After mapping the target, i have verified the backendpool health which states Healthy.
Now i tried to access the Frontend IP and FQDN of Application gateway, i'm getting the below error
"The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."
action taken - Tried without NSG and also allowing NSG in ASE subnet
Need your help, I'm in middle of the Environment setup.
Suspect the hostname resolution is missig and not sure how to overcome this block
"The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."
Every Azure Web App has a collection of host names. A request will be transfer to the dedicated server instance depends on the host name in HTTP request message. If the host name doesn't match one of the host names which configured in Azure portal. The Azure Web App can't be reached.
You could view the default host name in Azure portal.
Since you accessed your Web App by Frontend IP or FQDN of Application gateway, their host names will not match the host name of your Web App.
There are 2 ways to fix it.
To simple test your Application gateway, you could be able to use something like ModHeader Chrome extension to open the public IP address/hostname of the Application Gateway in the browser, and pass in the host name of your Web App you configured on the Web App as a Host Header and the website should come up.
Register a custom domain(For example, abcd.com) in a domain provider(For example, Godaddy). In the DNS setting of your domain, add A record to the IP address of your Application gateway.
After that, you also need to add host name by click add host name button in Azure portal.

How to reroute http requests to another server in node

I have a mobile app that relies on a node.js server hosted on a Microsoft Azure VM. I am currently in the process of creating a new Azure VM that I would like all API directed towards but since I have already released the app on Google Play, users that have already downloaded the app will have code that directs all API calls to the old VM. I would like to add logic to the old VM's server code that reroutes all incoming HTTP requests to go to the new VM and return to the client the response from the new VM even though they are directly sending a request to the old VM server. Essentially, the old VM would act as a middle man. Does anybody know how to do this using Node?
As #yjwong's comment said, if you have an independent domain name to service the old app and bind the hostname of old Azure VM as a CNAME record in DNS, you can change the CNAME record to bind the hostname of new Azure VM to point users using the old app to the new/correct server.
About the CNAME record, please see the Wikipedia entry https://en.wikipedia.org/wiki/CNAME_record.
Otherwise, you can install and use the reverse proxy like Nginx to redirect & rewrite the urls accessed by the old app to the urls of the new/correct server.
Here are some steps below as reference to help doing it.
Install Nginx on the old Azure VM,and enable the module ngx_http_proxy_module.
Configure Nginx as a reverse proxy to redirect the urls from the old app accessing, please refer to the doc of the module ngx_http_proxy_module http://nginx.org/en/docs/http/ngx_http_proxy_module.html or search some related articles with the keywords nginx, reverse proxy, redirect, etc.
Stop the nodejs server on the old Azure VM, and configure the Nginx port as the nodejs port to service the old app.
Restart nginx and test the old app for redirecting.
Note that for the step 2 above, please make sure the two Azure VM (old & new) on the same Azure VNet and use the static private IP address (internal) for the new Azure VM, because the one Azure VM can not be allowed to directly access the public address of the other Azure VM. So you need to set up the remote address of the new/correct server using the private ip address in the reverse proxy.
You can refer to these docs below to set up Azure Virtual Network for the two Azure VMs.
Create a Virtual Network on Azure new portal: https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-create-vnet-arm-pportal/
How to add a static private IP address to an existing VM: https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-static-private-ip-arm-pportal/#how-to-add-a-static-private-ip-address-to-an-existing-vm
If the two Azure VM existed not belong to any VNet, you need to move them into a VNet Subnet without losing your virtual hard disk, please refer to the two docs http://blogs.msdn.com/b/karldb/archive/2013/12/13/moving-an-existing-virtual-machine-into-a-virtual-network-subnet-without-losing-your-virtual-hard-disk-or-your-mind.aspx and http://blogs.technet.com/b/canitpro/archive/2014/06/17/step-by-step-move-a-vm-to-a-different-vnet-on-azure.aspx.

Resources