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.