Nginx用户认证配置方法详解(域名/目录)

Nginx超级强大它可以单独为一个域名设置用户认证,方法也很简单我们只要生成用户认证的用户名和密码,然后再Nginx添加auth认证配置即可。

Nginx可以为某一个域名单独加用户认证,具体做法如下:

1. 生成用户认证的用户名和密码:

代码如下:

#wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh

根据提示输入:用户名、密码、文件名

脚本会自动生成认证文件,auth.conf内容如下:

代码如下:

/usr/local/nginx/conf/auth.conf

2. 为Nginx添加auth认证配置

下面以某域名下面的auth目录为例,在域名的server段里加上如下代码:

代码如下:

location ^~ /auth/ {
location ~ .*.(php|php5)?$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
auth_basic "Authorized users only";
auth_basic_user_file /usr/local/nginx/conf/auth.conf
}
auth_basic_user_file 为htpasswd文件的路径

3. 重启Nginx

访问http://yourdomainname/auth/ 就会提示输入用户名和密码

如果我们只想为目录增加用户认证上面方法显示不行,下面我来介绍具体目录用户认证,。生成密码文件。

首先查找你系统上的htpasswd

代码如下:

find / –name htpasswd

一般CentOS都会装apache的,位置在:

代码如下:

/usr/bin/htpasswd

如果没找到那就自行安装

代码如下:

yum install apache

文件地址

代码如下:

/usr/bin/htpasswd –c /usr/local/ngnix/conf/authdb xx

上面的命令在nginx的配置文件目录创建了用户为xx的authdb密码文件,当然你也可以创建的在其他地方,此处nginx配置文件使用比较方便。

上面的命令输入回车后会得到提示输入密码的提示信息,输入两次,即可添加成功。

接着修改nginx的配置文件,在某个需要加auth_basic的server配置下添加如下内容

代码如下:

location /admin/ {
auth_basic "Auth.";
auth_basic_user_file /usr/local/ngnix/conf/authdb;
}

最后让nginx使用最新的配置:

代码如下:

/usr/local/ngnix/sbin/nginx -s reload

补充一下,如果你使用了集群环境,那么还需要加Proxy_Pass:

代码如下:

location /admin/ {
proxy_pass http://cluster/mgmt/;
auth_basic "Auth.";
auth_basic_user_file /usr/local/ngnix/conf/authdb;
}

相关推荐:
1.docker run -it 过后请别使用 CTRL+C 退出 2.使用 CTRL+P+Q 退出当前容器内部回话,就会后台运行了。 如果没解决你得问题,请尝试查看日志信息: docker logs {container_id}  
Activity,Service等组件有些是对外开放的(manifest.xml 中 export为true或定义的intent-filter的组件是可导出组件),当这些组件传递的参数未做校验时,这些参数可能导致APP 拒绝服务。 请严格校验输入参 …
在使用小娜功能的时候,我们第一次使用时会有引导来方便我们设置,但是当我们进行后期的修改或相关的设置时,却发现很难找到设置的选项。 那么它在哪呢? 如上图所示,就在左侧的第二个,点击进去即可,藏 …
此文列出了在对web安全测试中的流程以及测试点,这个作为一个提示,给大家提供一个大纲。 信息收集 1 端口扫描 2 目录扫描 3 测试DEBUG或者dev参数 4 爬取所有连接 5 识别数据输入点 6 指纹识别 访问控制 1 …
其实这个问题从jdk9之后开始就会存在,之后的版本将不再提供tools.jar和dt.jar了,也不需要在classpath里面配置这些jar了,那么怎么配是最科学的? 配置可参考这样: JAVA_HOME=jdk安装路径 JRE_HOME=jre安 …
拿起手机扫一扫即可带走我!