Trabajo en un ISP y cuando el crédito de un usuario es cero, todos los HTTP solicitan NAT a mi servidor web (Apache 2.2) para el pago.
Si el programa de descarga o actualización automática del usuario se está ejecutando, todas esas solicitudes llegan a mi servidor web y esta acción provoca que el 75% de las respuestas de Apache sean 404.
Quiero limitar, almacenar en caché o descartar esos paquetes de solicitudes. ¿Alguien tiene una solución? A nivel de Apache o firewall o router.
Respuesta1
No existen buenas soluciones para este problema: Apache necesita procesar la solicitud para poder presentar el mensaje "¡Paga, tonto!" página. Cualquier cosa que haga que impida que las solicitudes lleguen a Apache tendría que ocurrir en la capa de red, momento en el cual sus usuarios ya no obtendrían la página del portal cautivo y en su lugar llamarían a su servicio de asistencia técnica gritando "¡ESTÁ ROTO!".
Francamente no deberíascuidadoSi el servidor del portal cautivo está consumiendo CPU/RAM/lo que sea, coloque la página de pago en una casilla dedicada y deje que la superen. Las personas que lo utilizan son vagabundos y si tienen que recargar un par de veces para obtener la página de pago, que así sea.
Además, su servidor de pagos probablemente no debería devolver archivos 404.alguna vez-- Debería mostrar la página de pago para cualquier solicitud que reciba, independientemente de la URL...
Respuesta2
pocas opciones:
use nginx u otro servidor http 'ligero' con configuración general
utilice la limitación de velocidad basada en iptables por IP de origen [palabras clave para Google: iptables hashlimit] y rechace o elimine silenciosamente el porcentaje de solicitudes no deseadas y pase solo unas pocas.