Mi experiencia con Plesk

Me gustaría compartir algunas impresiones sobre la necesidad o inutilidad de un panel de control para un proyecto web comercial de un solo servidor con un administrador a tiempo parcial. La historia comenzó hace un par de años, cuando amigos de amigos me pidieron que los ayudara en la compra de un negocio, un sitio de noticias, desde un punto de vista técnico. Era necesario profundizar un poco en qué estaba funcionando, asegurarse de que todos los detalles necesarios se transfirieran en la forma y el volumen adecuados y descubrir estratégicamente qué se podía mejorar.

Mi experiencia con Plesk
El trato se cerró, el violinista ya no era necesario. Fin. No precisamente.

El sitio se ejecutó en una máquina virtual de doble núcleo de 4 GB en Linode, en un Debian5 cubierto de musgo con un tiempo de actividad de 400 días y una lista similar de paquetes no actualizados. Elemento web en un CMS autoescrito, nginx, php5.3 FPM, mysql sintonizado con Percona. En principio funcionó.

Paralelamente a las conversaciones conmigo, el nuevo propietario buscaba un programador para llevar el proyecto a la altura de las expectativas. Encontró. El programador evaluó el tráfico y los volúmenes y decidió que sabía optimizar y gestionar los costes. Migró todo el sitio a un alojamiento compartido de 700 rublos administrado por su IS****er habitual. A los pocos días llegó otra llamada del propietario: “está todo lento y parece que se nos ha roto”. Intenté corregir la situación a través del panel, pero después de un tiempo de intentos infructuosos de cambiar la versión PHP o el controlador de fcgi a fpm, me di por vencido y entré al shell. Allí encontré un debug habilitado que brillaba en todo Internet con la contraseña del músculo, 777 en unas carpetas que en ese momento estaban crackeando con malware y tonterías similares. El propietario se dio cuenta y decidió que estaba mal ahorrar en hosting, un programador y un administrador que pudiera vigilar cómo iban las cosas.

Nos vamos a RuVDS. Un poco más cercano que el Linode británico, y si de repente quieres almacenar datos personales y todo eso, no tendrás que moverte a ningún otro lugar. Dado que se planeó ampliar el proyecto, tomamos una máquina virtual para crecer: 4 núcleos, 8 gigabytes de memoria, 80 GB de disco. No es que no sepa cómo configurar manualmente las configuraciones de nginx, simplemente no tenía el entusiasmo para trabajar en este proyecto de manera tan íntima (ver arriba sobre el tiempo parcial). Por eso instalé Plesk (aquí omitiré los detalles de instalación, porque en general no los hay: inicié el instalador, configuré la contraseña de administrador, ingresé la clave, eso es todo), en ese momento era 17.0. La configuración básica funciona tolerablemente desde el primer momento, existe fail2ban y las últimas versiones disponibles de PHP y nginx. 

Probablemente valga la pena detenerse y explicar por qué. Como rara vez hago este tipo de cosas y no tengo herramientas especiales ni un conjunto de preparativos para cada caso, estaba claro que se necesitaba algún tipo de automatización de las cosas básicas, para que, en primer lugar, sea rápido, en segundo lugar, con seguridad y en tercer lugar. , todas las mejores prácticas alguien ya las ha implementado.

Entonces lo instalé. Ahorré mucho tiempo, reiniciar el sitio en un nuevo servidor fue casi instantáneo. Todo lo que quedaba era editar la configuración muscular, dándole la mitad de la memoria y aumentando el número de grupos de búfer, y darle a nginx la mitad de los núcleos (Plesk no toca las configuraciones globales), y durante un par de días ir al shell para mirar. en las estadísticas de mysqltuner. Sí, y compré ImunifyAV de pago del catálogo de extensiones para deshacerme del malware inundado. Se encontraron unos 11000 archivos infectados. La abominación es que se vertieron fragmentos de código ofuscados en la estática, y limpiarlos a mano habría sido completamente aburrido. Primero probé ClamAV, pero resultó que no se necesitan esas cosas, pero ImunifyAV sí. Además, los archivos desinfectados permanecen en condiciones de funcionar; la pieza que contiene el malware simplemente se elimina.

La aritmética es simple: 50 dólares al mes para VMka, 10 dólares para Plesk (en realidad menos, porque lo compraste por un año inmediatamente con un descuento de dos meses) y 3 dólares para el antivirus. O mucho dinero por mi tiempo, que al principio habría gastado en el servidor, rastrillando estos establos manualmente. El propietario quedó muy satisfecho con este acuerdo.

