Configure nginx como servidor proxy para kestrel (ASP.Net Core)

Configure nginx como servidor proxy para kestrel (ASP.Net Core)

Estoy intentando configurar un entorno ASP.NET Core para alojar mi aplicación, pero tengo problemas con el servidor web nginx. Cuando intento conectarme a mi dominio aparece 502 Bad Gateway. Nginx debería ejecutarse simplemente como servidor proxy para Kestrel.

AquíHay un enlace a la guía que estoy siguiendo. La configuración es prácticamente la configuración sugerida por Microsoft. Simplemente cambié las variables que son diferentes para cada entorno.

La línea que es un problema está http://aspdotnethost;al final de la configuración de nginx.conf. Cuando lo comento, me redirigen a la ubicación predeterminada de www.

Entonces, ¿cómo funciona realmente la línea y cómo puedo administrarla para redirigir correctamente a localhost:5000?

/etc/nginx/proxy.conf

proxy_redirect          off;
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;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           32 4k;

/etc/nginx/nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    include    /etc/nginx/proxy.conf;
    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
    server_tokens off;

    sendfile on;
    keepalive_timeout 29; # Adjust to the lowest possible value that makes sense for your use case.
    client_body_timeout 10; client_header_timeout 10; send_timeout 10;

    upstream aspdotnethost {
        server localhost:5000;
    }

    server {
        listen *:80;
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://$host$request_uri;
    }

    server {
        listen *:443    ssl;
        server_name     example.com *.example.com;

        #Redirects all traffic
        location / {
            proxy_pass  http://aspdotnethost;
            limit_req   zone=one burst=10;
        }
    }

}

Verificación de configuración de Nginx:

[root@rs-zap353479-1 patrick]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Cuando escribo curl http://localhost:5000, me devuelven el documento html. Entonces ese componente debería encontrarse en mis ojos.

Respuesta1

Como Eugen Rieck publicó como comentario, tuve que agregar un alias /etc/hosts.

Como paso adicional, tengo que especificar el proxy_temp_pathen el proxy.conf, crear esa ruta y asignarla al usuario que ejecuta nginx (en mi caso nginx).

información relacionada