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"请求后 匹配成功