nginx location 斜杠_Web集群:Nginx常用基础模块

Nginx目录索引

目录索引模块简述

ngx_http_autoindex_module模块处理以斜杠字符('/')结尾的请求,并生成目录列表。

当ngx_http_index_module模块找不到索引文件时,通常会将请求传递给ngx_http_autoindex_module模块。


配置

Nginx默认是不允许列出整个目录浏览下载。

Syntax: autoindex on | off;Default: autoindex off;Context: http, server, location # autoindex常用参数autoindex_exact_size off;默认为on, 显示出文件的确切大小,单位是bytes。修改为off,显示出文件的大概大小,单位是kB或者MB或者GB。 autoindex_localtime on;默认为off,显示的文件时间为GMT时间。修改为on, 显示的文件时间为文件的服务器时间。 charset utf-8,gbk;默认中文目录乱码,添加上解决乱码。

配置示例:

[root@web01 ~]# vim /etc/nginx/conf.d/module.confserver { listen 80; server_name module.driverzeng.com; charset utf-8,gbk; localtion / { root /code; index index.html index.htm; } location /download { alias /module; autoindex on; autoindex_exact_size off; autoindex_localtime on; }}

Nginx状态监控

ngx_http_stub_status_module模块提供对基本状态信息的访问。

默认情况下不构建此模块,应使用--with-http_stub_status_module配置参数启用它


配置

Syntax: stub_status;Default: —Context: server, location

配置Nginx status示例

server { listen 80; server_name module.driverzeng.com; access_log off;  location /nginx_status { stub_status; }}server { listen 80; server_name module.driverzeng.com; charset utf-8,gbk; localtion / { root /code; index index.html index.htm; } location /download { alias /module; autoindex on; autoindex_exact_size off; autoindex_localtime on; } location /nginx_status { stub_status; }}

打开浏览器访问:http://module.driverzeng.com/nginx_status

8b2b4b204a7ce553ee16e739b74a6b94.png

Active connections # 当前活动的连接数accepts # 当前的总连接数TCPhandled # 成功的连接数TCPrequests # 总的http请求数Reading # 请求Writing # 响应Waiting # 等待的请求数,开启了keepalive# 注意, 一次TCP的连接,可以发起多次http的请求, 如下参数可配置进行验证keepalive_timeout 0; # 类似于关闭长连接keepalive_timeout 65; # 65s没有活动则断开连接

Nginx访问控制

基于IP的访问控制 http_access_module

基于用户登陆认证 http_auth_basic_module


nginx基于IP的访问控制

#允许配置语法Syntax: allow address | CIDR | unix: | all;Default: —Context: http, server, location, limit_except #拒绝配置语法Syntax: deny address | CIDR | unix: | all;Default: —Context: http, server, location, limit_except

1)访问控制配置示例,拒绝指定的IP,其他全部允许

server { listen 80; server_name module.driverzeng.com; access_log off;  location /nginx_status { stub_status; deny 10.0.0.1; allow all;  }}

2) 访问控制配置示例, 只允许谁能访问, 其它全部拒绝

server { listen 80; server_name module.driverzeng.com; access_log off;  location /nginx_status { stub_status; allow 10.0.0.0/24; allow 127.0.0.1; deny all; }}

Nginx基于用户登陆认证

1)基于用户登陆认证配置语法

#访问提示字符串Syntax: auth_basic string| off;Default: auth_basic off;Context: http, server, location, limit_except #账户密码文件Syntax: auth_basic_user_file file;Default: -Context: http, server, location, limit_except

2)基于用户登陆认证配置实践

#1.需要安装httpd-tools,该包中携带了htpasswd命令[root@web01 ~]# yum install httpd-tools#2.创建新的密码文件, -c创建新文件 -b允许命令行输入密码[root@web01 ~]# htpasswd -b -c /etc/nginx/auth_conf zls zls #3.nginx配置调用server { listen 80; server_name module.driverzeng.com; access_log off;  location /nginx_status { stub_status; auth_basic "Auth access Blog Input your Passwd!"; auth_basic_user_file auth_conf; }}

Nginx访问限制

在企业中经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问, 会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,请求数、进行限制。

ngx_http_limit_conn_module模块可以根据定义的key来限制每个键值的连接数,如同一个IP来源的连接数。

limit_conn_module 连接频率限制

limit_req_module 请求频率限制


Nginx连接限制配置实战

1)Nginx连接限制配置语法

#模块名ngx_http_limit_conn_moduleSyntax: limit_conn_zone key zone=name:size;Default: —Context: http Syntax: limit_conn zone number;Default: —Context: http, server, location

2)Nginx连接限制配置实践

在一个公网Nginx中配置

http{ #http层,设置 # Limit settings limit_conn_zone $remote_addr zone=conn_zone:10m;server{ #server层调用 #连接限制,限制同时最高1个连接 limit_conn conn_zone 1; }}

3)使用ab工具进行压力测试

[root@web01 ~]# yum install -y httpd-tools[root@web01 ~]# ab -n 20 -c 2 http://127.0.0.1/index.html

4)nginx日志结果

2018/10/24 18:04:49 [error] 28656#28656: *1148 limiting connections by zone "conn_zone
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值