My Virtual PBX (My VPBX) is a world revolutionary application that allows you to configure easily and online your own hosted PBX with many features.
Error 500. Error: upstream timed out (110: Connection timed out) while reading response header from upstream, client:... WHMCS
Error 500. Error: upstream timed out (110: Connection timed out) while reading response header from upstream, client:... WHMCS se queda pegado/congelado al enviar email. Error 500 Internal Server Error. Aplicación web Apache.
Acabo de solucionar un problema específico de que cuando trataba de enviar un correo a un usuario en WHMCS se colgaba la página y al final me daba un Error 500 Internal Server Error. Me maté mucho la cabeza tratando de arreglar ésto. Cuando fue a ver el log del servidor Apache http decía:
2019/07/12 03:41:08 [error] 26588#26588: *21820 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 191.102.77.126, server: hosting2.fututel.com, request: "POST /admin/clientsemails.php?userid=1&action=send&type=general HTTP/1.1", upstream: "http://149.56.40.168:8080/admin/clientsemails.php?userid=1&action=send&type=general", host: "hosting2.fututel.com", referrer: "http://hosting2.fututel.com/admin/clientssummary.php?userid=1"
Este mismo error de ...upstream timed out... me aparecía cuando una vez estaba configurando una tienda multistore marketplace y pasaba algo muy similar pero al tratar de guardar o editar un producto, tras lo cual se demoraba mucho en responder y frecuentemente me llevaba al Error 500, y como escribí antes, había el mismo error en el /var/log de Apache. Esa vez no pude saber a ciencia cierta que era, pero se solucionó cuando migré esa aplicación a otro servidor. Esta vez me estaba aconteciendo algo parecido y pues tampoco sabía cómo solucionar.
De nuevo al caso de WHMCS. Para descartar que el problema fuera mi instalación actual de WHMCS, hice una instalación nueva y fresca de WHMCS para ver qué pasaba, y efectivamente SÍ servía el envío de correo por defecto (el que dice changeme). Pero cuando configuré una cuenta SMTP, de nuevo NO FUNCIONÓ lanzando el Error 500, es decir, al parecer el problema no era instalación de WHMCS. Configuré el debug de SMTP colocando la nueva línea: $smtp_debug = true; en el archivo configuration.php de WHMCS pero no me lanzaba ningún error, simplemente se ponía a pensar varios segundos y luego Error 500 Internal Server Error; estaba bastante desconsolado, realmente había tratado varias otras cosas más y nada.
Nótese que la cuenta de email de SMTP que iba a usar en WHMCS era de un dominio y servidor distinto al actual. Como ejemplo para ilustrar el caso: mi WHMCS era hosting.dominio1.com y el correo a usar en SMTP era This email address is being protected from spambots. You need JavaScript enabled to view it. (el correo era de un dominio distinto al de WHMCS). Y pues precisamente a través de este asunto fue que encontré el camino hacia la solución: resultaba que el servidor de WHMCS dominio1 no hacía ping al dominio2 del servidor del correo. Por qué? El dominio2 sí estaba en línea y daba ping desde otros servidores externos, pero el servidor del dominio1 tenía una configuración de resolución DNS específica para el dominio2 que era errónea (mandaba a una IP antigua que ya no era la actual a través de un registro DNS antiguo que guardaba para el dominio2). Pude comprobar que el problema era esta resolución DNS ya que cuando coloqué la IP en vez del dominio2 en la configuración SMTP de WHMCS, la entrega de correo funcionó sin problema. Umm, ¿Habría sido también algún problema de resolución DNS en el caso de la tienda marketplace que hablé en un principio? Me temo que quizás sí. Y pues si tienes un problema con Error 500 y ese log, tal vez también sea lo mismo.
Bueno, pero en nuestro ejemplo, tal vez te estés preguntando que cómo pude solucionar la resolución DNS. La aplicación WHMCS la tenía instalada en un espacio de VestaCP, y éste a su vez tenía dentro de los registros de DNS (menú DNS de VestaCP) un registro DNS tipo A que enviaba el dominio2 a una IP antigua que ya no era la verdadera (había pasado ese dominio2 a otra instalación de VestaCP en otro servidor y la IP real había cambiado también). La solución fue fácil: simplemente borré ese registro DNS antiguo y no actualizado del VestaCP y listo. ¡Ojalá hubiera sabido ésto desde un principio! No sabía que ese registro DNS existía para mal. ¡¡Gracias a Dios finalmente pude dar con el diagnóstico y solución del problema!! Y ojalá te pueda servir esta experiencia a ti también. La próxima vez que experimente un caso similar de demora en cargar + Error 500 + ...upstream timed out... así sea en otro aspecto, es PROBABLE que el problema sea de resolución DNS, y por lo tanto trataré de averiguar primero si los posibles dominios a los cuales haga conexión el servidor hagan ping correctamente o cualquier otro mecanismo que me permita saber que los dominios estén direccionados a las IPs correctas.
Listo, ésto es todo. Espero que les haya servido y gustado el tutorial. Qué Dios los bendiga.