如何在DDEV中配置Nginx basic_auth?认证后404问题排查
DDEV中Nginx Basic Auth配置后出现404的问题排查与解决
你的问题出在自定义了完整的server块,覆盖了DDEV默认的Nginx配置规则,导致认证通过后,Nginx无法按照DDEV的默认逻辑处理请求(比如转发PHP到FPM、正确映射应用根目录),从而返回404。
问题分析
DDEV的.ddev/nginx_full/目录下的配置文件,是追加到DDEV默认的server块中生效的,而非独立定义新的server。你写的完整server块会和DDEV自带的server配置冲突,并且丢失了默认的请求处理规则(比如fastcgi_pass转发PHP请求、正确的根目录映射细节等),所以认证通过后,Nginx找不到正确的资源路径。
修复步骤
- 替换
.ddev/nginx_full/auth.conf的内容,删除完整的server块,只保留认证相关的location规则:
location ^~ / { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; }
如果只需要保护特定路径(比如后台),可以把/改成对应路径,比如/admin/。
- 确保
.htpasswd文件存在且路径正确:
通过DDEV命令创建密码文件(替换username为你的用户名):
ddev exec htpasswd -c /etc/nginx/.htpasswd username
执行后输入密码即可生成合法的.htpasswd文件。
- 重启DDEV使配置生效:
ddev restart
这样配置后,认证逻辑会附加到DDEV默认的server规则上,既保留了基础的请求处理能力,又实现了路径访问的身份验证。
内容的提问来源于stack exchange,提问作者user5603542
相关产品推荐
相关产品推荐

