nginx的反向代理功能和负载均衡

使用nginx实现反向代理

Nginx只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁。

1安装tomcat

在一个虚拟机上创建两个tomcat实例,模拟多个服务器。

2需求

通过访问不同的域名访问运行在不同端口的tomcat,适用于分布式部署

8080.tomcat.com 访问运行8080端口的tomcat

8081.tomcat.com 访问运行8081端口的tomcat

3域名需要配置host文件:

# vim /etc/hosts

nginx的反向代理功能和负载均衡

4Nginx的配置

 upstream tomcat1 {
server 127.0.0.1:;
}
upstream tomcat2 {
server 127.0.0.1:;
}
server {
listen ;
server_name .itheima.com; #charset koi8-r; #access_log logs/host.access.log main; location / {
proxy_pass http://tomcat1;
index index.html index.htm;
} }
server {
listen ;
server_name .itheima.com; #charset koi8-r; #access_log logs/host.access.log main; location / {
proxy_pass http://tomcat2;
index index.html index.htm;
} }

如果在同一个域名下有多台服务器提供服务,此时需要nginx负载均衡。

只需要在一个upstream下添加服务机即可

nginx的反向代理功能和负载均衡

置负载均衡的权重

在后边添加:weight=x,x越大,被分配到请求的概率越大,如图

nginx的反向代理功能和负载均衡

-----------------------------------------------------------------------------------------------------------------------------------------

nginx的反向代理功能和负载均衡

其他选项说明:

 节点说明:
在http节点里添加: #定义负载均衡设备的 Ip及设备状态
upstream myServer { server 127.0.0.1: down;
server 127.0.0.1: weight=;
server 127.0.0.1:;
server 127.0.0.1: backup;
} 在需要使用负载的Server节点下添加 proxy_pass http://myServer; upstream 每个设备的状态: down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

上一篇:nginx反向代理mysql及负载


下一篇:如何深入学习CSS