HTTPサーバー上のファイルをPUT
する必要があるアプリケーションを使用しています。サーバーとしてNginxを使用していますが、405 Not Allowed
エラーが返されます。 cURLを使用したテストの例を次に示します。
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
を許可するには何をする必要がありますか?
手がかりは素晴らしいでしょう!
PUT、DELETE、MKCOL、COPY、MOVEなどのHTTPおよびWebDAVメソッドを追加するには、nginxをHttpDavModule
(./configure --with-http_dav_module
)。小切手 nginx -V
まず、すでにHttpDavModule
を持っているかもしれません( Debianリポジトリからnginxをインストールし、モジュールをすでに持っています )。
次に、nginx-configを次のように変更します。
location / {
root /var/www;
dav_methods PUT;
}
HttpDavModuleのnginx docsエントリ で詳細情報を取得できます。
405 Not Allowed
のもう1つの理由は、PUT
ingしている宛先にファイルを書き込む権限がないことです。 HttpDavModule
があり、それでもこのエラーが発生する場合は、ファイルをPUT
している場所にnginx書き込み権限が付与されていることを確認してください。