authelia - nginx 鉴权的最佳搭档
2026-04-06 21:17:42
authelia 可用于 Nginx 等反代的鉴权,比如有个 hugo 的静态页面,它本身不具备鉴权的能力,可我们希望它具备,此时最简单的办法是 Nginx 的 basic auth,但存在一些缺陷,比如:没有持久化,浏览器重启,鉴权丢失;界面不美观;
authelia 可解决这类问题,且具备一个站点登录,所有子站点共享登录态的能力,下面是 authelia 的基本信息:
本文仅记录简单的安装以及与 Nginx 的集成。
安装 authelia
- 从 GitHub 下载对应的二进制包,解压后备用;
- 创建配置文件,内容大致如下:
conf.yaml
| |
该文件配置的鉴权规则有:
- 默认不需要鉴权;
- manifest.json、favicon.ico、png、jpg、jpeg、gif、svg、webp 不需要鉴权;
- a.xxx.xxx 全域需要鉴权,a2.xxx.xxx 仅 /search 开头的路由需要鉴权;
账号和密码是存到 users_database.yml 中,其中密码需要通过如下命令来生成:
./authelia crypto hash generate argon2 --password 你的密码该文件示例如下:
users_database.yml
现在,就可以通过 ./authelia –config ./conf.yaml 来启动了,稍微调整下内置的 authelia.service 就可以正常使用 systemd 来启动了。
authelia 和 Nginx 集成
这一共需要 3 个文件:auth.conf、authelia-authrequest、authelia-location
| |
使用时,只需要 include 上面的配置即可,比如下面的第 5 和 第 8 行,如需鉴权,第 5 行就必须要有,第 8 行仅在需要鉴权的 location 下添加:
| |
最后更新于