ngx_http_headers_module模块允许添加“过期”和“缓存控制头字段,和任意的领域,一个响应头。向由代理服务器响应给客户端的响应报文添加自定义首部,或修改指定首部的值;
命令:
1、add_header
添加自定义首部;
语法:add_header name value [always];
可用上下文:http, server, location, if in location
示例:
add_header X-Via $server_addr;
add_header X-Accel $server_name;
2、expires
用于定义Expire或Cache-Control首部的值;
语法:expires [modified] time;
可用上下文:http, server, location, if in location
三、ngx_http_upstream_module模块
ngx_http_upstream_module模块用于定义服务器可以通过proxy_pass,fastcgi_pass,uwsgi_pass,scgi_pass参照组,和memcached_pass指令。
命令:
1、upstream
定义一组服务器。服务器可以在不同的端口上监听。此外,服务器监听TCP和Unix域套接字可以混合。
语法:upstream name { ... }
可用上下文:http
示例:
upstream httpdsrvs {
server ...
server...
...
}
2、server
在upstream上下文中server成员,以及相关的参数;Context:upstream
语法:server address [parameters];
可用上下文:upstream
address表示格式:
unix:/PATH/TO/SOME_SOCK_FILE
IP[:PORT]
HOSTNAME[:PORT]
parameters:
(1) weight=number
权重,默认为1;
(2)max_fails=number
失败尝试最大次数;超出此处指定的次数时,server将被标记为不可用;
(3)fail_timeout=time
设置将服务器标记为不可用状态的超时时长;
(4)max_conns
当前的服务器的最大并发连接数;
(5)backup
将服务器标记为“备用”,即所有服务器均不可用时此服务器才启用;
(6)down
标记为“不可用”;
3、least_conn;
最少连接调度算法,当server拥有不同的权重时其为wlc,适用于长连接服务
4、ip_hash;
源地址hash调度方法;
5、hash
基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或二者的组合;
作用:将请求分类,同一类请求将发往同一个upstream server;
语法:hash key [consistent];
示例:
hash $request_uri consistent;
hash $remote_addr;
6、keepalive
为每个worker进程保留的空闲的长连接数量;连接参数设置KeepAlive闲置的最大连接数上游服务器保存在每个工作进程缓存。当这个数字被超过时,最近使用的连接被关闭。
四、ngx_stream_core_module模块
模拟反代基于tcp或udp的服务连接,即工作于传输层的反代或调度器;
命令:
1、stream
定义stream相关的服务
可用上下文:main
示例:
stream {
upstream sshsrvs {
server 192.168.22.2:22;
server 192.168.22.3:22;
least_conn;
}
server {
listen 10.1.0.6:22022;
proxy_pass sshsrvs;
}
}
2、listen
监听端口
可用上下文:server