|
下文给大家带来关于Nginx+Tomcat负载均衡群集的实战详解,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用Vecloud在行业内累计的经验来做一个解答。
实验拓扑图
实验环境部署云服务器角色IP地址操作系统Nginx服务器192.168.142.131centos 7tomcat 01服务器192.168.142.134centos 7tomcat 02服务器192.168.142.130centos 7实验步骤第一步:配置Nginx服务器#安装环境[root@nginx ~]#yum install gcc gcc-c++ pcre-devel zlib-devel #添加Nginx管理用户[root@nginx ~]# useradd -M -s /sbin/nologin nginx#远程共享源码包[root@nginx ~]# smbclient -L //192.168.142.1[root@nginx ~]# mount.cifs //192.168.142.1/tomcat /mnt#解压源码包[root@nginx ~]# cd /mnt[root@nginx ~]# tar zxvf nginx-1.12.0.tar.gz -C /opt[root@nginx mnt]# cd /opt/nginx-1.12.0/#进行configure配置[root@nginx nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module#编译及编译安装[root@nginx nginx-1.12.0]# make && make install#创建软连接让系统识别nginx启动脚本[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #开启服务[root@nginx nginx-1.12.0]# nginx[root@nginx nginx-1.12.0]# systemctl stop firewalld.service[root@nginx nginx-1.12.0]# setenforce 0#启动配置文件目录创建启动脚本[root@nginx nginx-1.12.0]# vim /etc/init.d/nginx #!/bin/bash# chkconfig: - 99 20# description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx" IDF="/usr/local/nginx/logs/nginx.pid"case "$1" in start) $PROG ;; stop) kill -s QUIT $(cat $PIDF) ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1esacexit 0#添加执行权限[root@nginx nginx-1.12.0]# chmod +x /etc/init.d/nginx#将nginx增加到service管理[root@nginx nginx-1.12.0]# chkconfig --add nginx#启动服务[root@nginx nginx-1.12.0]# service nginx start#查看服务端口状态[root@nginx nginx-1.12.0]# netstat -ntap | grep 80tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 42092/nginx: master #修改配置文件[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf #gzip on; #追加以下四行条目,用以定义tomcat服务池并分配权重 upstream tomcat-server { server 192.168.142.134:8080 weight=1; server 192.168.142.130:8080 weight=1; } server { listen 80; server_name localhost; #追加以下四行条目,用以支持 location ~.*.jsp$ { proxy_pass http://tomcat-server; proxy_set_header Host $host; } #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; #追加以下一行条目,用以调用tomcat服务池资源 proxy_pass http://tomcat-server; } #追加以下四行条目,用以支持各类图片的缓存30天 location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root html/test; expires 30d; }#检查语法[root@nginx nginx-1.12.0]# nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful#重启服务,并查看服务端口状态[root@nginx nginx-1.12.0]# service nginx stop[root@nginx nginx-1.12.0]# service nginx start[root@nginx nginx-1.12.0]# netstat -ntap | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 69680/nginx: master#创建站点目录[root@nginx nginx-1.12.0]# mkdir /usr/local/nginx/html/test#复制图片到站点目录中[root@nginx nginx-1.12.0]# cp /mnt/game.jpg /usr/local/nginx/html/test第二步:配置Tomcat01服务器#远程共享源码包[root@tomcat01 ~]# smbclient -L //192.168.142.1[root@tomcat01 ~]# mount.cifs //192.168.142.1/tomcat /mnt#解压源码包cd /mnt[root@tomcat01 mnt]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local[root@tomcat01 mnt]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/#声明环境变量[root@tomcat01 mnt]# vim /etc/profileexport JAVA_HOME=/usr/local//jdk1.8.0_91export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=. {JAVA_HOME}/lib {JRE_HOME}/libexport PATH=${JAVA_HOME}/bin PATH#生效环境变量 [root@tomcat01 mnt]# source /etc/profile[root@tomcat01 ~]# cd /usr/local[root@tomcat01 local]# mv apache-tomcat-8.5.16/ tomcat##创建tomcat启动脚本的软链接到系统目录中,方便系统识别[root@tomcat01 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/#创建tomcat关闭脚本的软链接到系统目录中,方便系统识别[root@tomcat01 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/#启动服务 [root@tomcat01 local]# startup.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local//jdk1.8.0_91/jreUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.#查看服务端口状态[root@tomcat01 local]# netstat -ntap | grep 8080tcp6 0 0 :::8080 :::* LISTEN 111655/java #创建站点目录[root@tomcat local]# mkdir /usr/local/tomcat/webapps/test#编辑站点首页内容[root@tomcat01 local]# vim /usr/local/tomcat/webapps/test/index.jsp<!DOCTYPE html><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>动态网页</title> </head> <body> <div>Welcom to Jiangsu</div><br><img src="game.jpg"> </body></html>[root@tomcat01 local]# vim /usr/local/tomcat/conf/server.xml #在第149行下追加以下条目,<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="false"></Context>#重启服务[root@tomcat01 local]# shutdown.sh [root@tomcat01 local]# startup.sh#关闭防火墙和安全功能[root@tomcat02 local]# systemctl stop firewalld.service [root@tomcat02 local]# setenforce 0第三步:配置Tomcat02服务器,步骤和Tomcat01服务器一样#编辑站点首页内容[root@tomcat01 local]# vim /usr/local/tomcat/webapps/test/index.jsp<!DOCTYPE html><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>动态网页</title> </head> <body> <div>Welcom to NanJing</div><br><img src="game.jpg"> </body></html>第四步:使用客户机验证网页
以下网页内容不一样,是为了验证负载均衡群集的轮询机制,真实线网环境中网页内容是一样的! |
|