Nginx中配置用户服务器访问认证的方法示例

 更新时间:2016年01月15日 09:58:13   投稿:goldensun  
这篇文章主要介绍了Nginx中配置用户服务器访问认证的方法示例,包括一个用perl脚本来实现的方法,需要的朋友可以参考下

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

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

为目录增加用户认证( 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配置下添加如下内容:

location /admin/ { 
auth_basic "QuanLei 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 "QuanLei Auth."; 
auth_basic_user_file /usr/local/ngnix/conf/authdb; 
} 

PS:使用perl脚本来实现的方法(代码如下:)

#! /usr/bin/perl -w  
#filename: add_ftp_user.pl  
use strict;  
#  
print "#example: user:passwd\n";  
while (<STDIN>) {  
  exit if ($_ =~/^\n/);  
  chomp;  
  (my $user, my $pass) = split /:/, $_, 2;  
  my $crypt = crypt $pass, '$1$' . gensalt(8);  
  print "$user:$crypt\n";  
}  
sub gensalt {  
  my $count = shift;  
  my @salt = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z');  
  my $s;  
  $s .= $salt[rand @salt] for (1 .. $count);  
  return $s;  
} 

为脚本赋予可执行权限:

chmod o+x add_user.pl

脚本使用方法:

./add_user.pl
user:password

把生成的用户名密码粘贴到/usr/local/nginx/conf/vhost/nginx_passwd文件中即可

相关文章

  • 详解Keepalived+Nginx实现高可用(HA)

    详解Keepalived+Nginx实现高可用(HA)

    这篇文章主要介绍了详解Keepalived+Nginx实现高可用(HA),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Nginx防盗链根据UA屏蔽恶意User Agent请求(防蜘蛛)

    Nginx防盗链根据UA屏蔽恶意User Agent请求(防蜘蛛)

    相对于 Apache,Nginx 占用的系统资源更少,更适合 VPS 使用。恶意盗链的 User Agent 无处不在,博客更换到 WordPress 没几天,就被 SPAM(垃圾留言)盯上,又被暴力破解后台用户名密码。今天来介绍 Nginx 屏蔽恶意 User Agent请求的方法
    2016-07-07
  • 详解Nginx几种常见实现301重定向方法上的区别

    详解Nginx几种常见实现301重定向方法上的区别

    本篇文章主要介绍了详解Nginx几种常见实现301重定向方法上的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Nginx配置txt、pdf、doc、xls等文件直接下载的方法

    Nginx配置txt、pdf、doc、xls等文件直接下载的方法

    这篇文章主要介绍了Nginx配置txt、pdf、doc、xls等文件直接下载的方法,配置方法很简单,本文直接给出配置示例,需要的朋友可以参考下
    2015-04-04
  • Nginx反向代理websocket配置实例

    Nginx反向代理websocket配置实例

    这篇文章主要介绍了Nginx反向代理websocket配置实例,本文是项目需求配置成功后的总结,需要的朋友可以参考下
    2014-09-09
  • Nginx中proxy_pass指令斜杠的作用及说明

    Nginx中proxy_pass指令斜杠的作用及说明

    这篇文章主要介绍了Nginx中proxy_pass指令斜杠的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Nginx配置本地图片服务器的实现

    Nginx配置本地图片服务器的实现

    本文主要介绍了Nginx配置本地图片服务器的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 使用nginx实现一个端口和ip访问多个vue前端的全过程

    使用nginx实现一个端口和ip访问多个vue前端的全过程

    为满足单端口访问多个前端应用的需求,需要对nginx进行配置,同时修改vue项目的publicPath参数,这篇文章主要介绍了使用nginx实现一个端口和ip访问多个vue前端的相关资料,需要的朋友可以参考下
    2024-09-09
  • Nginx 502 bad gateway错误解决的九种方案及原因

    Nginx 502 bad gateway错误解决的九种方案及原因

    一般在访问某些网站或者我们在做本地测试的时候,服务器突然返回502 Bad Gateway Nginx,这种问题相信大家也遇到不少了,下面这篇文章主要给大家介绍了关于Nginx 502 bad gateway错误解决的九种方案及原因,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • nginx设置上传目录无执行权限的方法

    nginx设置上传目录无执行权限的方法

    在windows+iis下,可以设置上传目录,类似:upload,uploadfile,attachments,这样的目录下面无脚本执行权限,从而防止非法用户上传脚本得到webshell
    2010-11-11

最新评论