美文网首页
nginx(四)配置反向代理一个集群

nginx(四)配置反向代理一个集群

作者: 杭州痞老板 | 来源:发表于2018-01-30 10:25 被阅读0次

1、正向代理和反向代理的区别

正向代理是代理客户端去请求(客户端请求通过该代理服务器转发请求)
反向代理是代理服务端接受请求(客户端请求的是该代理服务器,代理服务器会把请求转发给被代理的服务器)

2、反向代理的特点

2.1 客户端这边的请求显示的响应头server为反向代理的服务器型号


3、nginx的配置

http {
#配置反向代理
    upstream tomcatserver1 {
        server localhost:8080;
    }
#其中一个虚拟主机
    server {
        listen       80;
        server_name  localhost;
#开启日志时必须要设置日志格式
        access_log  logs/host.access.log  format0;
#配置对根目录的访问  proxy_pass   为反向代理的配置
        location / {
            proxy_pass   http://tomcatserver1;
            proxy_set_header Host $host;#当后端服务器配置多个web站点时,该选项可以让服务器识别出具体要访问的是哪个站点,而不会将第一个站点作为默认站点传递给用户
            proxy_set_header X-Real-IP $remote_addr;#将客户端的ip赋值到X-Real-IP消息头上
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            index  index.html index.htm;
        }
    }
}

设置为反向代理后需要注意一些细节,如下:

//servlet处理
String nginx_ip= request.getRemoteAddr();//ip为nginx的ip,而不是客户端ip
String client_ip=request.getHeader("X-Real-IP");//获取客户端ip的方式

4、设置集群

1、采用默认的轮询方式(每个请求会依次分配)

http {
    upstream tomcatserver1 {
        server 192.168.2.200:8080;
        server 192.168.2.201:8080;
    }
}

upstream模块常用参数说明:
1、down 表示当前的服务器不工作
2、backup 表示为备用服务器,集群高负载时才会来请求备用服务器。所以负载最低
3、weight 表示负载的权重,默认为1
4、max_fails=2 默认为1。某台Server允许请求失败的次数,超过最大次数后,在fail_timeout时间内,新的请求将不会分配给这台机器。如果设置为0,Nginx会将这台Server置为永久无效状态,然后将请求发给定义了proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream指令来处理这次错误的请求。
5、fail_timeout=10s 失败超时时间,默认是10秒,通常3s左右比较合适,某台Server达到max_fails次失败请求后,在fail_timeout期间内,nginx会认为这台Server暂时不可用,不会将请求分配给它

http {
#weight越大,负载的权重就越大。用于后端服务器性能不均的情况
    upstream tomcatserver1 {
        server 192.168.2.200:8080 max_fails=3 fail_timeout=3s weight=3;
        server 192.168.2.201:8080 max_fails=3 fail_timeout=3s;
        server 192.168.2.202:8080 backup;
    }
}

通过配置192.168.2.202这台备用服务器可以实现系统的高可用,当主服务挂掉后,backup服务器会自动接管服务,当主服务恢复后,backup也会自动放弃服务

2、按照IP的Hash值来实现负载均衡

weight\backup 不能和 ip_hash 关键字一起使用
这个方式可以解决session不能跨服务器的问题。但如果后端服务器down掉,要手工down掉。

http {
    upstream tomcatserver1 {
        ip_hash;#采用IP HASH算法
        server 192.168.2.200:8080;
        server 192.168.2.201:8080;
    }
}

相关文章

  • Nginx应用场景

    反向代理,负载均衡,动静分离 1.反向代理 修改nginx配置,并重新加载 重新加载nginx配置./nginx ...

  • 第十九周作业

    1、搭建Tomcat集群,并通过nginx反向代理访问 反向代理示意图 测试环境: Nginx: 172.16.1...

  • 01-nginx前端方向代理

    前端反向代理 1.下载nginx 2. 配置nginx.conf反向代理

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

  • nginx反向代理

    什么是反向代理 如何实现反向代理 准备工作以及安装nginx 配置nginx nginx的初始配置文件去掉注释后的...

  • [Nginx]nginx反向代理集群配置

    在程序固定之后, 不对程序优化,使用固有配置的设备,提高并发的有效手段是添加硬件配置。 创建一个网站并测试QPS ...

  • nginx 配置

    nginx 多个 root页面配置 反向代理

  • 第二课 nginx+tomcat集群

    正向代理,反向代理 配置Nginx 配置文件目录:/usr/local/nginx-1.6.1/conf/ngin...

  • nginx+tomcat集群

    正向代理,反向代理 配置Nginx 配置文件目录:/usr/local/nginx-1.6.1/conf/ngin...

  • nginx+tomcat集群

    正向代理,反向代理 配置Nginx 配置文件目录:/usr/local/nginx-1.6.1/conf/ngin...

网友评论

      本文标题:nginx(四)配置反向代理一个集群

      本文链接:https://www.haomeiwen.com/subject/wtpxzxtx.html