Как разрешить запрос файла PUT на сервере Nginx?
я использую приложение, которое должно PUT
файл на HTTP-сервере. Я использую Nginx в качестве сервера, но получаю 405 Not Allowed
ошибки. Вот пример теста с завитком:
curl -X PUT
-H 'Content-Type: application/x-mpegurl'
-d /Volumes/Extra/playlist.m3u8 http://xyz.com
и что я получаю от Nginx:
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.1.19</center>
</body>
</html>
что мне нужно сделать, чтобы PUT
?
любые подсказки были бы потрясающими!
2 ответов
чтобы добавить методы HTTP и WebDAV, такие как PUT, DELETE, MKCOL, COPY и MOVE, вам нужно скомпилировать nginx с HttpDavModule
(./configure --with-http_dav_module
). Проверка nginx -V
во-первых, возможно, у вас уже есть HttpDavModule
(Я установил nginx из репозитория Debian, и у меня уже есть модуль).
затем измените свой nginx-config следующим образом:
location / {
root /var/www;
dav_methods PUT;
}
вы можете получить больше информации о запись nginx docs для HttpDavModule.
еще одна причина для 405 Not Allowed
Это то, что у вас нет разрешения на запись файлов в пункт назначения, который вы PUT
ing. Если у вас есть HttpDavModule
и все еще получая эту ошибку, убедитесь, что вы дали разрешения на запись nginx, где вы PUT
ing файлы.