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_path
en el proxy.conf
, crear esa ruta y asignarla al usuario que ejecuta nginx (en mi caso nginx
).