只想知道 发表于 2015-1-14 20:25:07

给大家带来Nginx增加htpasswd认证

欢迎大家来到仓酷云论坛!一.需求形貌
Nginx作为webserver的办事。因营业必要在会见网站时,加一层认证信息,以避免公司以外的人会见网站。需求相似于Apache那样为指定的目次增加会见考证,一样平常在Apache下利用htpasswd来增加。这里是为Nginx增加。

二.编写以下步伐
情况:必要撑持perl。(由于用到perl)
vihtpasswd.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
exportPATH


echo"====================================="
echo"#AtoollikehtpasswdforNginx#"
echo"#-----------------------------------#"
echo"#Author:Licesshttp://blog.csdn.net/longxibendi#"
echo"====================================="


#setUserName


username=""
read-p"PleaseinputUserName:"username
if["$username"=""];then
echo"Error:UserNamecantbeNULL!"
exit1
fi
echo"==========================="
echo"UserNamewas:$username"
echo"==========================="


#setpassword


unpassword=""
read-p"PleaseinputthePassword:"unpassword
if["$unpassword"=""];then
echo"Error:PasswordcantbeNULL!"
exit1
fi
echo"==========================="
echo"Passwordwas:$unpassword"
echo"==========================="
password=$(perl-eprintcrypt($ARGV,"pwdsalt")$unpassword)


#sethtpasswdfile


htfile=""
read-p"PleaseinputAuthfilename:"htfile
if["$htfile"=""];then
echo"Error:AuthfilenamecantbeNULL!"
exit1
fi
echo"==========================="
echo"AuthFile:/longxibendi/nginx/conf/$htfile"
echo"==========================="


get_char()
{
SAVEDSTTY=`stty-g`
stty-echo
sttycbreak
ddif=/dev/ttybs=1count=12>/dev/null
stty-raw
sttyecho
stty$SAVEDSTTY
}
echo""
echo"PressanykeytoCreat...orPressCtrl+ctocancel"
char=`get_char`


if[!-f/longxibendi/nginx/conf/$htfile.conf];then
make-p/longxibendi/nginx/conf/$htfile.conf
echo"CreateAuthfile......"
cat>/longxibendi/nginx/conf/$htfile.conf<<eof
$username:$password
eof
echo"CreateAuthfilesuccessful,authfilepath:/longxibendi/nginx/conf/$htfile.conf."
else
echo"Filealreadyexists,pleaserunthisscriptagain."
exit1
fi

三.天生用户名暗码信息
bashhtpasswd.sh
按提醒输出用户名、暗码、及认证文件名。剧本会主动天生认证文件。纪录下剧本前往的文件路径。如:/longxibendi/nginx/conf/longxibendi.auth.conf

四.修正Nginx.conf设置文件,为Nginx增加auth认证设置
location^~/longxibendi/
{
auth_basic"Authorizedusersonly";
auth_basic_user_file/longxibendi/nginx/conf/longxibendi.auth.conf;#这里写后面剧本前往的文件路径;
}
大概在location前面增加,好比
location/{

indexindex.phpindex.htmlindex.htm;
if(!-f$request_filename){
rewrite^/(.*)/iphone/index.php?$1last;
}
}

location~.*.(php|php5)${
fastcgi_pass127.0.0.1:8000;
fastcgi_indexindex.php;
includefcgi.conf;
}
auth_basic"Authorizedusersonly";
auth_basic_user_file/longxibendi/nginx/conf/moyi.365.auth.conf;

五.重启Nginx
cdsbin/nginx;./nginx-sreload

六.注重事项
每一个扫瞄器初度会见,输出用户名、暗码。只必要输出一次,以后再翻开扫瞄器就不必要输出了。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!

山那边是海 发表于 2015-1-16 17:48:43

给大家带来Nginx增加htpasswd认证

Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。

爱飞 发表于 2015-1-25 16:28:50

熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:

金色的骷髅 发表于 2015-2-3 12:19:24

在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。

分手快乐 发表于 2015-2-9 02:07:36

说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?

只想知道 发表于 2015-2-26 19:06:29

众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。

小女巫 发表于 2015-3-8 17:44:50

这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。

若天明 发表于 2015-3-16 17:10:46

一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。

蒙在股里 发表于 2015-3-23 03:41:10

Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
页: [1]
查看完整版本: 给大家带来Nginx增加htpasswd认证