Azure VM NGINX Plus + Web App leads to 404

对着背影说爱祢 提交于 2021-01-28 21:57:01

问题


I'm working on NGINX Plus setup as a reverse proxy for traffic management and routing on my Azure Cloud Solution.

I'm just getting started and everything works independently, but when I try to use the proxy_pass to route web traffic to a .NET Web App that rests in the cloud, I get 404 errors.

I've tried with an app I've had deployed for a while(a .NET MVC Web App) and also a node express app that is nothing more than the basic offering as a test: http://rpsexpressnodetest.azurewebsites.net/

Each of these runs as expected when I go the directly to them, but then when I enable the pass thru I get a 404 error.

I'm using the following config file for nginx:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    upstream web_rps{
        server rpsexpressnodetest.azurewebsites.net;
}

#    ssl_certificate /etc/nginx/ssl/server.crt;
#    ssl_certificate_key /etc/nginx/ssl/server.key;

#    drop requests with no Host header
#    server{
#       listen 80 default_server;
#       server_name "";
#       return 444;
#    }

server{
    listen *:80;
#       listen *:443 ssl;
    root /usr/share/nginx/html;

    location / {
        proxy_pass http://web_rps;
    }
}

include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

include /etc/nginx/conf.d/*.conf;
}

In any case, if I navigate to http://rpsnginx.cloudapp.net/ (my nginx vm), I always get a 404 web app not found...

Error 404 - Web app not found.

The web app you have attempted to reach is not available in this Microsoft Azure App Service region. This could be due to one of several reasons:

  1. The web app owner has registered a custom domain to point to the Microsoft Azure App Service, but has not yet configured Azure to recognize it. Click here to read more.

  2. The web app owner has moved the web app to a different region, but the DNS cache is still directing to the old IP Address that was used in the previous region. Click here to read more.

If I remove the pass through proxy I get the standard "Welcome to NGINX" index.html file, so the NGINX seems to work just fine too...

I sincerely hope my new(b)ness is causing the issue.

Any assistance would be a great help!


回答1:


First off, big props to NGINX Support for getting back to me as quickly as I could transpose this post from an email I sent them...

More importantly, here is the answer provided by them that worked!

My guess that this is this the source of the problem. Try adding following directive to "location /" block:

proxy_set_header Host rpsexpressnodetest.azurewebsites.net;

Worked like a champ!



来源:https://stackoverflow.com/questions/31549006/azure-vm-nginx-plus-web-app-leads-to-404

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!