2008-10-22 20 views
15

Nous utilisons HAProxy comme un équilibreur de charge au moment, et il fait régulièrement des demandes aux boîtes en aval pour assurer qu'ils sont en vie à l'aide d'une demande OPTIONS:manutention OPTIONS demande dans nginx

OPTIONS/index.html HTTP/1.0

Je travaille sur la configuration de nginx en tant que proxy inverse avec mise en cache (en utilisant ncache). Pour une raison quelconque, nginx renvoie une 405 lorsqu'une demande OPTIONS est disponible en:

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

Lorsque j'atteins directement le serveur web en aval, j'obtiens une réponse 200 appropriée. Ma question est: comment faire nginx transmettre cette réponse à HAProxy, ou, comment puis-je définir la réponse dans le nginx.conf?

+0

Ce module est-il disponible par hasard? –

Répondre

2

Dans l'option httpchk, vous pouvez spécifier la méthode HTTP comme ceci:

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

Vous pouvez également utiliser POST, ou une URI simple comme /. Je l'ai vérifié PHP, car PHP est externe à Nginx.

20

Je suis probablement en retard, mais j'ai eu le même problème, et j'ai trouvé deux solutions.

premier est Tromper Nginx qu'un statut 405 est en fait un 200 OK puis PROXY_PASS à votre HAProxy comme ceci:

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

La deuxième solution est juste pour attraper les OPTIONS demande et construire une réponse pour ceux demandes:

Choisissez simplement celui qui vous convient le mieux.

J'ai écrit ceci dans un blog post où vous pouvez trouver plus de détails.