Proxy reverso Nginx HTTPS para o backend HTTP IIS

2

Eu tenho o aplicativo ASP.NET hospedado no IIS de back-end (Windows Server 2012 R2) e o Debian com o Nginx aberto para público com certificados SSL e assim por diante.

Nginx proxying solicitação http://myexample.com para backend HTTP sem nenhum problema com config:

server {
       listen 80;
       server_name my.example.com

       location / {
                  proxy_pass http://backend:1234;
       }
}

Mas quando eu tento https://my.example.com - o navegador da web recebe o link https://my.example.com/Login.aspx (que está correto) e, em seguida, 404 Not Found.

Configuração de HTTPS Nginx (eu tentei com linhas comentadas também, mas ainda 404):

server {
       listen 443 ssl http2;
       server_name my.example.com

       -- SSL part ---

       location = / {
                    proxy_pass http://backend:1234;

                    #proxy_set_header Host $host;
                    #proxy_set_header X-Real-IP $remote_addr;
                    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    #proxy_set_header X-Forwarded-Proto $scheme;
                    #proxy_redirect http:// $scheme://;
        }
 }

Log Nginx mostra isso:

[error] 27936#27936: 1* open() "/etc/nginx/html/Login.aspx" (2: No such file or directory), client: IP, server: my.example.com, request: "GET /Login.aspx HTTP/2.0", host: "my.example.com"

Por que o proxy Nginx não está enviando solicitações GET para o servidor back-end?

    
por Pkej 07.09.2016 / 07:05

1 resposta

3

Você deve usar:

location / {
    ...
}

Ou seja, sem o = . A sintaxe location = corresponde apenas a um único URI.

Veja este documento para detalhes.

    
por 07.09.2016 / 09:45