In meiner Umgebung verwende ich perlbal, um die Anfrage an nginx umzuleiten. Wenn verify_backend aktiviert ist. Perbal sendet eine "OPTIONS *" - Anfrage an nginx, aber die Nginx-Antwort ist eine schlechte Anfrage.
Nach RFC2616 :
Wenn der Anforderungs-URI ein Sternchen ("") ist, ist die OPTIONS-Anforderung eher für den? Server als für eine bestimmte Ressource gedacht. Da die Kommunikationsoptionen eines Servers normalerweise von der Ressource abhängen, ist die Anfrage "" nur als "ping" - oder "no-op" -Methode nützlich. Es ermöglicht dem Client nicht, die Fähigkeiten des Servers zu testen. Zum Beispiel kann dies verwendet werden, um einen Proxy auf HTTP / 1.1-Konformität (oder deren Fehlen) zu testen.
Ich denke, dass Perlbal versucht, diese Art von Anfrage zu senden, aber nginx kann das standardmäßig nicht verarbeiten.
Wenn ich versuche, eine Anfrage "OPTIONS * HTTP / 1.0" zu senden, bekomme ich immer "HTTP 400 bad request":
127.0.0.1 - - [18 / Feb / 2013: 03: 55: 47 +0000] "OPTIONS * HTTP / 1.0" 400 172 "-" "-" "-"
aber es funktioniert auf "OPTIONS / HTTP / 1.0" -Option ohne Sternchen Anfragen:
127.0.0.1 - - [18 / Feb / 2013: 04: 03: 56 +0000] "OPTIONS / HTTP / 1.0" 200 0 "-" "-" "-"
Wie kann ich nginx so konfigurieren, dass es mit http return 200 anstatt mit HTTP return 400 antwortet?
Tags und Links nginx http bad-request http-options-method