心愿,是这种两个词,不是保有,而是崇尚。上一则:ailx10:Nginx此基础进阶001 ;下一则:ailx10:Nginx此基础进阶003 ;
Nginx为实用性两个完备的动态Web伺服器提供更多了8类实用性项,相关联ngx_http_core_module处置组件:
应用软件与允诺的递送文档方向的表述缓存及硬盘天然资源的重新分配数据传输的增设MIME类别的增设相关联用程序允诺的管制文档操作方式的强化相关联用程序允诺的特定处置1 应用软件与允诺的递送
每一server块是两个应用软件
1.1 窃听路由器
句法:listen address:port;(预设:listen 80;)实用性块:server1.2 PS3中文名称
句法:server_name name […];(预设:server_name “”;)实用性块:serverserver_name与HTTP数据流中HOST表头的相匹配错误率:
具体来说优先选择大部份数组全然相匹配的server_name,比如说www.ailx10.com 其二优先选择纯虚在前面的server_name,比如说*.ailx10.com 利皮扬卡优先选择纯虚在前面的server_name,比如说www.aixl10.*最终优先选择采用程序语言才相匹配的server_name,比如说~^\.ailx10\.com$ 假如都不相匹配,走listen实用性项中加入default的server块假如还不相匹配,走相匹配到listen路由器的第两个server块1.3 server_names_hash_bucket_size
句法:server_names_hash_bucket_size size;(预设:32|64|128)实用性项:http、server、location为了提高快速寻找到相应server name的能力,Nginx采用散列表来存储server name,server_names_hash_bucket_size增设每一散列桶占用的缓存大小。
1.4 server_names_hash_max_size
句法:server_names_hash_max_size size;(预设:512)实用性项:http、server、locationserver_names_hash_max_size会影响散列表的冲突率,server_names_hash_max_size越大消耗的缓存就越大,但散列key的冲突率会降低,检索速度更快。
1.5 重定向PS3中文名称的处置
句法:server_name_in_redirect on|off;(预设:on)实用性块:http、server或location需要配合server_name采用,表示在重定向允诺时会采用server_name里实用性的第两个PS3名代替原先允诺中的Host头部,而采用off时,表示在重定向请求中是哟经允诺本身的Host头部。
1.6 location
句法:location [=|~|~*|^~|@] /uri/ {…}实用性块:serverlocation会尝试根据用户允诺中的URI来匹配上面的/uri表达式,假如可以相匹配,就优先选择location{}块中的实用性来处置用户允诺。
=表示把URI作为数组,以便于参数中的uri做全然相匹配~表示相匹配URI时是字母大小写敏感的~*表示相匹配URI时忽略字母大小写问题^~表示相匹配URI时只需要其前半部分与uri参数相匹配即可@表示仅用于Nginx服务内部允诺之间的重定向,不直接处置用户允诺支持程序语言当两个允诺相匹配多个location时,实际上这个允诺会被第两个location处置。一般把location /作为最终一条,用于相匹配大部份的允诺。
2 文档方向的定义
2.1 以root方式增设天然资源方向句法:root path;预设:root html;实用性块:http、server、location、if假如有两个允诺的URI是/download/index/ailx10.html,那么伺服器将返回/opt/web/html/download/index/ailx10.html文档中的内容。
2.2 以alias方式增设天然资源方向
句法:alias path;实用性块:location假如两个允诺的URI是/conf/ailx10.html,那么伺服器将返回/usr/local/nginx/conf/ailx10.html文档中的内容。
推荐采用root方式
2.3 访问首页
句法:index file …;预设:indedx index.html;实用性块:http、server、location假如两个允诺的URI是/,Nginx具体来说会尝试访问path/index.php文档,假如可以访问,就直接返回文档内容结束允诺,否则再尝试返回path/html/index.php文档中的内容,以此类推。
2.4 根据HTTP返回码重定向页面
句法:error_page code [code…][=|=answer-code] uri | @named_location实用性块:http、server、location、if虽然重定向了URI,但返回的HTTP错误码还是原来的,用户可以通过=来更改返回的错误码。
2.5 是否允许递归采用error_page
句法:recursive_error_pages [on|off];预设:recursive_error_pages off;实用性块:http、server、location2.6 try_files
句法:try_files path1 [path2] uri;实用性块:server、location按照顺序依次访问每两个path,直到有两个可以访问为止。
3 缓存及硬盘天然资源的重新分配
3.1 HTTP包体只存储到硬盘文档中
句法:client_body_in_file_only on | clean | off;预设:client_body_in_file_only off;实用性块:http、server、location3.2 HTTP包体尽量写入到两个缓存buffer中
句法:client_body_in_single_buffer on | off;预设:client_body_in_single_buffer off;实用性块:http、server、location3.3 存储HTTP头部的缓存buffer大小
句法:client_header_buffer_size size;预设:client_header_buffer_size 1k;实用性块:http、server3.4 存储超大HTTP头部的缓存buffer大小
句法:large_client_header_buffers number size;预设:large_client_header_buffers 4 8k;实用性块:http、server3.5 存储HTTP包体的缓存buffer大小
句法:client_body_buffer_size size;预设:client_body_buffer_size 8k/16k;实用性块:http、server、location3.6 HTTP包体的临时存放目录
句法:client_body_temp_path dir-path [level1 [level2 [level3]]]预设:client_body_temp_path client_body_temp;实用性块:http、server、location3.7 connection_pool_size
句法:connection_pool_size szie;预设:connection_pool_size 256;实用性块:http、server3.8 request_pool_size
句法:request_pool_size size;预设:request_pool_size 4k;实用性块:http、serverTCP连接关闭时会销毁connection_pool_size指定的连接缓存池
HTTP允诺结束时会销毁request_pool_size指定的HTTP允诺缓存池
两个TCP连接可能被复用多个HTTP允诺
4 数据传输的增设
4.1 读取HTTP头部的超时时间
句法:client_header_timeout time预设:client_header_timeout 60;实用性块:http、server、location4.2 读取HTTP包体的超时时间
句法:client_body_timeout time预设:client_body_timeout 60;实用性块:http、server、location4.3 发送响应的超时时间
句法:send_timeout time;预设:send_timeout 60;实用性块:http、server、location4.4 reset_timeout_connection
句法:reset_timeout_connection on | off;预设:reset_timeout_connection off;实用性块:http、server、location启动这个选项后,超时后会向应用程序发送RST重置包,使得伺服器避免产生许多处于FIN_WAIT1、FIN_WAIT2、TIME_WAIT状态的TCP连接。
4.5 lingering_close
句法:lingering_close off | on | always;预设:lingering_close on;实用性块:http、server、location控制Nginx关闭用户连接的方式:
always:关闭用户连接前必须无条件处置连接上大部份用户发送的数据off:关闭连接时全然不管连接上是否已经有准备就绪的数据on:有优先选择的处置连接上的用户数据4.6 lingering_time
句法:lingering_time time;预设:lingering_time 30s;实用性块:http、server、location经过lingering_time增设的时间后,Nginx不管用户是否仍在上传文档,都会把连接关闭。
4.7 lingering_timeout
句法:lingering_timeout time;预设:lingering_timeout 5s;实用性块:http、server、location4.8 对某些浏览器禁用keepalive功能
句法:keepalive_disable [msie6 | safari | noe]…预设:keepalive_disable msi6 safari实用性块:http、server、locationHTTP允诺中的keepalive功能是为了让多个允诺复用两个HTTP长连接。
4.9 keepalive超时时间
句法:keepalive_timeout time预设:keepalive_timeout 75;实用性块:http、server、locationkeepalive连接在闲置超过一定时间后(预设75秒),伺服器和浏览器都会去关闭这个连接。
4.10 两个keepalive长连接上允许承载的允诺最大数
句法:keepalive_requests n;预设:keepalive_requests 100;实用性块:http、server、location4.11 tcp_nodelay
句法:tcp_nodelay on | off;预设:tcp_nodelay off;实用性块:http、server、location确定对keepalive连接是否采用TCP_NODELAY选项。
4.12 tcp_nopush
句法:tcp_nopush on | off;预设:tcp_nopush off;实用性块:http、server、location5 MIME类别的增设
5.1 MIME type与文档扩展的映射
句法:type {…};实用性块:http、server、location表述MIME type到文档扩展名的映射,多个扩展名可以映射到两个MIME type。
5.2 预设MIME type
句法:default_type MIME-type;预设:default_type text/plain;实用性块:http、server、location当找不到相应的MIME type与文档扩展名之间的映射时,采用预设的MIME-type作为HTTP header中的Content-Type。
5.3 types_hash_bucket_size
句法:types_hash_bucket_size size;预设:types_hash_bucket_size 32|64|128;实用性块:http、server、location为了快速寻找到相应的MIME type,Nginx采用散列表来存储MIME type与文档扩展名,types_hash_bucket_size增设了每一散列桶占用的缓存大小。
5.4 types_hash_max_size
句法:types_hash_max_size size;预设:types_hash_max_size 1024;实用性块:http、server、location6 相关联用程序允诺的管制
6.1 按HTTP方法名管制用户允诺
句法:limit_except method … {…}实用性块:locationNginx通过limit_except前面指定的方法来管制用户允诺。方法名包括:get、head、post、put、delete、mkcol、copy、move、options、propfind、proppatch、lock、unlock、patch。
6.2 HTTP允诺包体的最大值
句法:client_max_body_size size;预设:client_max_body_size 1m;实用性块:http、server、location管制HTTP的Content-Length表头值得大小。
6.3 对允诺的限速
句法:limit_rate speed;预设:limit_rate 0;实用性块:http、server、location、if管制应用程序每秒传输的字节数,0表示不限速。
6.4 limit_rate_after
句法:limit_rate_after time;预设:limit_rate_after 1m;实用性块:http、server、location、ifNginx向应用程序发送的响应长度超过limit_rate_after 后才开始限速。