
Recientemente he usado un proxy inverso creado con Nginx en RHEL para mejorar la seguridad de una aplicación web creada con Express. Pero, una vez creado el proxy inverso, en lugar de acceder a la aplicación aparecía una página con un error 502 Bad Gateway. En este caso se puede revisar el log de Nginx para intentar describir cual es el problema, lo que se puede hacer con el siguiente comando
sudo tail -f /var/log/nginx/error.log
Observando que cada vez que se realizaba una petición al proxy aparecía un mensaje de error (13: Permission denied) while connecting to upstream”. Lo que tiene que ver con la configuración por defecto de SELinux en RHEL/CentOS.
La solución de este problema es en realidad sencilla, solamente se tiene que cambiar el valor de la propiedad httpd_can_network_connect
a 1. Permitiendo que el servidor web Nginx se comunique correctamente con las aplicaciones y servicios. El comando para cambiar el valor de este parámetro es
/usr/sbin/setsebool httpd_can_network_connect 1
Ahora se puede reiniciar Nginx y comprobar que este era el único error y ahora la redirección funciona correctamente. Lo que se puede conseguir reiniciando el servicio.
sudo systemctl restart nginx
Si ahora todo funciona de forma correcta, hay que hacer el cambio de la propiedad permanente, en caso contrario el error volverá al reiniciar el servidor. Para esto se tiene que volver a ejecutar el comando setsebool
con la opción -P
.

/usr/sbin/setsebool -P httpd_can_network_connect 1
Con lo que ya se ha resuelto el error “(13: Permission denied) while connecting to upstream” de forma definitiva.
Imagen de Gerd Altmann en Pixabay
Deja una respuesta