Mi experiencia con Plesk
Mientras tanto, encontraron un nuevo programador. Acordamos con él la distribución de responsabilidades, creamos un subdominio para la versión de prueba y comenzamos a trabajar. Él estaba cortando una nueva versión del sitio en Laravel y yo estaba mirando fail2ban%).

Mi experiencia con Plesk
Curiosamente, el flujo de curiosos no se detiene y siempre hay alrededor de un centenar de direcciones en la lista de direcciones prohibidas. El efecto es interesante: en particular, normalmente, si inicio sesión en un shell, veo entre 20000 y 30000 intentos fallidos de iniciar sesión a través de SSH en el saludo. Con fail2ban habilitado, alrededor de 70. Esfuerzos invertidos: 0. Desafortunadamente, no fue sin una gota de ungüento. De forma predeterminada, WAF (modsecurity) estaba medio habilitado: en modo de descubrimiento. Es decir, escribió actividad sospechosa en el registro, pero en realidad no tomó ninguna medida. Y fail2ban leyó indiscriminadamente todos los logs, según las cárceles habilitadas, y mató todo lo que se movía. Por lo tanto, prohibimos a la mitad de los editores :D. Tuve que desactivar esta cárcel y poner en la lista blanca las direcciones IP necesarias para mayor confiabilidad. Se invierten esfuerzos: empuja el mouse dos veces y enseña a los editores a decirte tu dirección IP.

Mi experiencia con Plesk
Lo que inmediatamente le gustó al programador fue la posibilidad de cargar bases de datos directamente en el panel y el acceso rápido a phpMyAdmin.

Mi experiencia con Plesk
Lo que me gustó fueron los registros y las copias de seguridad. Los registros se escriben y rotan desde el primer momento; Las copias de seguridad son muy fáciles de configurar. En los momentos más lentos se hace una copia de seguridad completa, de unos 10 gigas, y luego cada día una incremental, de 200 megas cada una, durante una semana. La recuperación es granular, hasta un archivo o base de datos específicos. Si necesita restaurar desde uno incremental, entonces no necesita preocuparse primero por una restauración completa de toda la cadena, Plesk lo hace todo por sí mismo. Puede cargar copias de seguridad en cualquier lugar: FTP, Dropbox, S3 Bucket, Google Drive, etc.

Mi experiencia con Plesk
Día F: el programador finalmente completó el nuevo motor, lo subimos a producción, importamos datos antiguos y nos sentamos a elegir el color de nuestro futuro Maserati. Todavía estamos sentados y eligiendo.

Comenzaron los primeros problemas. Se esperaba que el nuevo sitio fuera más pesado que el anterior, pero el verdadero beneficio fue que para atraer tráfico utilizaron, entre otras cosas, Yandex.Zen, que atrajo a muchos visitantes. El sitio colapsó con 150 conexiones simultáneas (no hablo de RPS, porque no lo midieron). Comenzamos a presionar botones y girar perillas en el área de configuración de php_fpm:
 
Mi experiencia con Plesk
Oye, ya tiene 500 conexiones. A medida que se agregaron las tarjetas de crédito a los medios de promoción, las olas de tráfico se hicieron mayores. El próximo hito son 1000 conexiones simultáneas. Aquí tuvimos que repasar el código y mirar dentro del alma del músculo. Las salpicaduras no ayudaron, pero realmente no lo esperábamos. Habilitamos el registro de consultas lentas, agregamos índices a la base de datos, eliminamos consultas innecesarias del código y una vez más limpiamos la configuración de MySQL de acuerdo con los consejos de mysqltuner.

Nuevo desafío: 2000 conexiones. Acaba de lanzarse la versión de Plesk 17.8, en la que, entre otras cosas, se añadió el almacenamiento en caché nginx. Actualizado (sorprendentemente fácil). Intentemos. ¡Obras! Y luego pisaron el lado blando, el feed Yandex.Zen dejó de funcionar. El sitio está funcionando, el feed no funciona. El feed no funciona, no hay tráfico. El ambiente se está calentando. Presionado por las circunstancias y por falta de imaginación, inmediatamente fui a strace y nginx y encontré lo que buscaba. Resulta que en algún momento el estúpido nginx almacenó en caché el error número 500 perdido como respuesta a Yandex get feed.xml. Se solucionó agregando excepciones a la configuración de caché:

