在我的apache webdav服务器日志中,我一直收到这些401和405错误,我不知道是什么原因导致的。
192.168.1.2 - - [11/Feb/2023:10:32:11 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 401 381
192.168.1.2 - dt [11/Feb/2023:10:32:11 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 207 323
192.168.1.2 - dt [11/Feb/2023:10:32:11 +0100] "GET /dt/dt_nginx.dtCloud/inbox/master.plist HTTP/1.0" 200 224
192.168.1.2 - dt [11/Feb/2023:10:32:11 +0100] "PROPFIND /dt/dt_nginx.dtCloud/inbox/ HTTP/1.0" 207 1830
192.168.1.2 - - [11/Feb/2023:10:32:12 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 401 381
192.168.1.2 - dt [11/Feb/2023:10:32:13 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 207 323
192.168.1.2 - dt [11/Feb/2023:10:32:13 +0100] "GET /dt/dt_nginx.dtCloud/7b8b717fa62fddda7fe843879f442edee1fba942ff339ba131e4f01d752316f5/master.plist HTTP/1.0" 200 224
192.168.1.2 - dt [11/Feb/2023:10:32:13 +0100] "PROPFIND /dt/dt_nginx.dtCloud/7b8b717fa62fddda7fe843879f442edee1fba942ff339ba131e4f01d752316f5/ HTTP/1.0" 207 2243
192.168.1.2 - - [11/Feb/2023:10:32:35 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 401 381
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 207 323
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "GET /dt/dt_nginx.dtCloud/53cbd346392b8673a03715b8c62f03559f470c38c6c79289f273814a7023841f/master.plist HTTP/1.0" 200 224
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "PROPFIND /dt/dt_nginx.dtCloud/53cbd346392b8673a03715b8c62f03559f470c38c6c79289f273814a7023841f/ HTTP/1.0" 207 2244
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "MKCOL /dt/dt_nginx.dtCloud/ HTTP/1.0" 405 222
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "PROPFIND /dt/dt_nginx.dtCloud/ HTTP/1.0" 207 323
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "MKCOL /dt/dt_nginx.dtCloud/53cbd346392b8673a03715b8c62f03559f470c38c6c79289f273814a7023841f/ HTTP/1.0" 405 222
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "PROPFIND /dt/dt_nginx.dtCloud/53cbd346392b8673a03715b8c62f03559f470c38c6c79289f273814a7023841f/ HTTP/1.0" 207 388
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "MKCOL /dt/dt_nginx.dtCloud/53cbd346392b8673a03715b8c62f03559f470c38c6c79289f273814a7023841f/receipts/ HTTP/1.0" 405 222
192.168.1.2 - dt [11/Feb/2023:10:32:35 +0100] "PROPFIND /dt/dt_nginx.dtCloud/53cbd346392b8673a03715b8c62f03559f470c38c6c79289f273814a7023841f/receipts/ HTTP/1.0" 207 397
相关的httpd.conf
部分具有:
Listen 21028
LoadModule dav_module lib/httpd/modules/mod_dav.so
LoadModule dav_fs_module lib/httpd/modules/mod_dav_fs.so
LoadModule dav_lock_module lib/httpd/modules/mod_dav_lock.so
DavLockDB /usr/local/etc/httpd/webdavdb/davlock
<VirtualHost 192.168.1.2:21028>
ServerName my.server.me
ServerAlias my.server.me
DocumentRoot /Volumes/E/apache/webdav
<Directory /Volumes/E/apache/webdav>
Dav On
AuthType Digest
AuthName "webdav"
AuthUserFile /usr/local/etc/httpd/webdavdb/users.password
Require valid-user
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
这几个星期都运行良好,但由于某种原因,我不能弄清楚-没有修改配置或任何相关的机器-服务器不断吐出这些错误。
编辑:为了测试,我已经删除了Require valid-user
指令,这“修复”了401
问题(暂时)。然而,我仍然可以为任何使用MKCOL
方法的请求获得405
(参见上面的日志)。
Apache DAV服务器位于nginx反向代理之后。当我通过本地地址(192.168.1.2)和http
直接连接到Apache服务器时,我 * 没有 * 得到这些错误。问题似乎出在nginx转发请求到Apache的方式上,但我不知道我的nginx.conf
有什么问题:
server {
server_name my.server.me;
location / {
proxy_pass http://192.168.1.2:12345;
}
location /robots.txt {
return 200 "User-agent: *\nDisallow: /\n";
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
listen 443 ssl; # managed by Certbot
# SSL stuff
}
有什么想法吗?
1条答案
按热度按时间mcvgt66p1#
401不是真正的错误,而是身份验证提示。当浏览器或其他http/webdav客户端看到401状态码时,它会要求用户提供凭据,然后将其发送到标题Authorization:基本用户:通过。所以当你禁用授权时,问题已经“解决”了。把授权转回来!
405错误意味着服务器不允许进行该操作(http方法)。在您的情况下,它拒绝了MKCOL请求,即尝试创建一个文件夹。这可能是因为您禁用了auth,服务器不允许编辑。还要注意,您可能在nginx代理和apache webdav中都有auth。