本文共 1564 字,大约阅读时间需要 5 分钟。
http:MPM
prefork,worker,event
prefork:主进程,生成多个子进程,每个子进程处理一个请求;
worker:主进程,生成多个子进程,每个子进程生成多个线程,每个线程响应一个请求。
event:主进程,生成多个子进程,每个子进程处理多个请求;
I/O类型:
同步:调用发出之后不会立即返回,但一但返回,则返回即使最终结果。
异步:调用发出之后,被调用方立即返回消息,但返回的并非最终结果,被调用者通过状态、通知机制等来通知调用者,或通过回调函数来处理结果;
阻塞:调用结果返回之前,调用者会被挂起;调用者只有在得到返回结果之后才能继续;
非阻塞:调用者在结果返回之前,不会被挂起。即调用不会阻塞调用者;
I/O模型:
从磁盘到内核内存,在从内核内存复制到进程内存。
nginx开发之初是基于事件驱动行I/O,并且是边缘触发。
用户通过http/https与worker进程通讯,
worker 通过http反代web server
worker 通过 fastcgi动态模块加载动态资源
worker 通过memcache 与mecache 通讯。
master:加载配置文件,管理worker进程,平滑升级
worker:http服务,http代理,fastcgi代理。
~:正则表达式匹配,区分大小写
~*:正则表达式匹配,不区分大小写
^~:URI的左半部分匹配
location /images/ {
root /data/imgs/;
}
location /images/ {
alias /data/imgs/;
}
root:指令
/images/test.gpg -----> /data/imgs/images/test.gpg
alias:指令
/images/test.gpg-----> /data/imgs/test.gpg
#长连接有效时间,默认65秒
keepalive_timeout
#在持久连接上,允许请求的最大资源数,默认为100个
keepalive_requests
#禁止那些浏览器使用keepalive功能。
keepalive_disable
#发送响应报文的超时时长,默认为60秒,一般为服务器响应客户端,给客户端发送数据。
send_timeout
nginx 状态信息模块:
ngx_http_stub_status_module
# cat /etc/nginx/conf.d/admin.conf
server
{
listen 80;
server_name _;
index index.html index.php;
location /admin/ {
root /data/www/;
auth_basic "admin com";
auth_basic_user_file /etc/nginx/passwd;
}
location /status/ {
stub_status;
}
}
[root@localhost www]# curl http://192.168.121.131/status/
Active connections: 1
server accepts handled requests
14 14 48
Reading: 0 Writing: 1 Waiting: 0
Active connections:当前活动的客户端连接数。
accepts:已经接受的客户端连接数
handled:已处理过的客户端连接总数量
requests:客户端的总请求数。
Reading:正在读取的客户端请求的数量。
Writing:正向其发送响应报文的连接数量。
Waiting: 等待其发出请求的空闲连接数量。
转载地址:http://rbbja.baihongyu.com/