详解基于Centos7+Nginx+Tomcat8的负载均衡服务器的搭建

 更新时间:2017年06月06日 09:07:55   作者:老码农豆豆  
这篇文章主要介绍了详解基于Centos7+Nginx+Tomcat8的负载均衡服务器的搭建,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

由于工作的需求,在使用中,需要搭建负载均衡,研究了Apache+Tomat负载均衡的方案,并且通过检索相关的文章,进行了比较发现,Apache负载负载均衡在使用的效率上,远远不如Nginx的效率高,因此决定使用Nginx来进行服务的搭建。最初YUM安装了Nginx,但是不知道什么原因,Nginx的服务可以正常启动,静态页面也可以正常访问,但是就是无法正常的搭建虚拟主机和负载均衡。对引没有深究原因,决定把他卸载,然后手动安装。

手动安装好Nginx后,一切正常,虚拟主机,负载均衡的配置全部没有任何问题。顺利启用,具体的配置文件如下:

在conf的nginx.conf的文件中加入了:include vhost/*.conf;  以引入vhost目录下的所有的.conf文件,为了以后配置起来简单,当然如果需要的话,也可以一个一个添加。

因为做负载的服务为API服务,在这里conf文件的名字就叫做api.xxx.com.conf,打开文件的配置如下:

在此没有使用IP轮询的方式,而使用的是usstream 的方式,具体这几个方式有什么不同,大家可以百度或google一下相关的介绍。需要注意的是proxy_pass,在此配置的为upstream 的名字,其它的不允许使用,如果直接配置IP地址,则不会实现负载均衡。

其中 weight表示的权重,数越大,权重越高,分配到的机会越大, backup表示的是热备服务器,即在前两个负载都出现问题的时候,热备服务器就会自动承担这些访问。

至此Nginx负载均衡配置器配置完成,但是因为涉及到负载之后,若是普通的网址,在访问的时候,就会再现Session丢失的情况,因此这个时候,就要处理session 丢失的问题,要处理此问题,有多个解决方案,一个是使用Cookies代理,另外 一个实现Session的共享,在此使用的是Session的共享,在实现共享,需要在Tomcat进行相关的配置,要实现这个需求,在此配置的Session的共享服务器为Redis内存服务,主要是为了保证数据的高效读取与存储,在使用Redis进行Session共享,必须要添加以下几个名:

这个几个包,支持Tomcat8没有任何问题,其它版本的具体支持情况如何,没有进行相关的测试。

然后修改Tomcat中的配置文件:

 

  在此看到的10.0.0.x的地址,全部是内网完成的, 外网不通,只有负责负载的服务器才直接连接的外网。

  在这个时候,可以顺利启动tomcat服务器,与Nginx服务器了,但是在此之前,必须要先启动Nginx服务器,否则Tomcat可能会出现启动失败的情况。Nginx服务可以顺利启动

三处配置如下:

nginx.conf中添加的引用内容

include vhost/*.conf;

负载均衡配置:

upstream api.xxx.com {
 server 10.0.0.12:8080 weight=5;
 server 10.0.0.15:8081 weight=5 ;
 server 10.0.0.16:8080 weight=5 backup;
}
server {
 listen    80;
 server_name api.xxx.com;
 location /
  {
   proxy_set_header Host $host;
   proxy_set_header X-Real-Ip $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_pass http://api.xxx.com;
    }
}

 Tomcat配置

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager" 
       host="10.0.0.16" 
       port="10000" 
       database="0" 
       maxInactiveInterval="60" />

关于怎么安装Tomcat,Nginx,Redis的不是这个的讨论范围。

如果需要请查看

详解CentOS7.0安装与配置Tomcat-7

centos7安装nginx的两种方法介绍

详解在Redis在Centos7上的安装部署

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Linux 3.X/4.x/5.x 忘记宝塔面板密码的解决方法

    Linux 3.X/4.x/5.x 忘记宝塔面板密码的解决方法

    在本篇文章里我们给大家整理的是关于忘记Linux 3.X/4.x/5.x 宝塔面板密码的解决方案,有需要的朋友们可以学习下。
    2019-10-10
  • undefined reference to ''pthread_create''的解决方法

    undefined reference to ''pthread_create''的解决方法

    undefined reference to 'pthread_create'的解决方法,需要的朋友可以参考一下
    2013-05-05
  • 使用squid搭建http代理的方法

    使用squid搭建http代理的方法

    这篇文章主要介绍了使用squid搭建http代理的方法,需要的朋友可以参考下
    2016-11-11
  • 详解linux系统目录sys,tmp,usr,var!

    详解linux系统目录sys,tmp,usr,var!

    在本篇文章里小编给大家详解了关于linux系统目录,sys,tmp,usr,var!的相关知识点内容,有兴趣的朋友们参考下。
    2019-06-06
  • Linux中有效地管理进程的8个命令

    Linux中有效地管理进程的8个命令

    这篇文章主要给大家介绍了关于Linux中有效地管理进程的8个命令,文中通过示例代码介绍的非常详细,对大家学习或者使用linux具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • 使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法

    使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法

    在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。下面小编给大家带来了使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法,一起看看吧
    2018-11-11
  • YUM解决RPM包安装依赖关系及yum工具介绍本地源配置方法详解

    YUM解决RPM包安装依赖关系及yum工具介绍本地源配置方法详解

    这篇文章主要介绍了YUM解决RPM包安装依赖关系及yum工具介绍本地源配置方法详解,本文给大家介绍的非常详细具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • Xshell连接centOS7并与CentOS7联网

    Xshell连接centOS7并与CentOS7联网

    本文主要介绍了Xshell连接centOS7并与CentOS7联网,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Centos7 格式化分区并挂载的实现

    Centos7 格式化分区并挂载的实现

    这篇文章主要介绍了Centos7 格式化分区并挂载的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 在Ubuntu上运行Jar包的操作步骤

    在Ubuntu上运行Jar包的操作步骤

    Jar(Java Archive)文件是一种归档文件格式,用于聚合多个Java类文件、相关的元数据和资源(如图像和配置文件)到单一文件中,Jar包不仅是发布Java应用程序的标准方式,也是库分发的常见形式,本文介绍了如何在Ubuntu上运行Jar包,需要的朋友可以参考下
    2024-06-06

最新评论