Nginx配置实用密码访问网站的方法
2014-03-28 23:20
232 查看
很多时候我们需要对一些网站进行密码保护,比如团队内部的站点、demo站点等等。这里所说的密码保护是服务器级的,并非网站应用层的注册登录那一套,而是利用服务器配置和htpasswd文件来实现访问的密码验证。
最后的效果就类似(不同浏览器的界面有所不同):
![](http://www.weste.net/uploadfile/2013/0607/20130607095939575.png)
如果认证失败,就会报HTTP错误:401 Authorization Required。
要实现这样的功能,就需要更改服务器的配置,并设定好用于登录的用户名和密码。
首先我们需要更改网站的Nginx的server配置,Ubuntu服务器的话这个配置文件通常位于/etc/nginx/sites-enabled/,比如我这里就使用默认的配置文件/etc/nginx/sites-enabled/default来做一个例子:
接下来需要创建htpasswd文件,这里有一些细节需要注意:
你可以使用一段PHP代码来生成htpasswd中的password:
然后将字符串写入htpasswd文件中:
完工。
最后的效果就类似(不同浏览器的界面有所不同):
![](http://www.weste.net/uploadfile/2013/0607/20130607095939575.png)
如果认证失败,就会报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
完工。
相关文章推荐
- Nginx列出目录和文件并用密码控制访问权限配置方法
- nginx配置三:设置网站密码访问
- nginx 配置虚拟主机,实现在一个服务器可以访问多个网站的方法
- Nginx下配置网站SSL实现https访问本站就是用的这方法
- Nginx下配置网站SSL实现https访问本站就是用的这方法
- Nginx下配置网站ssl实现https访问
- apache不同端口访问不同网站 配置方法
- Nginx网站使用CDN之后禁止用户真实IP访问的方法
- 提高网站访问速度最实用的方法:启用IIS6的GZIP
- nginx实现访问网站或目录密码认证保护
- nginx配置访问指定图片路径方法
- nginx 配置后网站图片或js 加载出来一半或者不出来刷新才可以,chrome 浏览器访问项目时加载大文件失败 ERR_CONTENT_LENGTH_MISMATCH:
- 他人访问我的本地网站配置方法
- linux系统中配置Nginx 拒绝代理访问指定IP的方法
- Nginx屏蔽个别User-Agent蜘蛛访问网站的方法
- nginx 禁止某个IP访问立网站的设置方法
- 配置NGINX支持中文URL 中文文件名或目录404无法访问的解决方法
- nginx中限制通过ip访问网站的方法
- 网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法)
- WAMPserver配置方法(允许外部访问、phpmyadmin设置为输入用户名密码才可登录等)