Nginx Tomcat搭建集群


nginx是一款自由的、开源的、高性能的HTTP服务器和 反向代理 服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行 负载均衡 的实现。Nginx百度百科

正向代理

当我们需要访问一下外国网站时由于一定的原因,无法正常访问,此时找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!

上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
客户端必须要进行一些特别的设置才能使用正向代理。

反向代理

反向代理的处理方式,例如某宝网站,每天同时连接到网站的访问人数已经爆表,单单个服务器不能满足用户访问量的要求,就出现分布式部署;也就就是用户访问URL时,nginx通过一定的规则把用户的请求分发到不同的服务器上,实现负载均衡。
实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
示意图:

项目场景

通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器

nginx安装部署

通过https://nginx.org/en/download.html 下载


放在本地解压缩

在命令行中启动nginx服务

强制停止nginx服务器,如果有未处理的数据,丢弃
nginx -s stop

如果有未处理的数据,等待处理完成之后停止

nginx -s quit

在conf文件夹中找到nginx.conf配置文件

main                                # 全局配置

events {                            # nginx工作模式配置

}

http {                                # http设置
    ....

    server {                        # 服务器主机配置
        ....
        location {                    # 路由配置
            ....
        }

        location path {
            ....
        }

        location otherpath {
            ....
        }
    }

    server {
        ....

        location {
            ....
        }
    }

    upstream name {                    # 负载均衡配置
        ....
    }
include vhost/*.conf; #引入目录下的配置文件,方便维护管理
}

主要由6个部分组成:

main:用于进行nginx全局信息的配置
events:用于nginx工作模式的配置
http:用于进行http协议信息的一些配置
server:用于进行服务器访问信息的配置
location:用于进行访问路由的配置
upstream:用于进行负载均衡的配置

Nginx 常用命令

  • 测试配置文件 安装路径下/nginx/sbin/nginx -t

  • 启动命令 /nginx/sbin/nginx

  • 停止命令 /nginx/sbin/nginx -s stop 或者 nginx -s quit

  • 重启命令 /nginx/sbin.nginx -s reload

  • 查看进程ps -ef|grep nginx

  • 平滑重启 kill -HUP 【Nginx 主进程号】

nginx支持的负载均衡调度算法方式

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstream backserver { 
server 192.168.0.14; 
server 192.168.0.15; 
}

2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream backserver { 
server 192.168.0.14 weight=10; 
server 192.168.0.15 weight=10; 
}

3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决集群部署环境下session共享的问题。

upstream backserver { 
ip_hash; 
server 192.168.0.14:88; 
server 192.168.0.15:80; 
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backserver { 
server server1; 
server server2; 
fair; 
}

5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

upstream backserver { 
server squid1:3128; 
server squid2:3128; 
hash $request_uri; 
hash_method crc32; 
}

实现权重的负载均衡

配置系统的host文件
添加一条
127.0.0.1 www.imooc1.com

单机配置多应用

配置两个tomcat服务器

  1. 在环境变量配置中新增 CATALINA_BASE ,CATALINA_HOME,TOMCAT_HOME ,配置对应tomcat对应的路径

  2. 在tomcat 的conf的文件夹中server.xml 修改。
    修改tomcat的端口不能一样,并将tomcat1配置文件中的 CATALINA_BASE ,CATALINA_HOME,TOMCAT_HOME 全部修改为CATALINA_BASE2 ,CATALINA_HOME2,TOMCAT_HOME2
    分别启动两个tomcat

upstream www.imooc1.com{
        server www.imooc1.com:7088; #默认为权重,访问7088和9080 端口的比例为1:1
        server www.imooc1.com:9080;
    #   server 127.0.0.1:7088;
    #   server 127.0.0.1:9080;
}
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    autoindex on;
    server_name www.imooc1.com;
    access_log off ;
    index index.html index.htm index.jsp index.php;
    #error_page 404 /404.html;
    if ( $query_string ~* ".*[\;'\<\>].*" ){
        return 404;
    }
    location / {
        proxy_pass http://www.imooc1.com;
        add_header Access-Control-Allow-Origin *;
    }
}

用户通过访问www.imooc1.com,nginx通过去权重规则,调用7088或9080端口,
实现负载均衡



原文链接:https://blog.csdn.net/qq_28938627/article/details/80532442?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase