网站 401错误频繁出现?5分钟排查修复指南
若你于访问自身网站之际, 忽地瞧见“401 Unauthorized”这般的报错, 那就表明服务器认定你并无权限去访问所请求的资源。此类问题在Nginx或者Apache环境里较为常见, 一般是跟权限配置、认证文件以及HTTP头部消息扯上关系。下面即刻步入排查步骤。
第一步:检查URL路径是否正确
首先,去确凿判断一下, 你所访问的那个地址, 是不是真真切切必然得要认证才行。有一些网站的管理员, 会把后台的目录或者API端点, 设置成受保护的区域, 一旦有误访问的情况出现, 那就会触发401错误。接着去查看一下, .htaccess或者nginx.conf里面, 有没有针对于那个路径的auth_basic或者require valid-user指令。再说要是处于开发环境的话, 能够临时把相关的配置给注释掉, 然后确认一下问题是不是已经解决了。
第二步:验证HTTP认证文件
倘若你采用了.htpasswd文件实施密码认证, 核实一下文件路径是不是绝对无误, 并且文件内容格式是用户名:加密密码的样式。常见的差错是密码运用了明文形式, 或者文件权限设置得太低(像644这种)。提议运用htpasswd命令再次生成:
htpasswd -c /etc/nginx/.htpasswd your_username
然后输入密码,确保生成的是正确的加密格式。
第三步:检查请求头信息
浏览器端发送的认证信息缺失或者损坏, 也有可能致使401错误。将浏览器的开发者工具打开(F12), 于Network标签里把该请求找到, 查看Request Headers之中是不是含有Authorization: Basic...字段。要是没有, 那就表明客户端并未正确发送认证凭据。你能够尝试把浏览器缓存清除, 或者使用隐私模式再次进行访问?
第四步:查看服务端错误日志
这属于最为直接的那种方式, Nginx的错误日志其默认处于/var/log/nginx/error.log这个位置, Apache的所处位置则是/var/log/apache2/error_log, 然后执行:
tail -f /var/log/nginx/error.log
接着又一次引发401错误, 查看日志里是不是有诸如“password mismatch”或者“user not found”这样的提醒, 以此就能精确确定是密码有误还是文件配置的状况。
第五步:权限与目录保护
假如运用了目录级别的权限控制, 像是借助.htaccess去限定IP或者用户的情况, 要保证规则不会有误写入, 举例来说, Deny from all会径直拒绝全部流量, 能够在该文件里临时添上一句Satisfy any, 搭配Allow from all以便测试是不是由于过度限制而致使401。
总结
把401错误予以解决的实质实际上乃是去认定“究竟是谁能够进行访问的, 以及它给出的凭证是不是正确无误的”。从路径开始着手, 再到认证文件, 接着是请求头, 最后直至日志, 按照这样一层一层地去开展检查操作, 就能够迅速地确定其位置所在。要是你身为站长的话, 那么建议你把认证文件放置在Web根目录的外面, 并且要定期去对密码进行更新。一旦碰到处于复杂状况的时候, 那么可以去参考官方所提供的文档或者社区之中的案例。
要是在你编辑代码或者调试代码之际碰到了困难, 不妨去尝试一下在线的代码编辑工具这个东西: 否玩代码编辑, 其网址是https://www.fouwan.com。


