nginx 怎么限制访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 怎么限制访问相关的知识,希望对你有一定的参考价值。

参考技术A

nginx如何限制指定ip访问?对于NGINX这个后起之秀的反向代理的Http服务软件,相信做系统管理人员一定不会陌生,便很多时候,对于如何限制指定IP地址访问NGINX服务器,我想分享一下这个知识点;

如图示,首先我们安装好一台LNMP服务器:

我这里是一键安装:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh

这里大家可以在是百度上搜一下便知道了,不做具体讲述;安装成功后,我们可以看到mysql启动,NGINX也启动了;然后,我们看一下启动效果;

然后;我们来找到nginx安装目录:

可以看到,NGINX安装在/usr/local/nginx目录下,那么,我们进入:/usr/local/nginx/conf/目录,并打开nginx.conf主配置文件;

找到server然后在server"",在这个大括号内加入deny IP地址是限制某IP地址访问;allow IP地址是只允许某IP地址访问;如图示,是限制192.168.1.1/24段访问此站,然后我们来验证一下:

[root@202 conf]# /etc/init.d/nginx reload

Reloading nginx daemon configuration....

可以看到,已经出现403 Forbidden,说明此段IP地址已经不能访问此站;

这里只是讲了一种nginx如何限制指定ip访问站点的方法,其实在实际当中,我们往往是指定某个IP访问某个站点或限制某个IP访问某个站点的某个目录或文件;大家可以举一返三;

Nginx 加密访问(访问限制)

Nginx 访问认证

应用环境:

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

Nginx配置:

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

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

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

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

test_user:文件名称

user:用户

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

[[email protected] 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表示删除指定的用户。


 


 

[[email protected] htpasswd]# htpasswd -b test_user bbb bbb #添加新用户

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

[[email protected] htpasswd]# cat test_user #内容

user:wPqXPPVO5ad9M

bbb:V1wqRumuBNlKE

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


 

[[email protected] htpasswd]# htpasswd -D test_user bbb #删除用户

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

[[email protected] htpasswd]# cat test_user 

user:wPqXPPVO5ad9M


 

 

 

 

以上是关于nginx 怎么限制访问的主要内容,如果未能解决你的问题,请参考以下文章

nginx 限制目录访问为403,允许其它访问ip访问怎么变成404

nginx lua redis 访问频率限制(转)

nginx 限制特定用户的ip访问

Nginx 加密访问(访问限制)

Nginx 使用IP限制访问来源

nginx 限制ip/限制访问路径