Otrzymuję status 411 z powrotem od nginx, gdy próbuję zrobić PUT bez określania długości treści. Czy jest jakiś sposób, aby temu zapobiec?
Możesz spróbować dodać to do zapytania:
curl -i -X PUT -H „Content-Length: 0” „ http://www.example.com/test ”
Spróbuj zainstalować HttpChunkinModule lub zaktualizuj Nginx do wersji 1.3.9+
Ten moduł nie jest już potrzebny w Nginx 1.3.9+, ponieważ od 1.3.9 rdzeń Nginx ma już wbudowaną obsługę częściowych żądań.
Żądania PUT wymagają długości treści. To nie Nginx, to HTTP, który stawia ten wymóg. Żądanie PUT, podobnie jak żądania POST, musi mieć treść. Ciało to może mieć zerową długość, ale jeśli tak, musisz to wyraźnie powiedzieć. Oczywiście nie można zakładać, że zawartość będzie kontynuowana, dopóki połączenie nie zostanie zamknięte (co sugeruje brak nagłówka o długości treści), ponieważ serwer musi być w stanie odpowiedzieć na żądanie przed zamknięciem połączenia.
Stare pytanie, ale ponieważ natknąłem się na to z wyszukiwania w sieci:
NginX 1.3.9 i nowsze obsługują „Transfer-Encoding: chunked” po wyjęciu z pudełka dla POST i PUT.
Dzięki przesyłaniu dzielonemu możesz wysyłać pliki bez wcześniejszego ustawiania długości zawartości.
źródło