温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

关于nginx+tomcat动静分离+负载均衡实现步骤及配置流程

发布时间:2020-04-21 11:43:00 来源:亿速云 阅读:682 作者:三月 栏目:建站服务器

 下文给大家带来nginx+tomcat动静分离+负载均衡实现步骤及配置流程,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用亿速云在行业内累计的经验做一个解答。

一、关于动静分离和负载均衡的介绍

Nginx+Tomcat的动静分离:
所谓的动静分离就是通过nginx(或apache等)来处理用户端请求的图片、html等静态的文件,tomcat(或weblogic)处理jsp、do等动态文件,从而达到动静页面访问时通过不同的容器来处理。nginx处理静态页面效率远高于tomcat,而tomcat擅长动态页面处理,这样一来就能更好的提高并发,处理性能。

Nginx+Tomcat的负载均衡:
云服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器,tomcat负责处理nginx转发的用户请求

关于nginx+tomcat动静分离+负载均衡实现步骤及配置流程

二、具体步骤

1、环境介绍
名称角色地址
centos7-1nginx192.168.142.153
centos7-2Tomcat192.168.142.154
centos7-3Tomcat192.168.142.132
win7客户端不重要(同一网段即可)

目的:

当访问服务器时,静态页面由nginx服务器处理,动态页面由tomcat处理

2、Tomcat配置(两台Tomcat端配置相同)

安装jdk环境包

[root@localhost tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm
[root@localhost tomcat]# cd /usr/java/jdk1.8.0_201-amd64/

修改全局配置文件

[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
//末行添加
    export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export PATH=$JAVA_HOME/bin:$PATH
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
[root@localhost jdk1.8.0_201-amd64]# cd /mnt/tomcat/

安装Tomcat软件本体

[root@localhost tomcat]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@localhost tomcat]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-9.0.16/ tomcat

建立启动/停止软链接

[root@localhost local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@localhost local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

//启服务,关防火墙
[root@localhost local]# startup.sh 
[root@localhost local]# systemctl stop firewalld.service 
[root@localhost local]# setenforce 0

创建Tomcat首页

[root@tomcat1 local]# mkdir -p /web/webapp1      #建立站点
[root@tomcat1 local]# vim /web/webapp1/index.jsp    #新建Tomcat首页
<%@ page language= "java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
  <head>
    <title>JSP test1 page</title>
  </head>
  <body>
    <% out.println("Welcome to test site, http://www.testl.com" );%>
  </body>
</html>

在配置文件中进行指定

[root@tomcat1 local]# cd /usr/local/tomcat/conf/
[root@tomcat1 conf]# vim server.xml
##149行插入
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
//注解: 
//docBase: web应用的文档基准目录
//reloadable设置监视“类”是否变化
//path=""设置默认""类

//重启服务
[root@tomcat1 conf]# shutdown.sh
[root@tomcat1 conf]# startup.sh 
3、Nginx配置

安装环境包

[root@nginx ~]# yum -y install gcc gcc-c++ zlib-devel expat-devel pcre-devel pcre openssl-devel

安装nginx软件本体

[root@nginx mnt]# cd /opt/nginx-1.12.0/
[root@nginx nginx-1.12.0]# useradd -M -s /sbin/nologin nginx
[root@nginx nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module
[root@nginx nginx-1.12.0]# make && make install

进行到这步时,nginx会有三种不同方向与Tomcat进行结合,这里我也会一一进行讲解

(1)nginx仅进行负载均衡,不提供网页服务

[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//gzip后添加
upstream tomcat-server {                  //地址池名称
        server 192.168.142.154:8080 weight=1;       //指向Tomcat地址,采用轮询,权重相同
        server 192.168.142.132:8080 weight=1;
}
//location /段后添加
proxy_pass http://tomcat-server;      //代理指向Tomcat地址池(之前指定的)

(2)nginx仅进行动静分离时

[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//server段后添加
location ~ (. *). jsp$   {
    proxy_pass http://192.168.142.132:8080;      //在nginx遇到以jsp结尾的网页时将自动代理至Tomcat服务器
    proxy_set_header Host $host;
}

(3)nginx同时进行负载均衡与反向代理

[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//gzip后添加
upstream tomcat-server {                  //地址池名称
        server 192.168.142.154:8080 weight=1;       //指向Tomcat地址,采用轮询,权重相同
        server 192.168.142.132:8080 weight=1;
}
//server段后添加
location ~ (. *). jsp$   {
    proxy_pass http://tomcat-server;
    proxy_set_header Host $host;
}

开启服务

[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

看了以上关于nginx+tomcat动静分离+负载均衡实现步骤及配置流程,如果大家还有什么地方需要了解的可以在亿速云行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,亿速云技术工程师在行业内拥有十几年的经验了。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI