给大家带来nginx为目次或网站加上暗码认证
小知识:退一万步讲,即使CentOS项目终结,正在运行它的企业也可以很轻松的转移到另一个企业Linux的克隆版。nginx可认为网站或目次乃至特定的文件设置暗码认证。暗码必需是crypt加密的。可以用apache的htpasswd来创立暗码。格局为:
htpasswd-b-csite_passusernamepassword
site_pass为暗码文件。放在同nginx设置装备摆设文件统一目次下,固然你也能够放在其它目次下,那在nginx的设置装备摆设文件中就要写明相对地址或绝对以后目次的地址。
假如你输出htpasswd敕令提醒没有找到敕令时,你须要装置httpd。假如是centos可以履行以下来装置,
yuminstallhttpd
假如你不想装置httpd的话,可使用perl剧本来完成(代码以下:)
#!/usr/bin/perl-w#filename:add_ftp_user.plusestrict;#print"#example:user:passwd
";while(<STDIN>){exitif($_=~/^
/);chomp;(my$user,my$pass)=split/:/,$_,2;my$crypt=crypt$pass,$1$.gensalt(8);print"$user:$crypt
";}subgensalt{my$count=shift;my@salt=(.,/,0..9,A..Z,a..z);my$s;$s.=$saltfor(1..$count);return$s;}
为剧本付与可履行权限:
chmodo+xadd_user.pl
剧本应用办法:
./add_user.pluser:password
把生成的用户名暗码粘贴到/usr/local/nginx/conf/vhost/nginx_passwd文件中便可
假如是为了给网站加上认证,可以直接将认证语句写在nginx的设置装备摆设server段中。
假如是为了给目次加上认证,就须要写成目次情势了。同时,还要在目次中加上php的履行,不然php就会被下载而不履行了。
例如:基于全部网站的认证,auth_basic在php说明之前。
server{listen80;server_namewww.92csz.com92csz.com;root/www/92csz.com;indexindex.htmlindex.htmindex.php;auth_basic"inputyouusernameandpassword";auth_basic_user_file/usr/local/nginx/conf/vhost/nginx_passwd;location~.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;includefastcgi_params;}location~/.ht{denyall;}access_log/logs/92csz.com_access.logmain;}
针对目次的认证,在一个零丁的location中,而且在该location中嵌套一个说明php的location,不然php文件不会履行而且会被下载。auth_basic在嵌套的location以后。
server{listen80;server_namewww.92csz.com92csz.com;root/www/92csz.com;indexindex.htmlindex.htmindex.php;location~^/admin/.*{location~.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;includefastcgi_params;}auth_basic"auth";auth_basic_user_file/usr/local/nginx/conf/vhost/auth/admin.pass;}location~.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;includefastcgi_params;}location~/.ht{denyall;}access_log/logs/92csz.com_access.logmain;}
这里有一个细节,就是location~^/admin/.*{…}掩护admin目次下的一切文件。假如你只设了/admin/那末直接输出/admin/index.php照样可以拜访而且运转的。^/admin/.*意为掩护该目次下一切文件。固然,只须要一次认证。其实不会每次要求或每要求一个文件都要认证一下。
小知识:Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。 用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。 我感觉linux的学习,学习编程~!~!就去学习C语言编程!! 一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。? 熟读写基础知识,学得会不如学得牢。 下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。 Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。 上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题. 不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
页:
[1]