首页 > 代码库 > Nginx 访问认证

Nginx 访问认证

Nginx 访问认证

应用环境:

企业内部人员,访问一些企业内部的网站,例如phpmyadmin或者公司的一些文档服务器

Nginx配置:

安装httpd,为了实现Nginx可以使用htpasswd命令

[root@node1 vhost]# yum  -y install httpd        # 安装httpd,为了实现Nginx可以使用htpasswd命令

[root@node1 ~]# mkdir /usr/local/nginx/conf/htpasswd/    #创建存放用户和密码的目录

[root@node1 ~]# htpasswd  -bc /usr/local/nginx/conf/htpasswd/test_user  user  password  #创建一个用户密码文件

test_user:文件名称

user:用户

password:密码(是经过加密的)

[root@node1 htpasswd]# cat test_user

user:wPqXPPVO5ad9M    #用户和加密密码

Nginx配置文件:

server

{

listen       80;

server_name  learn1.proxy.com;

index index.php  index.html index.htm;

root  /data/www/learn1.proxy.com;

error_log  /data/weblogs/learn1_error.log  crit;

access_log  /data/wwwlogs/learn1.log  access;

location / {

                 auth_basic "Please Input Password...";     #提示信息

                 auth_basic_user_file  /usr/local/nginx/conf/htpasswd/test_user;  #用户密码文件存放路径,这里写绝对路径,否则会报错403

                }

location ~ \.php$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

include        fastcgi.conf;

}

}

测试:

     

技术分享

技术分享

 

htpasswd命令选项参数说明:

-c创建一个加密文件。

-n不更新加密文件,只将htpasswd命令加密后的用户名和密码显示在屏幕上。

-m默认htpassswd命令采用MD5算法对密码进行加密,该参数默认情况下可以不加。

-d表示htpassswd命令采用CRYPT算法对密码进行加密。

-s表示htpassswd命令采用SHA算法对密码进行加密。

-p表示htpassswd命令不对密码进行进行加密,即明文密码。

-b表示在htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码。

-D表示删除指定的用户。

[root@node1 htpasswd]# htpasswd  -b test_user  bbb bbb  #添加新用户

Adding password for user bbb         #添加用户提示信息

[root@node1 htpasswd]# cat test_user   #内容

user:wPqXPPVO5ad9M

bbb:V1wqRumuBNlKE

添加新用户时,不可以使用htpasswd  -bc  test_user  bbb bbb这样的方式进行添加,否则会覆盖已有用户。

[root@node1 htpasswd]# htpasswd  -D test_user  bbb   #删除用户

Deleting password for user bbb    #删除用户提示信息

[root@node1 htpasswd]# cat test_user

user:wPqXPPVO5ad9M


本文出自 “10946218” 博客,谢绝转载!

Nginx 访问认证