仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 637|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 给大家带来nginx为目次或网站加上暗码认证

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:06:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:退一万步讲,即使CentOS项目终结,正在运行它的企业也可以很轻松的转移到另一个企业Linux的克隆版。nginx可认为网站或目次乃至特定的文件设置暗码认证。暗码必需是crypt加密的。可以用apache的htpasswd来创立暗码。
格局为:
  1. htpasswd-b-csite_passusernamepassword
复制代码

site_pass为暗码文件。放在同nginx设置装备摆设文件统一目次下,固然你也能够放在其它目次下,那在nginx的设置装备摆设文件中就要写明相对地址或绝对以后目次的地址。
假如你输出htpasswd敕令提醒没有找到敕令时,你须要装置httpd。假如是centos可以履行以下来装置,
  1. yuminstallhttpd
复制代码

假如你不想装置httpd的话,可使用perl剧本来完成(代码以下:)
  1. #!/usr/bin/perl-w#filename:add_ftp_user.plusestrict;#print"#example:user:passwd
  2. ";while(<STDIN>){exitif($_=~/^
  3. /);chomp;(my$user,my$pass)=split/:/,$_,2;my$crypt=crypt$pass,$1$.gensalt(8);print"$user:$crypt
  4. ";}subgensalt{my$count=shift;my@salt=(.,/,0..9,A..Z,a..z);my$s;$s.=$salt[rand@salt]for(1..$count);return$s;}
复制代码

为剧本付与可履行权限:
  1. chmodo+xadd_user.pl
复制代码

剧本应用办法:
  1. ./add_user.pluser:password
复制代码

把生成的用户名暗码粘贴到/usr/local/nginx/conf/vhost/nginx_passwd文件中便可
假如是为了给网站加上认证,可以直接将认证语句写在nginx的设置装备摆设server段中。
假如是为了给目次加上认证,就须要写成目次情势了。同时,还要在目次中加上php的履行,不然php就会被下载而不履行了。
例如:基于全部网站的认证,auth_basic在php说明之前。
  1. 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以后。
  1. 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同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-17 05:23:17 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
莫相离 该用户已被删除
板凳
发表于 2015-1-26 07:29:07 | 只看该作者
我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-4 19:19:36 | 只看该作者
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-10 06:44:03 | 只看该作者
熟读写基础知识,学得会不如学得牢。
乐观 该用户已被删除
6#
发表于 2015-3-1 03:18:17 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-10 12:56:07 | 只看该作者
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
admin 该用户已被删除
8#
发表于 2015-3-17 09:08:17 | 只看该作者
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
若相依 该用户已被删除
9#
发表于 2015-3-24 04:56:45 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表