服务器与部署

nginx 配置密码

JACIN1 分钟阅读
AI 摘要

这份配置记录面向那些 Docker 镜像本身没有账号密码、但又不适合直接开放给公网访问的服务,核心思路是在端口暴露和反向代理两层同时收紧入口。服务侧先在 docker-compose 的 ports 中使用 127.0.0.1:3033:8081 这种绑定方式,让容器端口只接受本机访问,避免外部绕过 Nginx 直接连到后端。随后在服务器上安装 apache2-utils,并通过 htpasswd -c /etc/nginx/.htpasswd admin 创建基础认证所需的账号密码文件。Nginx 配置部分则是在对应的 location / 代理块中加入 auth_basic 和 auth_basic_user_file,前者开启浏览器弹窗式的 Basic Auth,后者指定刚生成的密码文件。完成修改后执行 systemctl reload nginx 重新加载配置,即可让访问该反向代理路径的用户先通过密码验证。它适合临时保护管理后台、自用工具或轻量服务,但前提是请求确实都经过 Nginx,且后端端口不要再以 0.0.0.0 形式暴露。

有一些服务本身 docker 镜像没有设置账号密码,但是不能公开使用,所以需要 nginx 来进行密码设置。 首先需要设置:

text
    ports:
      - "127.0.0.1:3033:8081"

这样只允许本机来访问这个端口

Nginx 层验证

text
apt install apache2-utils
# 账号是 admin,回车后输密码
htpasswd -c /etc/nginx/.htpasswd admin

修改 Nginx 配置:location / { ... } 里面加入这两行:

text
location / {
    # ... 其他 proxy 配置保持不变 ...

    # 👇 加入这两行开启 Nginx 密码锁
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

systemctl reload nginx

评论

还没有评论,来发第一个吧