为访问nginx目录添加权限认证auth_basic

本文介绍如何使用Nginx进行基本的身份验证设置,包括通过YUM安装HTTPD获取htpasswd工具、创建密码文件及添加用户,并展示了如何在Nginx配置文件中启用身份验证。

zz from:http://zhys9.com/blog/?p=294

 

由于nginx的auth_basic认证采用的是与apache兼容密码文件,因此需要用到apache的htpasswd用以生成密码文件。

首先且到root, 安装httpd (如果已经安装的,可以跳过)

/usr/bin/yum install httpd

安装完毕之后就可以先找一下htpasswd的位置

/usr/bin/whereis htpasswd
htpasswd: /usr/bin/htpasswd /usr/share/man/man1/htpasswd.1.gz

可以看到路径是 /usr/bin/htpasswd

接下来就生成密码文件并添加一个用户(master)吧

/usr/bin/htpasswd -c /home/nginx/conf/authdb master

会得到以下提示信息
New password:
输入密码之后,系统会要求再次输入密码。确认之后即添加完毕。

然后就是修改nginx的配置文件,在需要使用auth_basic添加配置;
例如需要在 http://zhys9.com/secret/ 目录使用;

/bin/vi /home/nginx/conf/nginx.conf

找到zhys9.com对应的server段

增加一个location段

location /secret/
{
    auth_basic  "Secret Garden.";
    auth_basic_user_file  /home/nginx/conf/authdb;
}

保存退出之后,要记得reload一下nginx

/home/nginx/sbin/nginx -s reload

ok, 访问http://zhys9.com/secret/ 看看是否生效了?

 

要配置 Nginx 的 `auth_basic` 功能并指定用户密码文件,需在 Nginx 的配置文件中使用 `auth_basic` 和 `auth_basic_user_file` 两个指令。具体步骤如下: 1. **启用基本认证**:在 `location`、`server` 或 `http` 块中设置 `auth_basic` 指令,用于定义认证域的名称。例如: ```nginx location /secure/ { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; } ``` 2. **指定用户密码文件**:使用 `auth_basic_user_file` 指令指向用户密码文件的路径,该文件包含用户名和加密后的密码信息。路径可以是任意合法的文件系统路径,但需确保 Nginx 进程对该路径具有读取权限 [^2]。 3. **生成用户密码文件**:可以使用 `htpasswd` 工具生成密码文件。如果系统中未安装该工具,可通过安装 Apache 工具包获取。示例命令如下: ```bash htpasswd -c /etc/nginx/.htpasswd username ``` 该命令会创建一个名为 `username` 的用户,并提示输入密码。若需添加更多用户,可省略 `-c` 参数: ```bash htpasswd /etc/nginx/.htpasswd anotheruser ``` 4. **验证配置并重启 Nginx**:修改完配置文件后,需验证配置是否正确,然后重新加载 Nginx 配置以使更改生效: ```bash nginx -t systemctl reload nginx ``` 在配置过程中需要注意权限问题。例如,Nginx 进程需要对 `.htpasswd` 文件具有读取权限。如果权限设置不当,可能会导致 500 内部服务器错误。日志中可能出现类似以下错误信息: ``` open() "/etc/nginx/.htpasswd" failed (13: Permission denied) ``` 此时应检查文件权限,并确保文件路径与配置一致 [^3]。 此外,密码文件的内容应妥善保护,避免泄露。建议将文件放置在非公开访问路径下,并限制其访问权限。 ### 示例配置 ```nginx server { listen 80; server_name example.com; location /secure/ { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; root /var/www/secure; } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值