nginx配置项(二)
虚拟主机配置:
(1)监听端口
语法: listen address:port[default(deprecated in 0.8.21)|default_server| [backlog=num|rcvbuf=size|sndbuf=size|accept_filter=filter|deferred|bind|ipv6only=[on|off]|ssl]];
默认: listen 80;
配置块: server
IPV4:
listen 127.0.0.1:8000;
listen 127.0.0.1; # 注意:不加端口时,默认监听80端口
listen 8000;
listen *:8000;
listen localhost:8000;
在地址和端口后,还可以加上其他参数
listen 443 default_server ssl;
listen 127.0.0.1 default_server accept_filter=dataready backlog=1024;
IPV6:
listen [::]:8000;
listen [fe80::1];
listen [:::a8c9:1234]:80;
listen可用参数的意义:
default:将所在的server块作为整个Web服务的默认server块。如果没有设置这个参数, 那么将会以在nginx.conf中找到的第一个server块作为默认server块。为什么需要默认虚拟主机 呢?当一个请求无法匹配配置文件中的所有主机域名时,就会选用默认的虚拟主机(在11.3 节介绍默认主机的使用)。
default_server:同上。
backlog=num:表示TCP中backlog队列的大小。默认为–1,表示不予设置。在TCP建 立三次握手过程中,进程还没有开始处理监听句柄,这时backlog队列将会放置这些新连接。 可如果backlog队列已满,还有新的客户端试图通过三次握手建立TCP连接,这时客户端将会 建立连接失败。
bind:绑定当前端口/地址对,如127.0.0.1:8000。只有同时对一个端口监听多个地址时 才会生效。
ssl:在当前监听的端口上建立的连接必须基于SSL协议。
(2)主机名称
语法: server_name name[...];
默认: server_name"";
配置块: server
(3)server_names_hash_bucket_size
语法: server_names_hash_bucket_size size;
默认: server_names_hash_bucket_size 32|64|128;
配置块: http、server、location
(4)server_names_hash_max_size
语法: server_names_hash_max_size size;
默认: server_names_hash_max_size 512;
配置块: http、server、location
(5)重定向主机名称的处理
语法: server_name_in_redirect on|off;
默认: server_name_in_redirect on;
配置块: http、server或者location
(6)location
语法: location[=|~|~*|^~|@]/uri/{...}
配置块: server
文件路径的定义:
(1)以root方式设置资源路径
语法: root path;
默认: root html;
配置块: http、server、location、if
(2)以alias方式设置资源路径
语法: alias path;
配置块: location
如果有一个请求的URI是/conf/nginx.conf,而用户实际想访问的文件在
usrlocal/nginx/conf/nginx.conf,那么想要使用alias来进行设置的话:
location conf {
alias usr/local/nginx/conf/;
}
如果用root设置:
location conf {
root usr/local/nginx/;
}
(3)访问首页
语法: index file...;
默认: index index.html;
配置块: http、server、location
(4)根据HTTP返回码重定向页面
语法: error_page code[code...][=|=answer-code]uri|@named_location
配置块: http、server、location、if
(5)是否允许递归使用error_page
语法: recursive_error_pages[on|off];
默认: recursive_error_pages off;
配置块: http、server、location
(6)try_files
语法: try_files path1[path2]uri;
配置块: server、location
内存及磁盘资源的分配:
(1)HTTP包体只存储到磁盘文件中
语法: client_body_in_file_only on|clean|off;
默认: client_body_in_file_only off;
配置块: http、server、location
(2)HTTP包体尽量写入到一个内存buffer中
语法: client_body_in_single_buffer on|off;
默认: client_body_in_single_buffer off;
配置块: http、server、location
(3)存储HTTP头部的内存buffer大小
语法: client_header_buffer_size size;
默认: client_header_buffer_size 1k;
配置块: http、server
(4)存储超大HTTP头部的内存buffer大小
语法: large_client_header_buffers number size;
默认: large_client_header_buffers 48k;
配置块: http、server
(5)存储HTTP包体的内存buffer大小
语法: client_body_buffer_size size;
默认: client_body_buffer_size 8k/16k;
配置块: http、server、location
(6)HTTP包体的临时存放目录
语法: client_body_temp_path dir-path[level1[level2[level3]]]
默认: client_body_temp_path client_body_temp;
配置块: http、server、location
client_body_temp_path opt/nginx/client_temp 1 2;
(7)connection_pool_size
语法: connection_pool_size size;
默认: connection_pool_size 256;
配置块: http、server
(8)request_pool_size
语法: request_pool_size size;
默认: request_pool_size 4k;
配置块: http、server
网络连接的设置:
(1)读取HTTP头部的超时时间
语法: client_header_timeout time(默认单位:秒);
默认: client_header_timeout 60;
配置块: http、server、location
(2)读取HTTP包体的超时时间
语法: client_body_timeout time(默认单位:秒);
默认: client_body_timeout 60;
配置块: http、server、location
(3)发送响应的超时时间
语法: send_timeout time;
默认: send_timeout 60;
配置块: http、server、location
(4)reset_timeout_connection
语法: reset_timeout_connection on|off;
默认: reset_timeout_connection off;
配置块: http、server、location
(5)lingering_close
语法: lingering_close off|on|always;
默认: lingering_close on;
配置块: http、server、location
(6)lingering_time
语法: lingering_time time;
默认: lingering_time 30s;
配置块: http、server、location
(7)lingering_timeout
语法: lingering_timeout time;
默认: lingering_timeout 5s;
配置块: http、server、location
(8)对某些浏览器禁用keepalive功能
语法: keepalive_disable[msie6|safari|none]...
默认: keepalive_disablemsie6 safari
配置块: http、server、location
(9)keepalive超时时间
语法: keepalive_timeout time(默认单位:秒);
默认: keepalive_timeout 75;
配置块: http、server、location
(10)一个keepalive长连接上允许承载的请求最大数
语法: keepalive_requests n;
默认: keepalive_requests 100;
配置块: http、server、location
(11)tcp_nodelay
语法: tcp_nodelay on|off;
默认: tcp_nodelay on;
配置块: http、server、location
(12)tcp_nopush
语法: tcp_nopush on|off;
默认: tcp_nopush off;
配置块: http、server、location
MIME类型的设置:
MIME type与文件扩展的映射
语法: type{...};
配置块: http、server、location
types {
text/html html;
text/html conf;
image/gif gif;
image/jpeg jpg;
}
默认MIME type
语法: default_type MIME-type;
默认: default_type text/plain;
配置块: http、server、location
types_hash_bucket_size
语法: types_hash_bucket_size size;
默认: types_hash_bucket_size 32|64|128;
配置块: http、server、location
types_hash_max_size
语法: types_hash_max_size size;
默认: types_hash_max_size 1024;
配置块: http、server、location
对客户端请求的限制:
(1)按HTTP方法名限制用户请求
语法: limit_except method...{...}
配置块: location
(2)HTTP请求包体的最大值
语法: client_max_body_size size;
默认: client_max_body_size 1m;
配置块: http、server、location
(3)对请求的限速
语法: limit_rate speed;
默认: limit_rate 0;
配置块: http、server、location、if
(4)limit_rate_after
语法: limit_rate_after time;
默认: limit_rate_after 1m;
配置块: http、server、location、if
文件操作的优化:
(1)sendfile系统调用
语法: sendfile on|off;
默认: sendfile off;
配置块: http、server、location
(2)AIO系统调用
语法: aio on|off;
默认: aio off;
配置块: http、server、location
(3)directio
语法: directio size|off;
默认: directio off;
配置块: http、server、location
(4)directio_alignment
语法: directio_alignment size;
默认: directio_alignment 512;
配置块: http、server、location
(5)打开文件缓存
语法: open_file_cache max=N[inactive=time]|off;
默认: open_file_cache off;
配置块: http、server、location
(6)是否缓存打开文件错误的信息
语法: open_file_cache_errors on|off;
默认: open_file_cache_errors off;
配置块: http、server、location
(7)不被淘汰的最小访问次数
语法: open_file_cache_min_uses number;
默认: open_file_cache_min_uses 1;
配置块: http、server、location
(8)检验缓存中元素有效性的频率
语法: open_file_cache_valid time;
默认: open_file_cache_valid 60s;
配置块: http、server、location
对客户端请求的特殊处理:
(1)忽略不合法的HTTP头部
语法: ignore_invalid_headers on|off;
默认: ignore_invalid_headers on;
配置块: http、server
(2)HTTP头部是否允许下划线
语法: underscores_in_headers on|off;
默认: underscores_in_headers off;
配置块: http、server
(3)对If-Modified-Since头部的处理策略
语法: if_modified_since[off|exact|before];
默认: if_modified_since exact;
配置块: http、server、location
(4)文件未找到时是否记录到error日志
语法: log_not_found on|off;
默认: log_not_found on;
配置块: http、server、location
(5)merge_slashes
语法: merge_slashes on|off;
默认: merge_slashes on;
配置块: http、server、location
(6)DNS解析地址
语法: resolver address...;
配置块: http、server、location
(7)DNS解析的超时时间
语法: resolver_timeout time;
默认: resolver_timeout 30s;
配置块: http、server、location
(8)返回错误页面时是否在Server中注明Nginx版本
语法: server_tokens on|off;
默认: server_tokens on;
配置块: http、server、location
负载均衡的基本配置:
(1)upstream块
语法: upstream name{...}
配置块: http
(2)server
语法: server name[parameters];
配置块: upstream
(3)ip_hash
语法: ip_hash;
配置块: upstream
反向代理的基本配置:
(1)proxy_pass
语法: proxy_pass URL;
配置块: location、if
(2)proxy_method
语法: proxy_method method;
配置块: http、server、location
(3)proxy_hide_header
语法: proxy_hide_header the_header;
配置块: http、server、location
(4)proxy_pass_header
语法: proxy_pass_header the_header;
配置块: http、server、location
(5)proxy_pass_request_body
语法: proxy_pass_request_body on|off;
默认: proxy_pass_request_body on;
配置块: http、server、location
(6)proxy_pass_request_headers
语法: proxy_pass_request_headers on|off;
默认: proxy_pass_request_headers on;
配置块: http、server、location
(7)proxy_redirect
语法: proxy_redirect[default|off|redirect replacement];
默认: proxy_redirect default;
配置块: http、server、location
(8)proxy_next_upstream
语法: proxy_next_upstream[error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off];
默认: proxy_next_upstream error timeout;
配置块: http、server、location
参考资料:
http://nginx.org/en/docs/
《深入理解Nginx模块开发与架构解析第2版》
上一篇: js函数参数默认值
下一篇: Swift入门[基于Java基础]