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

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/ 就会提示输入用户名和密码。

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

为目录增加用户认证( auth basic)

nginx的auth_basic认证采用与apache兼容的密码文件,因此我们需要通过apache的htpasswd生成密码文件。

首先查找你系统上的htpasswd

 代码如下 复制代码

find / –name htpasswd

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

 代码如下 复制代码

/usr/bin/htpasswd

如果没找到那就自行安装

 代码如下 复制代码

yum install apache

并找到htpasswd文件地址。

找到htpasswd文件后,我们来创建一个用户,比如这个用户叫:xiaoquan

 代码如下 复制代码

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

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

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

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

 代码如下 复制代码

<br />
location /admin/ {<br />
      auth_basic &quot;QuanLei Auth.&quot;;<br />
      auth_basic_user_file /usr/local/ngnix/conf/authdb;<br />
}<br />

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

 代码如下 复制代码

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

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

 代码如下 复制代码

<br />
location /admin/ {<br />
      proxy_pass http://cluster/mgmt/;<br />
      auth_basic &quot;QuanLei Auth.&quot;;<br />
      auth_basic_user_file /usr/local/ngnix/conf/authdb;<br />
}<br />

时间: 2024-09-04 14:33:36

Nginx用户认证配置方法(域名/目录)详解的相关文章

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

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目录为例,在域

nginx用户认证配置( Basic HTTP authentication)

ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http auth模块以及Apache http auth都是很好的解决方案. 默认情况下nginx已经安装了ngx_http_auth_basic_module模块,如果不需要这个模块,可以加上 --without-http_auth_basic_module . nginx basic auth指令 语法:  

Windows IIS 7.5配置二级域名图文详解

在主域名(first.com)下新增一个二级域名(sub.first.com),首先需要到域名服务提供商处添加A记录,将二级域名指向你的服务器IP,以下为两个示例: Godaddy配置二级域名: Dnsprod配置二级域名: A记录配置完毕以后,需等待一段时间才能生效,接下来我们可以在IIS中配置该二级域名站点 至此,二级域名已经添加完毕,等A记录生效以后,该网站就可以访问了O(∩_∩)O~ 如果碰到文件写入权限问题,可以在添加网站时以管理员身份进行连接

Nginx中的用户认证配置及阻止用户使用代理访问的方法_nginx

nginx用户认证配置( Basic HTTP authentication)ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http auth模块以及Apache http auth都是很好的解决方案. 默认情况下nginx已经安装了ngx_http_auth_basic_module模块,如果不需要这个模块,可以加上 --without-http_auth_

Symfony2在Nginx下的配置方法图文教程_php实例

本文详细讲述了Symfony2在Nginx下的配置方法.分享给大家供大家参考,具体如下: 网上有很多关于symfony2在nginx下的配置文章,如果是小白,按照网上贴出来的配置文件配置,却怎么也不成功,我经过多次摸索,写下心得: 1. 首先开启Nginx的pathinfo 至于什么是pathinfo,可以参考文章<nginx下支持PATH_INFO的方法实例详解>,自行脑补.很多人按照教程配置的时候,会报500的错误,查报错日志也查不出来,八成就是没有开启pathinfo. 如果你的主机上安

Nginx简要安装配置方法图文教程_nginx

直入主题: 1.nginx安装所需文件 1).nginx-1.2.8.tar.gz 2).openssl-1.0.1g.tar.gz 3).pcre-8.31.tar.gz 4).zlib-1.2.7.tar.gz 上述安装包的下载地址正常可用,由于本人用的是上述版本的安装包,所以下述安装均以此作为基础. 2.Linux机器的配置环境 2.1.java环境 $java -version java version "1.8.0_45" Java(TM) SE Runtime Enviro

Eclipse中改变默认的workspace的方法及说明详解_java

eclipse中改变默然的workspace的方法可以有以下几种: 1.在创建project的时候,手动选择使用新的workspace,如创建一个web project,在向导中的Location选项,取消使用"Use default location",同时在下面选择新的workspace. 2.在file菜单中选择switch workspace项,即可选择一个新的workspace 3.在eclipse安装目录下configuration/.settings目录下的 org.ec

CentOS中禁止用户ssh和sftp登陆的详解

  CentOS中禁止用户ssh和sftp登陆的详解          在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作.我这里以centos操作系统为例记录下如何进行处理. 1.打开sshd的配置文件 ? 1 vi/etc/ssh/sshd_config 2.修改该配置文件,增加或修改如下行 ? 1 2 3 4 # 禁止用户user1登陆,多个空格分隔 DenyUsers user1 # 禁止用户组group1的所有用户登录,多个空格分隔 DenyGroups group

Docker 手动配置容器网络实例详解_docker

Docker 手动配置容器网络   docker容器的网络是net命名空间与虚拟设备的结合,容器在启动时会创建一对虚拟接口veth pair,这一对接口分别放到本地和容器中,在本地的veth会被分配类似vethxxxx的名称并被桥接到指定网桥的上(默认为docker0),可以通过brctl show命令查看网桥上挂载的接口,在容器中的veth会从网桥获取一个未使用地址,该veth的名称会被更改为eth0并配置默认路由到vethxxxx,docker允许在启动容器的时候通过--net参数指定不同的