Nginx 目录保护 ≠ 入了4通

有时不想某个目录被访问,所以要加密码之类来保护,以前用过的 Apache 好像很简单就实现目录加密。我用的是 Nginx,用了那么久 Nginx 还真没试过加密……

参考了一些资料,然后发现这样就可以:(Debian系统,配置中“#.......”表示后续还有其他配置)

1. 配置网站(假如 yousite.com 放在 /home/www,然后要对 ooxx 目录加密)

server {
	listen 80;
	server_name yousite.com;
	root /home/www;
	index index.php index.html;
	location ^~ /ooxx/{
		auth_basic "Authorized users only";
		auth_basic_user_file /home/.htpasswd;
	}

	#......

}

2. 安装 Apache 2 工具(需要 htpasswd 命令)

apt-get install apache2-utils

3. cd 到 /home 目录下(其他目录也行,但要注意跟上面 auth_basic_user_file 一致),用 htpasswd 生成用户名和密码

htpasswd -bdc .htpasswd username password

(注:生成的 .htpasswd 文件可能需要设为 nginx 的运行用户所有)

这样,你直接访问 http://yousite.com/ooxx 就会提示你输入用户和密码了,输入刚才用 htpasswd 设置的用户和密码就可以进去了!

……

但是,然后你会发现,直接访问里面的 php 文件会变成下载而不是运行——超囧~

检查了 nginx 对 php 配置:

location ~ \.php$ {
	include /etc/nginx/fastcgi_params;
	fastcgi_pass 127.0.0.1:9000;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

没错啊

我是这样解决的:在刚才的 location ^~ /ooxx/{ ... } 里面加多一段对 php 的配置,变成

server {
	listen 80;
	server_name yousite.com;
	root /home/www;
	index index.php index.html;
	location ^~ /ooxx/{
		location ~ \.php$ {
			include /etc/nginx/fastcgi_params;
			fastcgi_pass 127.0.0.1:9000;
			fastcgi_index index.php;
			fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		}
		auth_basic "Authorized users only";
		auth_basic_user_file /home/.htpasswd;
	}

	#......

}

搞定收工,具体请参考 Nginx 官方文档,我随便玩的(反正是成功了)。

附带说明:如果把 location ^~ /ooxx/ 的 ^~ 去掉的话,会变成访问目录需要输入密码,但是却可以直接访问文件,注意。

-------

跟本文主要内容无关:

前段时间不是入了6通遥控直升机么,在不到20平的还放着一些沙发的房间里被虐了,牺牲了一个机尾桨终于可以对尾悬停了,然后继续“深造”,发现,这么小的空间无法继续“深造” + 满足飞行欲望(练习6通还是需要宽广的地方,不然零部件代价很高)。然后某天深夜手一抖入了个4通的……今天收到货,一试,简单……好吧,室内玩就它了,室外就6通,嘿嘿

140513-4-through-remote-control-helicopter

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/nginx-directory-protection.z-turn

37 comments

  1. 独自流浪 独自流浪 Internet Explorer 11.0Windows 7 x64 Edition

    每到遇到这样的需求,就觉得.htaccess是多么好的东西

    沙发
  2. aunsen aunsen Firefox 29.0Windows 8.1 x64 Edition

    哈哈,貌似比给我买给儿子的差不多大小哇 :twisted:

    板凳
  3. 甜菜 甜菜 Sogou ExplorerWindows 8.1

    赛睿鼠标垫乱入
    zww壕啊

    地板
  4. 昵图网 昵图网 Google Chrome 34.0.1847.116Windows XP

    最近有新的wp theme发布么 :evil:

    4楼
  5. 一里 一里 Google Chrome 34.0.1847.131Windows 7

    入坐,鼠标不错,什么型号的?

    5楼
    • zwwooooo zwwooooo Firefox 29.0Windows 8.1 x64 Edition

      @一里
      SteelSeries(赛睿)《魔兽世界:大地的裂变》大灾变版激光游戏鼠标

  6. 大发 大发 Firefox 29.0Windows 7

    footer太宽溢出了。。

    6楼
  7. Pete Pete Google Chrome 34.0.1847.116Windows 8.1 x64 Edition

    直升飞机六通是什么意思
    不过看上去很好玩哈

    7楼
    • zwwooooo zwwooooo Firefox 29.0Windows 8.1 x64 Edition

      @Pete
      2通就是:上下、左右,3通就是上下、左右、前进后退,4通是比3通多了一个左右侧飞,6通多了倒转来飞(机翼向下)

  8. 西门 西门 Google Chrome 34.0.1847.131Mac OS X 10.9.2

    螺旋桨外面不套个圈圈,总感觉是个电锯啊

    8楼
  9. 郑永 郑永 Firefox 29.0Windows XP

    很明显,你也喜欢飞行,呵呵。。。我也是,呵呵。

    9楼
  10. 郑永 郑永 Firefox 29.0Windows XP

    我还在想,在youtube上面看到一种小机器夹在 用纸折的飞机上, 飞机就能飞了,那个很不错,另外最近流行的 飞行器送包囊,也是非常赞的,希望以后会流行起来。

    10楼
  11. 小王子 小王子 Google Chrome 34.0.1847.137Windows 8 x64 Edition

    大叔玩的是越来.......

    11楼
  12. kn007 kn007 Google Chrome 34.0.1847.137Windows 7 x64 Edition

    前面流水,后面的飞机我喜欢

    12楼
  13. A.yi A.yi Google Chrome 34.0.1847.116Windows 7 x64 Edition

    貌似好好玩的飞机

    13楼
  14. 屠龙 屠龙 Google Chrome 34.0.1847.137Windows XP

    有了加密插件,再也不用担心。

    14楼
  15. asim asim Google Chrome 34.0.1847.137Windows 8 x64 Edition

    很明显,你也喜欢飞行,呵呵。。。我也是,呵呵。

    15楼
  16. asim asim Google Chrome 35.0.1916.114Windows 8 x64 Edition

    问一下博主用的什么主机

    16楼
  17. Timothy Timothy Google Chrome 35.0.1916.153Windows 7 x64 Edition

    接下来该入四轴飞行器了

    17楼

Leave a Reply