Nginx
1 反向代理和正向代理
1.1 反向代理
- 反向代理服务器介于用户和真实服务器之间
- 用户以为反向代理服务器就是真实的服务器
- 用户不需要了解真实的服务器到底是谁.
- 反向代理服务器保护了真实服务器信息.
- 反向代理服务器是服务器端代理
1.2 正向代理
- 代理服务器介于目标和客户端之间
- 客户端非常清楚自己访问的服务器到底是谁
- 正向代理是客户端代理.保护了真实的客户信息.
一般条件下网络通讯时会使用正向代理
2 Nginx特点
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
- 内存少 不超过2M tomcat服务器启动 300-500M
- 并发能力强 并发3万-5万次 tomcat并发 150-220之间
- Nginx使用C语言开发
3 Nginx反向代理
server {
listen 80;
server_name manage.jt.com;
location / {
#root 代表文件目录
#index 代表默认的访问页面
#proxy_pass 代表发起url请求
proxy_pass http://localhost:8091;
}
}
4 Nginx负载均衡
4.1 Nginx集群配置
配置后台管理系统
server {
listen 80;
server_name manage.jt.com;
location / {
#root 代表文件目录
#index 代表默认的访问页面
#proxy_pass 代表发起url请求
#proxy_pass http://localhost:8091;
proxy_pass http://jtW;
}
}
#配置集群的关键字 通过集群配置tomcat服务器即可
#默认: 1.轮询的机制
upstream jtW {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
4.2 Nginx负载均衡策略
4.2.1 轮询策略
根据配置文件的顺序,之后依次访问服务器. 该策略也是默认的机制
4.2.2 权重策略
#配置集群的关键字 通过集群配置tomcat服务器即可
#默认: 1.轮询的机制 2.权重策略
upstream jtW {
server 127.0.0.1:8081 weight=6;
server 127.0.0.1:8082 weight=3;
server 127.0.0.1:8083 weight=1;
}
4.2.3 IPHASH策略
当某些业务需要用户特定的访问固定的服务器时,就要选用iphash机制
- 对ip值进行hash运算后对服务器数量取模(hash(ip)%3)
#默认: 1.轮询的机制 2.权重策略 3.IPHASH
upstream jtW {
ip_hash;
server 127.0.0.1:8081 weight=6;
server 127.0.0.1:8082 weight=3;
server 127.0.0.1:8083 weight=1;
}
4.3 Nginx负载均衡属性
4.3.1 down属性
如果tomcat服务器发生了宕机的现象,则通过配置文件标识down的属性,则nginx将不会再次访问故障机
#默认: 1.轮询的机制 2.权重策略 3.IPHASH
upstream jtW {
#ip_hash;
server 127.0.0.1:8081 down;
server 127.0.0.1:8082 ;
server 127.0.0.1:8083 ;
}
4.3.2 backup属性
正常情况下用户不会访问.但是当主机宕机或者主机遇忙时才会访问
#配置集群的关键字 通过集群配置tomcat服务器即可
#默认: 1.轮询的机制 2.权重策略 3.IPHASH
upstream jtW {
#ip_hash;
server 127.0.0.1:8081 down;
server 127.0.0.1:8082 ;
server 127.0.0.1:8083 backup;
}
4.3.3 tomcat高可用配置
属性配置:
- max_fails=1 配置nginx访问服务器的最大的失败次数.
- fail_timeout=60s; 理解为一个时间周期. 如果发现服务器宕机,则在60秒内不会再次访问故障机
#配置集群的关键字 通过集群配置tomcat服务器即可
#默认: 1.轮询的机制 2.权重策略 3.IPHASH
upstream jtW {
#ip_hash;
server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;
server 127.0.0.1:8082 max_fails=1 fail_timeout=60s;
server 127.0.0.1:8083 max_fails=1 fail_timeout=60s;
}