Estoy trasladando una instancia existente de Discourse de su ubicación actual a una VM de AWS EC2.
El sitio está detrás de balanceadores de carga de Amazon. Ya he modificado app.yml con las directivas set_real_ip_from apropiadas para que NGINX conozca las IPs del balanceador de carga. Sé que esto funciona porque puedo ver mi IP real cuando compruebo la última IP de mi usuario.
Sin embargo, cuando intento cargar la copia de seguridad de 375 MB del servidor antiguo, el nuevo sitio comienza a emitir errores 429 cuando el archivo está cargado aproximadamente al 35% y el proceso de carga falla. Las cabeceras en las respuestas 429 identifican “discourse-rate-limit-error-code: id_10_secs_limit”.
Me pareció sorprendente. Tenía la ventana de Herramientas de desarrollador de mi navegador abierta en la pestaña “Network” y vi muchos fragmentos pequeños que se cargaban (creo que eran de 5 MB) con bastante rapidez. Tengo una conexión a Internet rápida de 200 Mbps, ¿así que tal vez sea simplemente demasiado rápida para la configuración predeterminada del limitador de velocidad? ¿O tal vez se esperaba que las tareas de administración se realizaran desde una red privada (lo que no es posible con mi configuración de AWS)?
¡Pero espera, hay más! Intenté deshabilitar el limitador de velocidad comentando la línea “templates/web.ratelimited.template.yml” de app.yml y reconstruyendo la aplicación, pero eso no funcionó. Todavía obtuve errores 429 cuando mi archivo estaba cargado aproximadamente al 35%.
Así que, rápidamente agregué las siguientes variables de entorno al archivo app.yml, reconstruí y finalmente pude cargar la copia de seguridad para restaurarla.
DISCOURSE_MAX_REQS_PER_IP_MODE: none
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 1000
Creo que estas son configuraciones del limitador de velocidad, por lo que fue extraño ver algo que respondiera a estas configuraciones cuando supuestamente el limitador de velocidad estaba deshabilitado.
En resumen, me gustaría recibir orientación sobre:
- ¿Debería el limitador de velocidad bloquear las cargas de copias de seguridad de esta manera?
- ¿Por qué no se deshabilitó el limitador de velocidad cuando comenté esa línea y reconstruí la aplicación?
¡Gracias!