maxconn cfg http nginx haproxy http-options-method

http - cfg - Manejo de solicitud OPTIONS en nginx



haproxy option (2)

En la opción httpchk, puede especificar el método HTTP de esta manera:

httpchk GET http://example.com/check.php

También puede usar POST o un URI simple como /. Lo tengo comprobar PHP, ya que PHP se ejecuta de forma externa a Nginx.

Estamos utilizando HAProxy como un equilibrador de carga en este momento, y regularmente realiza solicitudes a las cajas de flujo descendente para asegurarse de que estén activas utilizando una solicitud de OPCIONES:

OPCIONES /index.html HTTP / 1.0

Estoy trabajando para que nginx se configure como un proxy inverso con almacenamiento en caché (usando ncache). Por algún motivo, nginx devuelve un 405 cuando aparece una solicitud OPTIONS:

192.168.1.10 - - [22 / Oct / 2008: 16: 36: 21 -0700] "OPCIONES /index.html HTTP / 1.0" 405 325 "-" "-" 192.168.1.10

Cuando toco el servidor web indirecto directamente, obtengo una respuesta adecuada de 200. Mi pregunta es: ¿cómo hacer que nginx pase esa respuesta junto a HAProxy o cómo puedo establecer la respuesta en nginx.conf?


Probablemente llegue tarde, pero tuve el mismo problema y encontré dos soluciones.

Lo primero es engañar a Nginx diciendo que un estado 405 es en realidad un 200 OK y luego proxy_pass a su HAProxy de esta manera:

error_page 405 =200 @405; location @405 { root /; proxy_pass http://yourproxy:8080; }

La segunda solución es simplemente atrapar la solicitud de OPCIONES y generar una respuesta para esas solicitudes:

location / { if ($request_method = OPTIONS ) { add_header Content-Length 0; add_header Content-Type text/plain; return 200; } }

Simplemente elija cuál le conviene más.

Escribí esto en una publicación de blog donde puedes encontrar más detalles.