1. nginx.conf
#user nobody; worker_processes 12; error_log /opt/logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 51200 events { use epoll; worker_connections 10240; } http {#设定http服务器 include mime.types(包含的mime.types文件,指定支持的MIME) log_format main … upstream backend1 {#负载均衡的后端服务 } upstream backend2 { } server {#对外提供的虚拟主机 … location /{ } } }
2.upstream配置
2.1 轮询方式(默认)
默认的负载均衡方式 适用:后端服务器性能差不多情况 upstream bakend { server 192.168.0.14; server 192.168.0.15; }
2.2 weight
指定轮询几率,weight和访问比率成正比.适用:后端服务器性能不均的情况。 upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15; #默认为1 } 假如有11个请求,将有10个打到14上
2.3 ip_hash
根据来源IP和后端配置来做hash分配,确保固定IP只访问一个后端。 upstream bakend { ip_hash; server 192.168.0.14; server 192.168.0.15; }
2.4 fair
根据后端服务的响应时间来分配,响应时间短的后端优先分配。 upstream bakend { server 192.168.0.14; server 192.168.0.15; fair; }
2.5 自定义hash
根据给定的字符串进行Hash分配,例如根据请求的url进行分配(适用后端有本地缓存) upstream bakend { server 192.168.0.14; server 192.168.0.15; hash $request_uri; hash_method crc32; }
2.6 其他
upstream每个后端的可设置参数为: 1.down: 表示此台server暂时不参与负载。 2.weight: 默认为1,weight越大,负载的权重就越大。 3.max_fails: 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误。 4.fail_timeout: max_fails次失败后,暂停的时间。 5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器,应急措施。
3.location匹配规则
语法规则: location [=|~|~*|^~] /uri/ {…} 1、= 开头表示精确匹配 2、^~ 开头表示uri以某个常规字符串开头。 3、~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则 4、/ 通用匹配,任何请求都会匹配到。 多个location的匹配次序 首先匹配 =,其次匹配^~, 再次是按nginx.conf文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
4.其他
gzip 开启或者关闭gzip模块 语法: gzip on|off 默认值: gzip off 作用域: http, server, location, if (x) location
gzip_buffers 缓存设置 语法: gzip_buffers number size 默认值: gzip_buffers 4 4k/8k 作用域: http, server, location
gzip_comp_level -压缩比设置 语法: gzip_comp_level 1..9 默认值: gzip_comp_level 1 作用域: http, server, location
gzip_min_length –允许压缩的页面最小字节数 语法: gzip_min_length length 默认值: gzip_min_length 0 作用域: http, server, location
gzip_http_version http版本 语法: gzip_http_version 1.0|1.1 默认值: gzip_http_version 1.1 作用域: http, server, location
gzip_proxied 语法: gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] … 默认值: gzip_proxied off 作用域: http, server, location
gzip_types 匹配MIME压缩 语法: gzip_types mime-type [mime-type ...] 默认值: gzip_types text/html 作用域: http, server, location
其他-ip限制
在server内,或者在location内
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
}
其他-内置变量
$nginx_version $args, 请求中的参数; $content_length, HTTP请求信息里的"Content-Length"; $content_type, 请求信息里的"Content-Type"; $document_root, 针对当前请求的根路径设置值; $document_uri, 与$uri相同; $host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名; $request_method, 请求的方法,比如"GET"、"POST"等; $remote_addr, 客户端地址; $remote_port, 客户端端口号; $remote_user, 客户端用户名,认证用; $request_filename, 当前请求的文件路径名 $request_uri, 请求的URI,带参数; $uri, 请求的URI,可能和最初的值有不同,比如经过重定向之类的。
其他-日志
1、设置日志格式 log_format name format [format…] 注意:name在nginx.conf不能重复 2、设置日志文件路径 access_log path [format [buffer=size|off]] 3、日志切割(定时任务) mv kill -USR1 nginx主进程号 重启生成新的日志文件
来源:原创
发布时间:2022-04-12 21:46:00