Implementar Next.js en un VPS: desde la compilación hasta HTTPS
Implemente una aplicación Next.js en un VPS Linux con un servidor de producción, systemd, un proxy inverso y verificaciones antes de cambiar el tráfico.
Una agencia puede albergar varias demostraciones, un sitio de marketing y una pequeña herramienta interna. Compartir un VPS es una opción cuando decides cómo se dividen los recursos y qué sucede cuando una aplicación recibe un pico de tráfico.
La cantidad de proyectos que un servidor puede alojar no depende de los puertos disponibles. Las rutas, las bases de datos, las compilaciones y los picos superpuestos determinan la capacidad. Esta guía explica cómo organizar y verificar ese intercambio.
Asigne a cada aplicación un directorio de lanzamiento, un proceso supervisado, un puerto local y sus propias variables de entorno. Un proxy inverso compartido selecciona el destino por dominio. Los reinicios deben apuntar a un servicio identificable sin afectar a los demás.
Para diferentes clientes, examine también las cuentas de servicio y los permisos. Los procesos que comparten una cuenta pueden acceder a archivos legibles por esa cuenta. Un puerto separado no es un aislamiento de seguridad. Es posible que se necesiten contenedores o máquinas separadas para el límite requerido.
Esta tabla ilustra una disposición. Reemplace los nombres de ejemplo.com con sus dominios. Los puertos locales no son URL públicas: el navegador se conecta al proxy.
Cada dominio necesita un certificado válido y una configuración adecuada. Verifique enlaces absolutos, devoluciones de llamadas de autenticación y cookies para ese dominio. Compartir un dominio en rutas separadas requiere una configuración de activos y prefijos adicionales. Los subdominios suelen evitar ese acoplamiento.
En pantallas pequeñas, desplace la tabla horizontalmente.
| Solicitud | Dominio | Oyente local |
|---|---|---|
| sitio de marketing | www.ejemplo.com | 127.0.0.1:3101 |
| Manifestación | demo.ejemplo.com | 127.0.0.1:3102 |
| herramienta interna | herramientas.ejemplo.com | 127.0.0.1:3103 |
Registre la carga inactiva, ordinaria y el uso máximo representativo de cada servicio. Agregue servicios compartidos, el sistema operativo y el margen de implementación. Cuente una base de datos compartida una vez en el presupuesto total, con su propio pico.
Luego cargue dos aplicaciones al mismo tiempo. Las pruebas aisladas pueden perder la competencia por CPU, conexiones de disco y de base de datos. Si un equipo presenta demostraciones en horario laboral, los periodos de actividad pueden coincidir.
Construya un presupuesto de memoria a partir de sus mediciones
En un sistema con los controladores necesarios, systemd puede monitorear y restringir un grupo de procesos. En un acceso directo al servicio probado, MemoryHigh introduce presión de recuperación, mientras que MemoryMax establece un límite estricto que puede conducir a la terminación. CPUQuota limita el tiempo CPU.
Este fragmento ilustra la sintaxis. Reemplace los valores después de medir; No se recomienda la talla Next.js. Una aplicación que alcanza su límite puede ralentizarse o fallar, así que inspeccione la latencia, los eventos de memoria y los registros. El límite debe cubrir los procesos secundarios además del padre.
[Service]
MemoryAccounting=yes
MemoryHigh=512M
MemoryMax=768M
CPUQuota=100%Planifique las compilaciones y la limpieza por separado de los procesos activos. Cuando sea posible, incorpore CI compatible e implemente un artefacto verificado. De lo contrario, incluya la compilación en el presupuesto de recursos compartidos y evite costosas compilaciones simultáneas.
Utilice un directorio por versión y verifíquelo antes de cambiar. Las conexiones existentes y los recursos que necesitan las pestañas ya abiertas requieren atención. Las copias de seguridad de las bases de datos permanecen separadas de los archivos de las aplicaciones; pruebe periódicamente la restauración utilizando datos de prueba.
PRNext puede liberar la memoria de los trabajadores inactivos a costa de tener que despertarlos. Eso puede ayudar cuando los períodos de inactividad son prolongados y las visitas iniciales pueden aceptar el retraso. Los sondeos frecuentes o las solicitudes en segundo plano pueden cambiar el comportamiento.
Antes de agregar proyectos, pruebe también los despertares simultáneos. La sonda de memoria publicada por PRNext cubre una pequeña aplicación; no establece un recuento de sitios garantizado. Las bases de datos, el proxy, el sistema y los cachés conservan sus propios requisitos.