Nginx的配置三
1.1 长连接配置
什么叫长连接?
当客户端与服务器连接后,如果没有任何动作,那么服务器会有个断开机制,长连接就是设置这段时间的长短
keepalive_timeout number;
# 这个是设定保持连接超时时长,单位是秒,0 表示禁止长连接,默认为75s
#
# 还有个相关配置,配置在长连接中允许请求的资源最大数量,默认为100
#
keepalive_requests number;
我们试一试
keepalive_timeout 30 35; # 30是实际值,显示值为35
keepalive_requests 3;
#############################################
[root@localhost@conf]->curl -I www.flamenca.net
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Thu, 12 Nov 2020 09:18:08 GMT
Content-Type: text/html
Content-Length: 13
Last-Modified: Tue, 10 Nov 2020 14:08:15 GMT
Connection: keep-alive
Keep-Alive: timeout=35 # 注意这里显示的时间是35
ETag: "5faa9ecf-d"
Accept-Ranges: bytes
#
# 如果设置为0,会关闭会话保持功能
# 浏览器会收到下面的报文
Connection:close
1.2 作为下载服务器时的设置
# 在配置文件中新增一个location
location /download {
autoindex on;
# 自动索引功能
autoindex_exact_size on;
# 自动计算文件大小(单位bytes),设置为off的时候只显示大概大小
autoindex_localtime on;
# 显示本机时间为本机时间,默认为GMT时间
root /data/nginx/html/pc;
}
#
# 建立download文件夹
[root@localhost@conf]->mkdir /data/nginx/html/pc/download -p
# 考个文件进去
[root@localhost@conf]->cp /root/anaconda-ks.cfg /data/nginx/html/pc/download/
#
# reload nginx
#
# 测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OjjsaWge-1605175370114)(06 Nginx的配置三.assets/image-20201112173507917.png)]
下载服务器还可以有其他设置
limit_rate rate;
# 限制客户端的下载网速
# 例
limit_rate 10k;
1.3 作为上传服务器设置
待填坑
1.4 其他设置
keepalive_disable none | browser ...;
# 对选择的浏览器禁用长连接
#
limit_except method ... {...}
# 仅仅用于location内
# 来限制客户端的请求方法
#
# 例
method:GET,HEAD,POST,PUT,DELETE,MKCOL,COPY,MOVE,OPTIONS,PROPFIND,PROPPATCH,LOCK,UNLOCK,PATCH
limit_except GET {
# 只允许设定的网段IP使用GET方法
allow 192.168.0.0/24;
allow 192.168.33.3;
deny all;
}
#
#
aio on | off
# 是否启用异步IO
#
# linux 2.6 以上内核提供以下几个系统调用来支持aio:
# SYS_io_setup:建立aio 的context
# SYS_io_submit: 提交I/O操作请求
# SYS_io_getevents:获取已完成的I/O事件
# SYS_io_cancel:取消I/O操作请求
# SYS_io_destroy:毁销aio的context
#
#
directio size | off
# 启用直接IO
# 默认为关闭,当设定指定大小时,会将数据立即写入磁盘而非放入缓存中
# nginx 缓存相关
open_file_cache off;
open_file_cache max=N [inactive=time];
# nginx可以缓存以下三种信息:
# (1) 文件元数据:文件的描述符、文件大小和最近一次的修改时间
# (2) 打开的目录结构
# (3) 没有找到的或者没有权限访问的文件的相关信息
# max=N:可缓存的缓存项上限数量;达到上限后会使用LRU(Least recently used,最近最少使用)算法实现管理
# inactive=time:缓存项的非活动时长,在此处指定的时长内未被命中的或命中的次数少于
#
#
open_file_cache_min_uses number;
# 该指令所指定的次数的缓存项即为非活动项,将被删除
# open_file_cache指令的inactive参数指定的时长内,至少被命中此处指定的次数方可被归类为活动项
# 默认值为1
#
open_file_cache_errors on | off;
# 是否缓存查找时发生错误的文件一类信息
# 默认为off
#
#
open_file_cache_valid time;
# 缓存项有效性的检查验证频率
# 默认值为60s
# 范例
open_file_cache max=10000 inactive=6 0s;
open_file_cache_valid 30s;
open_file_cache_min_uses 5;
open_file_cache_errors on;
server_tokens off;
# 隐藏Nginx server版本
1.5 Nginx状态页
要实现该功能需要机遇块ngx_http_auth_basic_module实现,在编译安装nginx的时候需要添加编译参数–withhttp_stub_status_module
# 新建location
location /status {
stub_status;
}
# 不需要建立对应文件夹
# 最好加入网段的限制
#
# 测试
状态页用于输出nginx的基本状态信息:
输出信息示例:
Active connections: 2
server accepts handled requests
38 38 42
上面三个数字分别对应accepts,handled,requests三个值
Reading: 0 Writing: 1 Waiting: 1
Active connections: 当前处于活动状态的客户端连接数,包括连接等待空闲连接数。
accepts:统计总值,Nginx自启动后已经接受的客户端请求的总数。
handled:统计总值,Nginx自启动后已经处理完成的客户端请求的总数,通常等于accepts,除非有因
worker_connections限制等被拒绝的连接。
requests:统计总值,Nginx自启动后客户端发来的总的请求数。
Reading:当前状态,正在读取客户端请求报文首部的连接的连接数。
Writing:当前状态,正在向客户端发送响应报文过程中的连接数。
Waiting:当前状态,正在等待客户端发出请求的空闲连接数,开启 keep-alive的情况下,这个值等于
active – (reading+writing)