Nginx常用配置

分类: 服务器 > Linux

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