全局块
影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等
events块
配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等
http块
主要作用是配置http服务器,利用此配置实现反向代理功能和负载均衡支持。此参数可以嵌套多个server。文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等
server全局块
配置虚拟主机的相关参数,一个http中可以有多个server
location块
配置请求的路由,以及各种页面的处理情况
Nginx配置格式为key value;。键和值之间有空格,最后以;结尾
全局块参数
键作用示值例user配置用户或者组nobody nobodyworker_processes允许生成的进程数2pid指定nginx进程运行文件存放地址/nginx/pid/nginx.piderror_log制定日志路径 级别。这个设置可以放入全局块,http块,server块log/error.log debugworker_rlimit_nofile一个nginx进程打开的最多文件描述符数目65535events块参数
键作用示值例use事件驱动模型epoll (可选参数:select、poll、kqueue、epoll、resig、eventport)worker_connections最大连接数1024accept_mutex设置网路连接序列化onmulti_accept设置一个进程是否同时接受多个网络连接offhttp块参数
http服务器配置
键作用示值例include设定mime类型mime.typesdefault_type默认文件类型text/plainserver_names_hash_bucket_size服务器名字的hash表大小128client_header_buffer_size客户端请求头部的缓冲区大小4klarge_client_header_buffers客户请求头缓冲大小。nginx默认会用client_header_buffer_size;header过大,它会使用large_client_header_buffers来读取8 128kclient_max_body_size请求缓存8mkeepalive_timeout连接超时时间,默认为75s,可以在http,server,location块75autoindex显示目录onautoindex_exact_size默认为on,显示出文件的确切大小,单位是bytes 改为off后,显示出文件的大概大小,单位是kB或者MB或者GB显示文件大小autoindex_localtime显示文件时间 默认为off,显示的文件时间为GMT时间 改为on后,显示的文件时间为文件的服务器时间onsendfile允许sendfile方式传输文件,默认为off,可以在http块,server块,location块ontcp_nopush防止网络阻塞ontcp_nodelay防止网络阻塞onfastcgi_send_timeout是指nginx进程向fastcgi进程发送request的整个过程的超时时间300fastcgi_read_timeout是指fastcgi进程向nginx进程发送response的整个过程的超时时间300fastcgi_connect_timeout链接超时时间300fastcgi_buffer_size缓存大小64kfastcgi_buffers缓存4 64kfastcgi_busy_buffers_size128kfastcgi_temp_file_write_size128kaccess_log取消服务日志offlog_format日志格式设置myFormat ‘ s t a t u s [ status [ status[time_local] $remote_addr h o s t host hostrequest_uri $sent_http_location’;sendfile_max_chunk每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限100kerror_page错误页404 https://www.baidu.com;gzip开启gzip压缩输出ongzip_min_length允许压缩的页面的最小字节数,页面字节数从header偷得content-length中获取.默认是0,不管页面多大都进行压缩.建议设置成大于1k的字节数,小于1k可能会越压越大1kgzip_buffers申请n个单位为mk的内存作为压缩结果流缓存4 16kgzip_http_version压缩版本1.1gzip_comp_level压缩等级.1压缩比最小,处理速度快.9压缩比最大,比较消耗cpu资源2gzip_types压缩类型text/plain application/x-javascript text/css application/xml;gzip_vary选项可以让前端的缓存服务器缓存经过gzip压缩的页面onupstream负载均衡内容,下面单独说明日志格式参数
参数含义 r e m o t e a d d r 与 remote_addr与 remoteaddr与http_x_forwarded_for客户端的ip地址$remote_user客户端用户名称$time_local访问时间与时区$request记录请求的url与http协议$status请求状态;成功是200$body_bytes_sent发送给客户端文件主体内容大小$http_referer记录从那个页面链接访问过来的$http_user_agent记录客户浏览器的相关信息server全局块参数
虚拟主机配置
键作用示值例listen监听端口4545listen监听端口 https443 sslserver_name监听地址127.0.0.1rewriteHTTP 自动跳转 HTTPShttps://www.baidu.com;root根目录pathssl_certificateC:\WebServer\Certs\certificate.crt;ssl_certificate_keyC:\WebServer\Certs\private.key;ssl_session_cacheshared:SSL:1m;ssl_session_timeout5m;ssl_protocolsSSLv2 SSLv3 TLSv1;ssl_ciphersALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_cipherson;index设置默认页index.htmlkeepalive_requests单连接请求上限次数location块参数
location参数格式为
location 请求的url过滤 { ...... }在location和代码块之间需要提供进行url过滤的匹配规则
键作用示值例root根目录pathdeny拒绝的ip127.0.0.1allow允许的ip127.0.0.1proxy_pass服务器列表127.0.0.1:8080 (在配置了负载均衡的时候upstream,此位置指向负载均衡的名字)proxy_temp_file_write_size高负荷下缓冲大小64kproxy_connect_timeoutnginx跟后端服务器连接超时时间10080sproxy_send_timeout后端服务器数据回传时间10080proxy_read_timeout连接成功后,后端服务器响应时间10080proxy_buffer_size设置代理服务器64kproxy_buffersproxy_buffers缓冲区16 32kproxy_busy_buffers_size高负荷下缓冲大小64kproxy_request_bufferingoffproxy_bufferingoffproxy_redirectoffproxy_set_headerHost $hostproxy_http_version1.1client_max_body_size允许客户端请求的最大单文件字节数1024mclient_body_buffer_size缓冲区代理缓冲用户端请求的最大字节数128k负载均衡需要在http代码块中配置 upstream然后在server的location代码块中的proxy_pass中使用;下面是一个使用示例
## 指定了负载均衡 http:{ ...... upstream myserver { server 127.0.0.1:7878; server 127.0.0.1:7879 backup; #热备 } server { ...... location test/ { proxy_pass myserver; ...... } } ...... }负载均衡可选模式
模式说明模式参数热备当一台服务器发生事故时,才启用第二台服务器给提供服务127.0.0.1:8080 backup轮询将请求顺序的分配给各服务器无需参数加权轮询跟据配置的权重的大小而分发给不同服务器不同数量的请求127.0.0.1:8080 weight=1hashnginx会让相同的客户端ip请求相同的服务器upstream 代码块中单独一行添加ip_hash;负载均衡其他参数
处理均衡模式还可以配置其他参数
模式参数说明down表示当前的server暂时不参与负载均衡backup预留的备份机器max_fails允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误fail_timeout在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。weight负载的权重就越大使用示例
upstream myserver { server 127.0.0.1:8080 weight=2 max_fails=2 fail_timeout=2; server 127.0.0.1:80 weight=1 max_fails=2 fail_timeout=1; }个人水平有限,上面的内容可能存在没有描述清楚或者错误的地方,假如开发同学发现了,请及时告知,我会第一时间修改相关内容。假如我的这篇内容对你有任何帮助的话,麻烦给我点一个赞。你的点赞就是我前进的动力。
