该ngx_http_access_module
模块允许限制对某些客户端地址的访问。
location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 2001:0db8::/32; deny all; }
该ngx_http_auth_basic_module
模块允许通过使用“ HTTP基本身份验证”协议验证用户名和密码来限制对资源的访问。
修改配置文件
location / { root html; index index.html index.htm; auth_basic "Admin"; ##认证对话框的提示字符串显示的内容 auth_basic_user_file /usr/local/nginx/conf/htpasswd; ##存放认证用的用户名和文件,需要用htpasswd命令生成
安装一下htpasswd命令
yum install httpd-tools
生成nginx用户和密码文件
[root@localhost nginx]# htpasswd -c /usr/local/nginx/conf/htpasswd nginx New password: Re-type new password: Adding password for user nginx
重启一下nginx然后访问
nginx -s reload
然后用我们刚才设置的用户密码登陆就可以了
该ngx_http_stub_status_module
模块提供对基本状态信息的访问。
示例
location /admin/ { alias /var/www/html/; stub_status; ##重点是这一个指令 }
重新装载一下配置文件
nginx -s reload
接下来我们访问网站
提供以下状态信息:
Active connections
Waiting
连接数。accepts
handled
accepts
除非达到某些资源限制(例如, worker_connections限制)相同。requests
Reading
Writing
Waiting
该ngx_http_limit_conn_module
模块用于限制每个定义的键的连接数,特别是来自单个IP地址的连接数。
并非所有连接都被计数。仅当连接具有服务器正在处理的请求并且已读取整个请求标头时,才对连接进行计数。
示例
http { limit_conn_zone $binary_remote_addr zone=addr:10m; ... server { ... location / { limit_conn addr 1; }
$binary_remote_addr: 客户端源IP地址信息 采用二进制格式 将IP头部字节控制在4字节
$remote_addr: 客户端源IP地址信息 将IP头部字节控制在24字节
zone=addr:10m; 从内存分配出一定空间(默认10m空间),用于存储访问网站客户端的源IP地址信息,将分配空间进行命名(默认名称addr)
addr 1; 限制内存空间中的每个地址只能建立一个连接
所述ngx_http_limit_req_module
模块用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率。使用“漏斗”方法完成限制。
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ... server { ... location / { limit_req zone=one burst=10; } rate=1r/s; 定义访问请求频率 每秒请求一次 request 实际配置 http { limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s; server { listen 80; server_name www.welkin.com; location / { root /html/www; index index.html; limit_req zone=test burst=10 nodelay; }设置每个客户端只能连接十次 不设置nodelay超过十次则每秒只能发送一个请求 } nodelay: 是否延迟发送请求信息,配置上表示不延迟发送,将过多请求进行丢弃
该ngx_http_rewrite_module模块用于使用PCRE正则表达式更改请求URI,返回重定向并有条件地选择配置。
实例配置
valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.; if ($invalid_referer) { return 403; }
以上所有来至example.com和域名以及www.example.org/galleries/和google的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。
参数可以如下所示:
none
请求头中缺少“Referer”字段;
blocked
“Referer”字段出现在请求头中,但其值已被防火墙或代理服务器删除; 这些值是不以“ http://
”或“ https://
” 开头的字符串;
server_names
“Referer”请求标题字段包含一个服务器名称; 任意字符串定义一个服务器名称和一个可选的URI前缀。服务器名称可以*
在开头或结尾处具有“ ”。在检查期间,“Referer”字段中的服务器端口被忽略; 正则表达式的第一个符号应该是“ ~
”。应该注意的是,表达式将与在“ http://
”或“ https://
” 之后开始的文本匹配。
ngx_http_autoindex_module模块处理以斜线字符(‘/‘)结尾的请求并产生目录列表。
location / {
autoindex on;
}
待续(●ˇ∀ˇ●)
原文:https://www.cnblogs.com/shmilyxue/p/13275583.html