When you have multiserver environment, your web application provisioning can go wrong due to many reasons (app pool timeout etc.) and as a result you can get one WFE works while the other does not.
In my case, some of OOTB virtual directories like _login and _windows were missing on one of my WFE. I don't want to recreate my web application from scratch - and luckily SharePoint provides Provision() and ProvisionGlobally() method.
We ran Provision() on the failed WFE and it fixed all our IIS sites (default and internet zone) in one go.
To do this just open powershell on the WFE:
You can remove the IIS site completely in WFE IIS manager and Provision() will recreate the IIS site for you.
Hope this helps,