401 & 405错误来自Apache服务器

h9a6wy2h  于 2023-03-13  发布在  Apache
关注(0)|答案(1)|浏览(474)

在我的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
}

有什么想法吗?

mcvgt66p

mcvgt66p1#

401不是真正的错误,而是身份验证提示。当浏览器或其他http/webdav客户端看到401状态码时,它会要求用户提供凭据,然后将其发送到标题Authorization:基本用户:通过。所以当你禁用授权时,问题已经“解决”了。把授权转回来!
405错误意味着服务器不允许进行该操作(http方法)。在您的情况下,它拒绝了MKCOL请求,即尝试创建一个文件夹。这可能是因为您禁用了auth,服务器不允许编辑。还要注意,您可能在nginx代理和apache webdav中都有auth。

相关问题