Tengo problemas para encontrar documentación útil sobre cómo configurar correctamente un lado de Gatsby que usa SSR (representación del lado del servidor) en un entorno de producción personalizado (no Gatsby Cloud o Netlify)
En su documentación para SSR hay una sección
La representación del lado del servidor requiere un servidor NodeJS en ejecución. Puede poner NodeJS ejecutando gatsby serve detrás de una red de entrega de contenido (CDN) como Fastly, sin embargo, eso también requiere infraestructura adicional (como monitoreo, registro y recuperación de fallas).
Entonces, mi idea general sería poner todo esto dentro de un contenedor Docker y ejecutar gatsby serve
Sin embargo, según la documentación de gatsby serve ( https://www.gatsbyjs.com/docs/reference/gatsby-cli/#serve ), no se supone que se use para producción.
En la raíz de un sitio de Gatsby, sirva la versión de producción de su sitio para realizar pruebas.
¿Está bien usar la producción de servicios? ¿Qué tipo de problemas de seguridad debo tener en cuenta al usarlo? ¿Existe una documentación detallada sobre cómo configurar esto en un entorno personalizado?
No hay documentos sobre el modo SSR en servidores personalizados. Pero, en general, querrá usar algo como Express para servir los archivos estáticos (no gatsby serve) y luego puede mirar gatsby-plugin-netlify y gatsby-plugin-fastify para inspirarse, ya que son compatibles con SSR.
La lógica de SSR de servicio y tiempo de ejecución que tendría que escribir usted mismo usando los complementos que mencioné como inspiración. El marco no maneja el servicio de la aplicación, las plataformas como Gatsby Cloud y Netlify sí lo hacen. O en su caso, un servidor personalizado.
Puede encontrar esto útil https://github.com/wille/gatsby-plugin-express También debe saber que hay muchas maneras muy fáciles de implementar (Gatsby Cloud, Netlify, Vercel) para que no necesite su propio servidor. La razón por la que no puede usar el comando de servicio es cosas como almacenamiento en caché, redireccionamientos, encabezados, etc.