linux运维学习笔记:nginx系列之02:nginx 身份验证基于IP和用户名
作者:周少言
2017年 12月 日 星期 ,于北京
声明:本博客是本人周少言在某培训机构学习期间所写,其中参考借鉴了他人的博客,本文将会选择性给出相关链接,如有侵权,恳请告知。本文如有错误,恳请告知,欢迎交流。
基于IP 验证
本实验安装nginx的主机IP为 192.168.22.43
vim /usr/local/nginx/conf/nginx.conf
针对server与针对http
譬如在server模块中添加一句
deny 192.168.22.42;
如果限制比较多可以在server模块下添加一句:
include /usr/local/nginx/conf/blockip.conf;
然后编辑该自定义配置文件
vim /usr/local/nginx/conf/blockip.conf
deny 192.168.22.42;
重启生效,在192.168.22.42这台主机上访问192.168.22.43
service nginx reload
基于用户名密码验证
- nginx后台为了安全性,需要配置htpasswd进行登录验证。
htpasswd是apache的一个模块,所有需要先安装apache服务。
yum -y install httpd
或者
yum -y install httpd-tools
创建用户,生成密码文件
htpasswd -c /usr/local/nginx/conf/htpasswd zhangsan
htpasswd -m /usr/local/nginx/conf/htpasswd lisi
cd /usr/local/nginx/conf ; ls
其中/usr/local/nginx/passwd文件就是自定义的密码文件,要被nginx配置文件调用
- 找到 nginx 配置文件,因为要对整个站点开启验证,所以在配置文件中的第一个server修改如下:
server {
listen 80;
server_name localhost;
.......
location / {
auth_basic "Nginx";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
autoindex on;
}
以上的修改是直接在location / { } 模块下修改,这将会是全目录加密。
然后重启 nginx:
service nginx reload
- 去验证。