Linux下Nginx+多Tomcat负载均衡实现详解

【Nginx】 大名鼎鼎,麻雀虽小五脏俱全,它拥有小而稳且高效的特性。为目前大多数中小企业所使用。nginx可以做以下几件事:

反向代理

负载均衡

动静分离

网页、图片缓存

【Tomcat】 是一个免费开放源代码的 Web 应用服务器,具有开源免费、容易安装、 容易使用、占用资源小、易于和其他软件集成等优点。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

【N+T的负载均衡】

然而他们的组合将是一把无与伦比的利刃。首先说明一下它的请求原理(路径走向)

Nginx作为反向代理服务器,实现负载均衡。首先浏览器发起请求,到达Nginx,由Nginx将请求地址转发给相应的tomcat服务器,再由tomcat服务器将结果返回给Nginx,Nginx将结果再转发给浏览器。

下面上图:

Linux下Nginx+多Tomcat负载均衡实现详解

图中的信息显而易见,以nginx服务器作为中转分发请求,以达到负载均衡的目的。

二、环境需求

【由于博主的主机(脸红~)配置低,所以只开一开虚拟机作为这次负载均衡的测试。一个ip三个端口既可实现上图所述的效果了】

主机A:192.168.0.144/24

apache-tomcat-6.0.35.tar.gz   tomcat 6  使用的主要端口:18080
apache-tomcat-7.0.82.tar.gz   tomcat 7  使用的主要端口:28080
apache-tomcat-8.5.23.tar.gz   tomcat 8  使用的主要端口: 8088
nginx-1.0.12.tar.gz
jdk7u79linuxx64.tar.gz

(其他一些基础环境比如gcc-c++的自己补全吧)

三、各个环境的搭建

3.1 Nginx搭建

先把所有准备好的软件工具放到一个目录下(都先准备好必用软件,不然配置起来才去找软件是很烦人的)

[root@N+T lhl]# ll total 175172 -rw-r--r-- 1 root root 9472492 Dec 1 2017 apache-tomcat-8.5.23.tar.gz -rw-r--r-- 1 root root 153512879 Dec 7 2017 jdk7u79linuxx64.tar.gz -rw-r--r-- 1 root root 691002 May 9 2012 nginx-1.0.12.tar.gz -rw-r--r-- 1 root root 15692490 Nov 29 2017 Tomcat6-7.zip

    接下来安装一下开发环境

[root@N+T lhl]# yum -y install gcc gcc-c++

在/usr目录下面创建一个nginx的目录,并把nginx包移动到该目录下,再解压到该目录下面

[root@N+T lhl]# mkdir -p /usr/nginx [root@N+T lhl]# mv nginx-1.0.12.tar.gz /usr/nginx/ &&cd /usr/nginx/&&tar -zxvf nginx-1.0.12.tar.gz 

最好进入nginx-1.0.12目录,再编译安装

[root@N+T nginx-1.0.12]# ./configure &&make &&make install

一般编译安装都默认在/usr/local/nginx/ 目录下面 ,下面这个就是nginx的主程序。

[root@N+T sbin]# ll /usr/local/nginx/sbin/nginx -rwxr-xr-x 1 root root 954836 Aug 16 04:43 /usr/local/nginx/sbin/nginx

本博文为了搭建的方便直接把这个主程序拉倒/usr/bin/ 目录下了

[root@N+T sbin]# cp -a /usr/local/nginx/sbin/nginx /usr/bin/

下面是配置文件

[root@N+T sbin]# ll /usr/local/nginx/conf/nginx.conf

简单的配置了一下配置文件

#####nginx+3 T 负载均衡测试############
#####最简化的配置文件了--############### user nobody; #对于用户有安全性限制的伙伴可以创建一个账户去使用 worker_processes
1; events { use epoll; worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 60; #简单文本显示格式编辑 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 8 128k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_temp_path /dev/shm; server{ listen 80; server_name localhost; access_log /var/log/nginx/aeecss.log; error_log /var/log/nginx/error.log; location / { proxy_pass http://li7105.com; proxy_redirect default; } } }

下面运行nginx,查看信息

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e883d51d56d2b4d9e8bb098ab4708094.html