nginx中的http模块配置
文章目录
一、简介
本文将介绍http各个模块及常用的路径配置。
二、http模块总览
http模块从外到内有http块、server块、location块,同时各个模块有各自的属性元素。
-
http块:即一个http处理模块,可进行http的相关参数配置,内可以包含多个server块;
-
server块:即是一个虚拟主机,需配置域名和端口,也只处理对应主机域名的http请求,内可包含多个location块;
-
location块:对应具体的路径请求(http请求)。
总体示意图如下:
http{
server{
location {
}
location {
}
}
server{
location {
}
location {
}
}
}
三、http块常用配置
3.1 upstream
定义上游服务器集群,在反向代理中proxy_pass使用,用于负载均衡。如:
upstream backend{
ip_hash;
server 192.168.0.1;
server 192.168.0.2:8080;
server 192.168.0.3 max_fails=5 fail_timeout=30s;
server 192.168.0.4 down;
}
server {
location /{
proxy_pass http://backend;
}
}
当希望某一请求固定到指定上游服务器上,可以在upstream块中加ip_hash关键字。
注意upstream块内的server使用:
- 后可以是域名、ip地址或加端口;
- 当某server不使用时,则在后加 down 关键字;
- 若希望某一服务器处理更多请求,则可以在后加权重 weight ,如weight=10,默认值为1(不能与ip_hash同时使用);
- 配置在指定时间内失败多少次,上器服务器不可用,可用配置fail_timeout(失败时间,默认为10秒),max_fails(失败次数,默认为1,若为0,则不检查失败)。
四、server块常用配置
4.1 listen
监听的端口,后可加ip地址、端口或主机名,如
listen 8080