Nginx配置文件结构
nginx.conf 文件中主要有三个结构:
1.Global: nginx 运行相关
全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2.events: 与用户的网络连接相关,events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3.http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
- listen: 监听的端口号。
- server_name: 主机IP或者域名。
- location:URL匹配配置。
匹配的优先级顺序
(localtion =) > (localtion完整url) > (localtion ^~) > (localtion ~,~*) > (lcoaltion部分起始路径) > (/)
- = 表示精确匹配
- ^~ 表示指定的路径开头
- ~ 表示区分大小写的正则匹配
- ~* 表示不区分大小写的正则匹配
- / 通用匹配,所有的URL都是以此为开头
匹配规则:
#空格 :默认匹配,普通匹配
location / {
root /home;
}
#= :精确匹配
location = /server/img/test.png {
root /home;
}
#~* :匹配正则表达式,不区分大小写
#符合图片的显示
location ~* \.(GIF|jpg|png|jpeg) {
root /home;
#缓存30秒有效
expires 30s;
}
#~ :匹配正则表达式,区分大小写
#GIF必须大写才能匹配到
location ~ \.(GIF|jpg|png|jpeg) {
root /home;
}
#^~ :以某个字符路径开头
location ^~ /server/img {
root /home;
}
- expires:设置浏览器缓存;
- expires 10s:有效期10秒;
- expires -1h:过期时间为一个小时之前;
-
expires epoch:不设置缓存;
-
expires off:关闭缓存,默认;
-
expires max:最大缓存时间;
keepalive提高吞吐量:
upstream http_backend {
server 127.0.0.1:8080;
keepalive 16;
}
server {
...
location /http/ {
proxy_pass http://http_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
}
说明:该指令出现在版本1.1.4中。该connections参数设置每个工作进程的缓存中保留的与上游服务器的空闲保持连接的最大数量。超过此数量时,将关闭最近最少使用的连接。需要特别注意的是,该keepalive指令不限制Nginx工作进程可以打开的与上游服务器的连接总数。该connections参数应设置为足够小的数字,以使上游服务器也可以处理新的传入连接。 当使用默认轮循方法以外的负载平衡方法时,有必要在keepalive指令前将其激活。