在Nginx用htpasswd对网站进行密码保护的设置方法_nginx

最后的效果就类似(不同浏览器的界面有所不同):

如果认证失败,就会报HTTP错误:401 Authorization Required。

要实现这样的功能,就需要更改服务器的配置,并设定好用于登录的用户名和密码。

首先我们需要更改网站的Nginx的server配置,Ubuntu服务器的话这个配置文件通常位于/etc/nginx/sites-enabled/,比如我这里就使用默认的配置文件/etc/nginx/sites-enabled/default来做一个例子:

复制代码 代码如下:

server {
server_name www.fancycedar.info
root /www/fancycedar

# ...

location / {
# 添加下面两行
auth_basic "Restricted";
auth_basic_user_file htpasswd;
# ...
}

# ...
}

接下来需要创建htpasswd文件,这里有一些细节需要注意:

htpasswd的路径
和nginx.conf在同一级目录即可。Ubuntu服务器的话一般就在/etc/nginx/下面。

htpasswd的内容
每一行为一个用户,格式为username:password。但是要注意,这里的password不是明文,而是将password进行crypt(3)加密后的字符串。

你可以使用一段PHP代码来生成htpasswd中的password:

复制代码 代码如下:

// 密码明文
$password = 'some password';
// 对密码进行加密
$password = crypt($password, base64_encode($password));
// 获得加密后的密码
echo $password;

然后将字符串写入htpasswd文件中:

复制代码 代码如下:

username1:xucqMk13TfooE
username2:YXTfb3xWKOMBM
...

htpasswd的权限

需要更改htpasswd文件的权限,执行如下命令:

复制代码 代码如下:

sudo chown root:www-data htpasswd
sudo chmod 640 htpasswd

Are You Ready?

当上面的准备工作都做好之后,我们就可以重新载入或者重启Nginx服务器了:

复制代码 代码如下:

sudo /etc/init.d/nginx reload
# or
sudo /etc/init.d/nginx restart

完工。

P.S. 不要忘记你设定的密码是啥了……

原文链接:http://www.fancycedar.info/2013/06/apache-nginx-htpasswd/

时间: 2024-09-20 11:48:16

在Nginx用htpasswd对网站进行密码保护的设置方法_nginx的相关文章

Nginx使用htpasswd对网站进行密码保护的配置

服务器上的有些目录,你可能不想给所有人看到,解决办法就是需要访问的人提供用户名和密码,认证成功才允许查看.如果认证失败,就会报HTTP错误:401 Authorization Required. 要实现这样的功能,就需要更改服务器的配置,并设定好用于登录的用户名和密码. 首先我们需要更改网站的Nginx的server配置,我们对需要授权访问的目录进行如下设置 location / {   # 添加下面两行   auth_basic "Restricted";   auth_basic_

nginx 目录密码保护的设置方法_nginx

那么 在 nginx.conf 文件中对应的 server 段中 添加 location ^~ /test/ { auth_basic TEST-Login; auth_basic_user_file /root/htpasswd; 再在 root 的主目录中 /root/ 创建一个新文件 htpasswd 此文件的书写格式是 用户名:密码 每行一个账户 并且 密码必须使用函数 crypt(3) 加密 官方档说 可以用 Apache 的 htpasswd 工具来创建密码文件 当然也可以使用per

Nginx 禁止访问某个目录或文件的设置方法_nginx

复制代码 代码如下: location = /config/ { return 404; } location =/config.ini{ return 404; } 这样只能禁止访问 http://www.jb51.net/path/ 复制代码 代码如下: location = /path/ { return 404; } 禁止访问 http://www.jb51.net/path/test.php 复制代码 代码如下: location ^~ /test { deny all; } 可能te

PHP(FastCGI)在Nginx的alias下出现404错误的解决方法_nginx

本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法.分享给大家供大家参考,具体如下: 在Nginx的官方wiki中如下描述 The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root. 在实际使用中alias下面的php返回404,而html确可

在Nginx服务器上配置Google反向代理的基本方法_nginx

长期以来谷歌在TC一直被间歇性干扰,直至今日已经被完全屏蔽,给我们的学习和工作造成极大不便.以下为反代谷歌的教程,共有两种方式. 一.直接反向代理,使用的是7ghost源码搭建,优点是简单容易上手,缺点是容易被屏蔽,不能搜索敏感词. 二.使用SSL加密反向代理,优点是安全.不易被屏蔽,缺点是技术性相对较强,需要折腾的地方也多. 现在主要简单说下第二种方法的设置过程. Step1:你得需要有一台Linux的海外VPS. Step2:Nginx环境的建立(为了方便,教程中就用AMH一键包进行环境构建

nginx php-fpm环境中chroot功能的配置使用方法_nginx

nginx+php-fpm是现在配置php环境非常流行的组合之一.nginx以其并发能力强,轻巧,速度快而受到非常多人的青睐,php-fpm以其安全,处理php速度快而成为与nginx的最佳组合.php-fpm提供有一个非常重要的功能chroot,它可以把指定的网站完完全全限制在一个目录下,可以对系统和其它虚拟机起到很好的隔离效果,这对系统的安全无疑是加强了不少,下面介绍如何配置. 我们假设域名为www.jb51.net,网站根目录为/home/chroot/www.jb51.net/web,需

详解Nginx服务器中配置全站HTTPS安全连接的方法_nginx

HTTPS就等于HTTP加上TLS(SSL),HTTPS协议的目标主要有三个:     数据保密性.保证内容在传输过程中不会被第三方查看到.就像快递员传递包裹时都进行了封装,别人无法知道里面装了什么东西.     数据完整性.及时发现被第三方篡改的传输内容.就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收.     身份校验.保证数据到达用户期望的目的地.就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方

配置Nginx服务器展示随机首页与空白图片的方法_nginx

显示随机首页模块(Random Index)一般情况下,一个站点默认首页都是定义好的index.html.index.shtml.index.php等等,如果想站点下有很多页面想随机展示给用户浏览,那得程序上实现,显得尤为麻烦,如果你安装了nginx,那么使用nginx的random index即可达成这个功能,凡是以/结尾的请求,都会随机展示当前目录下的文件作为首页. random index介绍 ngx_http_random_index_module模块处理以'/'为后缀的请求,并且在当前

通过Nginx服务器获取大文件MD5值的配置方法_nginx

HTTP协议新增了Content-MD5 HTTP头,但是nginx并不支持这个功能,而且官方也明确表示不会增加这项功能,为什么呢?因为每次请求都需要读取整个文件来计算MD5值,以性能著称的nginx绝对不愿意干出违背软件宗旨的事情.但是有些应用中,需要验证文件的正确性,有些人通过下载当前文件,然后计算MD5值来比对当前文件是否正确.不仅仅浪费带宽资源也浪费了大把的时间.有需求就有解决方案,网友开发了file-md5模块.1. 下载模块file-md5 # cd /usr/local/src #