nginx1.8.1安装配置:
./configure
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--user=nginx --group=nginx \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-debug
make && make install
配置文件的组成部分:
- 主配置文件:nginx.conf
- include conf.d/*.conf
- /etc/nginx/conf.d/*.conf
- fastcgi配置文件:fastcgi_params,uwsgi_params
配置指令:
- args variable1 [variable2...]
- 支持变量
- 内置变量 :由编译模块引入
- 自定义变量 set variable value1
- 变量引用 $variable
配置文件组织结构
main block
event{
...
}
http{
...
server{
...
server_name
root
alias
location /url/{
}
...
}
server{
...
}
}
server:
1.listen监听
基于port:监听在不同的端口
基于hostname:server_name指向不同的主机名
2.listen
listen address [:port] [default_server] [ssl] [http2] [spdy]
listen port [default_server] [ssl] [http2] [spdy]
default_server:设置默认虚拟主机,用于基于IP地址,或使用了任意不能对应于任何一个server的name所返回站点;
ssl:用于限制只能通过ssl连接提供服务;
spdy:在编译了spdy模块的情况下
http2:http version 2;
3.server_name name [...]:
后可跟一个或多个主机名;名称还可以使用通配符和正则表达式~
首先做精确匹配
左侧通配符
右侧通配符
正则表达式
9.alias
只能用于location配置段,定义路径别名
location /images/ {
root /data/imags/;
}
location /iamges/ {
alias /data/imgs/;
}
注意:
root指令:给定的路径应该对应于location左边的'/'
/images/test.jpg - > /datat/imgs/images/test.jpg
alias指令:
/images/test.jpg - > /data/imgs/test.jpg
10.index
index file ...;
默认主页面
11.error_page code ... [=response] url;
error_page 404 /404.html
error_page 404 =200 /404.html
12.try_files file ...url;
try_files file ... =code;
尝试查找1至N-1个文件,第一个即为返回给请求者的资源,若找不到,择跳转至最后一个url(该url不能匹配至当前的location,否则会出现死循环)
13.keepalive_timeout timeout [header_timeout];
设定keepalive连接的超时时长;0表示禁止长连接;默认为75s;
14.keepalive_requests number;
在keepalive连接上所允许请求的最大资源数量;默认100
15.keepalive_disable none | browser ... ;
指明禁止为何种浏览器使用keepalive功能;
16.send_timeout
发送相应报文的超时时长,默认60s
17.client_body_buffer_size size;
接收客户请求报文body的缓冲区大小;默认为16k;超出此指定大小时,其将被移存于磁盘上
18.client_body_temp_path path [level1 [level2 [level3]]]
设定用于存储客户端请求body的临时存储路径及子目录结构和数量
client_body_temp_path /var/tmp/client_body 2 2;
19.limit_except METHOD {...}
对指定范围之外的其他方法进行访问控制;
limit_except GET {
allow 172.16.0.0/16;
deny all;
}
20.limit_rate speed;
限制客户端每秒所能传输的字节数,默认为0表示无限制
文件操作优化相关的配置
21. aio on|off
22.directio size|off
enable the use of the O_DIRECT flag,when reading files that are bigger than or equal to the specified size;
23.open_file_cache off;
open_file_cache max=N [inactive=time]
nginx可以缓存以下三种信息:
文件描述符、文件大小和最近一次修改时间
打开的目录的结构
没有找到的活着没有权限操作的文件的相关信息
max=N 表示可缓存的最大条目上限,一旦达到上限,会使用LRU算法从缓存中删除最近最少使用到的缓存项;
inactive=time 指定时间内未被访问的缓存项被删除
24.open_file_cache_errors on|off
是否缓存找不到其路径的文件、或没有权限访问的文件相关信息
25.open_file_cache_valid time;
每隔多久检查一次缓存中缓存项的有效性;默认为60s
26.open_file_cache_min_users number;
缓存项在非活动期限内最少应该被访问的次数
ngx_http_access_module 模块的配置,基于ip的访问控制
27. allow address | CIDR | unix |all;
deny address | CIDR | unix |all;
应用上下文:http、server、location、limit_except