Fork me on GitHub

nginx读书日志

2016.12.20

nginx 功能特性: 既可以作为http服务器,也可以作为反向代理服务器或者邮件服务器

基本服务:处理静态文件,处理索引文件以及支持自动索引

nginx服务器中主要由proxy_cache提供缓存服务

worker_processes number|auto;

  number :是指定进程最多可以产生的 worker process 

  auto :nginx 进程将自动检测

nginx分模块基本可以分为3个模块

1.全局块(默认配置文件从开始到events的内容 设置一些影响nginx服务整体运行的配置指令 通常包括运行的nginx服务器的用户组,允许生成的worker process数 nginx进程pid存放路径 日志存放路径的类型以及配置文件引入)

2.events块(影响nginx服务器与用户的网络链接 对nginx服务影响的性能较大)

3.http块(代理 缓存和日志定义 和第三方模块的配置)

http块下面包含 

  server块 每个server块相当于1台虚拟主机

  location块 对特定的请求进行处理 地址定向 数据缓存 和 应答控制等都是在这部分实现

accetp_mutex on|off 默认为开启状态 在events块中进行配置 对多个nginx进程接收连接序列化防止多个进程对连接的争抢

molti_accept on|off 默认为关闭状态 因为每个worker process都有能力同时接收多个新到达的网络连接 off状态的时候每个worker process 一次只能接收一个新到达的网络连接 改指令只能在events中进行设置

worker_connections   是nginx服务器实现并发处理的关键 理论上来说worker_connections值越大可以支持的并发处理量也越多 但是还是要受限制于操作系统本上和软件本身和硬件

worker_connections 主要用来设置允许每一个worker process同时开启的最大连接数量 其语法结构为

  worker_connections number;默认 number 的值为512     

定义MIME-Type

在常用的浏览器中可以显示的内容有html.xml.gif.flash.等多种媒体资源 浏览器为了区分致谢资源 需要使用MIME Type.也就是nginx作为web服务器

在http模块的全局中进行配置

include mime.types;#支持的媒体类型

default_type application/octet-stream; #默认的类型

 

20170208

配置nginx进程pid存放路径

nginx进程作为系统的守护进程运行,我们需要在文件中保存当前运行程序的主进程号 指令是pid

配置成功和失败的日志

  error_log file | stderr [debug | info | notice | warn | error | crit | alert | emerg]

    eg:error_log logs/error.log error;

  access_log file

配置文件的引入 

  include file

配置连接超时时间

  keepalive_timeout timeout [header_timeout];

  timeout 服务器端对连接的保持时间 默认值75s

日志的输入格式配置

log_format custom '$remote_addr - $remote_user [$time_local] '
'"$request" $status $request_time $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$request_body"';

access_log /var/log/nginx/access.log custom;

listen 是监听端口 

  listen *:80 | *:8000;

基于名称的虚拟主机配置

  server块对外提供的虚拟主机

  server_name name ...;对于name来说可以只有一个名称 也可以由多个名称并列,同时也支持*符号和正则表达式

  eg:server_name myserver.com www.myserver.com;

配置location块

  官方文档中定义的location 语法结构为:location [= | ~|~*|^~] uri (...)

  uri 为待匹配的请求字符串 可以使不含正则表达的字符串 如/myserver.php等,也可以是半酣正则表达式的字符串

配置请求的根目录

  web服务器收到网络请求后 是在服务器端的指定目录中寻找资源,在nginx服务器中指令root就是用来配置这个根目录的 root path; 

  这个root可以在 http server location块中配置

  eg : location /data/ {

       root /locationtest1; 

     }

  当location块接收到 "data/index.html"的请求是,将在locationtest1/data/目录下找到index.html相应请求

在location块中 除了使用root指令明确请求的根目录,还可以使用alias指令改变location接收到的uri的请求路径,其语法结构为:alias path;patch 即为修改后的根路径

  eg : location ~^/data/(.+\.(htm|html))$ {

      alias  /locationtest1/other/$1;

     }

    当location 块接收到 "/data/index.htm"请求后 匹配成功

  

posted @ 2016-12-20 14:34  明天后浪  阅读(105)  评论(0编辑  收藏  举报