Mi experiencia con Plesk
Está claro que el propietario necesita MÁS, las olas van aumentando poco a poco. Lo estamos haciendo bien por ahora, pero comenzamos a experimentar con Memcached de antemano; afortunadamente, Laravel lo admite casi desde el primer momento. De alguna manera no quería instalar Memcached manualmente solo para "jugar", así que instalé una imagen de Docker. Directamente desde el panel.

Mi experiencia con Plesk
Bueno, está bien, estoy mintiendo, tuve que entrar al shell e instalar el módulo mediante pecl. Tocar el asunto exacto instrucciones. Sobre el aumento del rendimiento todavía no hay nada que decir: no ha habido afluencias suficientemente grandes. El motor del sitio está conectado a localhost:11211, se muestran estadísticas y se está consumiendo memoria. Si te gusta, veremos qué hacer a continuación. O lo dejamos así o colocamos el “real” justo en el Eje. O probemos redis de la misma manera.

Luego fue necesario adjuntar una lista de correo. Sin retransmisiones, sólo autenticación SMTP. Configuro una dirección de correo y uso sus datos para enviar un boletín a través de PHP.

Mi experiencia con Plesk
No hace mucho que se lanzó Plesk Obsidian (18.0), lo actualizamos basándonos en experiencias pasadas sin miedo. Todo salió muy bien, ni siquiera hay nada de qué hablar. Lo bueno es que la calidad de la interfaz ha mejorado mucho, se ha vuelto más moderna y más conveniente en algunos lugares. Lo genial Monitoreo avanzado en Grafana.

Mi experiencia con Plesk
Aún no lo he tratado en detalle, pero puedes, por ejemplo, configurar alertas para cualquier parámetro de tu correo electrónico. Al dueño, jajaja.

Mientras hablo de la interfaz, responde y funciona muy bien en el teléfono. En las primeras etapas, mientras intentábamos encontrar la configuración óptima para PHP y otras cosas, esto nos ayudó mucho. Y especialmente cuando un programador, en un arrebato de entusiasmo por el trabajo, hace algo a las 23:XNUMX, y yo, en un arrebato de entusiasmo por el trabajo, bebo vodka en la casa de baños y necesito cambiar algo URGENTEMENTE.

Mi experiencia con Plesk
Oh por cierto. La imagen muestra que ha aparecido PHP Composer. No hemos jugado con él todavía, pero, digamos, para Laravel, puede ahorrar un par de inicios de sesión de shell y algo de tiempo para instalar dependencias. El mismo sistema existe para Node.JS y Ruby.

Con SSL todo es sencillo. Si el dominio se resuelve como se esperaba, Let's Encrypt se realiza con un solo clic y luego se actualiza solo, tanto para el dominio como para los subdominios e incluso los servicios de correo.

Mi experiencia con Plesk
Plesk en sí como software es actualmente bastante agradable y estable. Se actualiza a sí mismo y a Axis de forma silenciosa, consume pocos recursos y funciona sin problemas. Ni siquiera recuerdo haber pisado algo en alguna parte, lo que habría sido un defecto evidente del producto. Hubo problemas, por supuesto, pero se debieron a una configuración imperfecta o en algún lugar del cruce, por lo que no hay nada de qué quejarse. Las impresiones de trabajar con Plesk son en general agradables. Lo que no tiene, y debemos entenderlo, es cualquier (cualquier) agrupación. Ni LB ni HA. Puedes intentarlo, pero el esfuerzo que supondrá será tanto que es mejor hacer algo diferente desde el principio.

Creo que podemos resumirlo. Para el caso en el que no hay administrador, o no hay suficiente, cuando el precio del alojamiento y los sitios que giran en él excede, bueno, digamos, 100 USD, cuando no estamos hablando de un intercambio bestial de 1500 sitios en un servidor, cuando quien toma las decisiones se enfrenta a la opción de contratar a un administrador a tiempo parcial, o comprar software y tener un administrador por medio dólar, o no tener ninguno, definitivamente tiene sentido. Desde el punto de vista de un administrador remoto, lo mismo. $10 por mes, ahorra tiempo y brinda flexibilidad en el trabajo durante mucho tiempoоuna cantidad mayor. Si, por ejemplo, me piden encarecidamente que tome bajo mi protección un proyecto similar, insistiré en transferirlo a Plesk.

Mi experiencia con Plesk

Fuente: habr.com

Añadir un comentario