阿里狼 发表于 2018-11-16 08:41:40

Nginx 随笔

  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 _;
  indexindex.html index.php;
  location /admin/ {
  root /data/www/;
  auth_basic "admin com";
  auth_basic_user_file /etc/nginx/passwd;
  }
  location /status/ {
  stub_status;
  }
  }
  # 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:等待其发出请求的空闲连接数量。

页: [1]
查看完整版本: Nginx 随笔