1.概述
Nginx,一个高性能的HTTP和反向代理的web服务器。也就是说他能把HTTP请求代理映射到服务器的目录上去,其主要用来做两件事:
- 反向代理
- 负载均衡
1.反向代理
正向代理,一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
反向代理,用户只需要发送请求,不需要指定目标服务器,由反向代理服务器去自行选择目标服务器。
2.负载均衡
2.安装
nginx其实是解压即可用的,在官网上下载自己需要的平台版本即可。
3.指令
Nginx的指令在未配置环境时,只在
nginx/sbin
目录下有效,需要全局有效的话,自行配置一下环境变量,此处不展开。
常用的nginx命令有如下几种:
查看版本号:nginx -version
关闭:nginx –s stop docker中直接关闭容器效果相同
重载:nginx –s reload 重新加载配置 重启效果相同
4.配置
4.1.概述
nginx的功能都是通过配置来实现的,所以如何配置nginx是使用nginx的核心。nginx的配置文件在/nginx/conf目录下,由三部分组成:
- 全局块
- events块
- http块
1.全局块
设置一些影响全局的配置:
用户组、工作线程(支持的并发量)、错误日志路径、id等。
示例:
2.events块
设置最大连接数
3.http块
代理、缓存、日志路径、第三方模块接入
http块分为:
全局块、server块(一个server就是一个规则)
新版的nginx的server块存放在etc/nginx/config.d/*.conf中,通过include导入。
4.2.反向代理
4.2.1.示例1
配置http块的server块:
访问 192.168.7.10转跳到192.168.7.10:8080
4.2.2.示例2
~表示启用正则表达式,server_name+~后面的内容直接转跳到proxy_pass代理的地址。
4.3.负载均衡
upstream 自定义名称{
集群IP
}
nginx支持几种负载均衡策略:
- 轮询(默认)
- 权重
- ip_hash
- fair
1.轮询
按照顺序来轮询,服务器down机后会自动剔除。
2.权重
weight,权重,权重越高,被分配的流量越多。
3.ip_hash
第一次访问以后客户端IP和服务器IP会进行绑定,该客户端IP后续访问到的都是固定的那台服务器。
4.fair
根据请求的响应时间来分配流量,优先分配给响应时间短的。
5.高可用
概述:
nginx采用主备结构实现高可用。使用Keepalived负责进行切换,nginx不需要做额外配置,均是由keepalived来完成,配置keepalived的配置文件即可。
安装:
yum install keepalived
记得systemctl start XXX开启服务!!!
配置:
下面这篇文章讲得很清楚:
Nginx教程系列五:Nginx+Keepalived搭建高可用主从架构_nginx ckh.sh是什么-CSDN博客
router_id,即集群ID,同一个集群中的节点router_id相同
state,节点状态,主节点为MASTER,从节点为BACKUP。
interface,绑定当前工作的网卡(绑错后不会出现虚拟IP)
virtual_router_id 虚拟ID,主备必须一致
priority 优先级,主、备取不同优先级,主机值较大,备机值较小
virtual_ipaddress 虚拟IP,用于外部统一访问集群的IP地址
记得把脚本注册到节点的配置中去!!!