目录

前言

一.Nginx负载均衡实现原理

1、 反向代理原理

2、反向代理的概念

3、反向代理的优势

4、Nginx四层反向代理和七层反向代理

二、Nginx动静分离实现原理

1、动静分离的概念

2、动静分离的原理

3、Nginx 静态处理优势

Nginx+Tomcat负载均衡、动静分离的操作步骤

Nginx主机安装

安装启动 Tomcat

Tomcat 配置

启动tomcat

动静分离配置

1、Tomcat1 server 配置

Tomcat2 server 配置

配置虚拟主机

Nginx server 配置


前言

以LNMP为例,一个企业内部最基础的架构组成需要一个处理静态Web服务的页面,一个动态Web服务的页面和数据库
而我们实现了在Linux平台上,实现了Nginx + PHP 实现动静分离,而实际生产中往往一台nginx 需要“对应”多个动态处理的服务(及tomcat),所以如何将前端接收到的动态请求转交给后端多个tomcat处理。

一.Nginx负载均衡实现原理

1、 反向代理原理

2、反向代理的概念

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

反向代理是为服务端服务的,反向代理可以帮助服务器接收来自客户端的请求,帮助服务器做请求转发,负载均衡等。

反向代理对服务端是透明的,对我们是非透明的,即我们并不知道自己访问的是代理服务器,而服务器知道反向代理在为他服务。

3、反向代理的优势

反向代理的优势:

  • 隐藏真实服务器;
  • 负载均衡便于横向扩充后端动态服务;
  • 动静分离,提升系统健壮性;

4、Nginx四层反向代理和七层反向代理

四层反向代理:是基于IP+PORT(TCP/UDP端口)转发

七层反向代理:基于http,https,mail代理转发

二、Nginx动静分离实现原理

1、动静分离的概念

动静分离是指在 web 服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提示整个服务的访问性和可维护性。

2、动静分离的原理

服务端接收来自客户端的请求中。既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端

3、Nginx 静态处理优势

• Nginx处理静态页面的效率远高于Tomcat的处理能力

• 若Tomcat的请求量为1000次,则Nginx的请求量为6000次

• Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M

• Nginx处理静态资源的能力是Tomcat处理的6倍

Nginx+Tomcat负载均衡、动静分离的操作步骤

两台tomcat 一台nginx
nginx 192.168.23.10
tomcat1 192.168.23.20
tomcat2 192.168.23.30

Nginx主机安装

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

yum install -y pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

useradd -M -s /sbin/nologin nginx
cd /opt
tar zxvf nginx-1.15.9.tar.gz -C /opt/

cd nginx-1.15.9/
./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


 make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

安装启动 Tomcat

解压apache-tomcat软件包

cd /opt
rpm -ivh jdk-8u201-linux-x64.rpmtar zxvf apache-tomcat-9.0.16.tar.gz

Tomcat 配置

vim /etc/profile.d/java.sh
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

加载生效、查看版本

source /etc/profile.d/java.sh
java -version

启动tomcat

优化管理
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
开启服务
startup.sh
netstat -natp | grep 8080

第二太tomcat配置一样

动静分离配置

1、Tomcat1 server 配置

mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp     #动态页面的配置
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

添加虚拟主机配置

vim /usr/local/tomcat/conf/server.xml
删除原host端和valve端 增加这条<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />

shutdown.sh
startup.sh

Tomcat2 server 配置

mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp     #动态页面的配置
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>

配置虚拟主机

vim /usr/local/tomcat/conf/server.xml    #修改配置文件 <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /></Host>        #新增

#重启服务
shutdown.sh
startup.sh

Nginx server 配置

echo '<html><body><h1>this is static</h1></body></html>' > /usr/local/nginx/html/index.html
#准备静态页面

vim /usr/local/nginx/conf/nginx.conf

配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大

重启服务

测试访问

访问192.168.23.10

访问http://192.168.23.10/index.jsp  刷新一下

nginx + tomcat 动静分离相关推荐

  1. Docker构建Nginx+Tomcat动静分离架构

    随着主流Nginx WEB服务器的发展,现在基于Nginx的WEB服务器已广泛应用于各大互联网企业.今天我们来使用docker构建我们的Linux+Nginx+Tomcat动静分离服务器. 1)    ...

  2. nginx+tomcat动静分离结构

    本文采用另一种策略对动静分离进行演示,它的大致结构如图 2 所示. 图 2. 本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 ...

  3. Nginx + Tomcat 动静分离实现负载均衡

    0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 1 # 定义Nginx运行的用户 和 用户组 如 ...

  4. 基于前后端分离的Nginx+Tomcat动静分离

    1.什么是动静分离 "动"与"静" 在弄清动静分离之前,我们要先明白什么是动,什么是静. 在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就 ...

  5. Nginx+Tomcat动静分离及Nginx优化(企业案例)

    目的:nginx处理用户请求的静态页面,tomcat处理用户请求jsp页面,来实现动态分离,nginx处理静态页面效率远高于tomcat,这样一来就能更好的提高并发,处理性能. 准备软件: 下载jdk ...

  6. Nginx+Tomcat动静分离

    需求:nginx处理用户请求的静态页面,tomcat处理用户请求jsp页面,来实现动态分离,nginx处理静态页面效率远高于tomcat,这样一来就能更好的提高并发,处理性能. 准备软件: 下载jdk ...

  7. Nginx+Tomcat动静分离搭建

    此文章压缩软件全部解压在/root下,文章红色字体为需要添加的内容 [root@localhost ~]# ls anaconda-ks.cfg              install.log    ...

  8. nginx+tomcat 动静分离

    启动nginx nginx的启动命令是: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -c制定配置文件的路径,不加- ...

  9. tomcat 如何跳转到apache_第二十期:基于tomcat部署jforum站点,并结合nginx实现动静分离...

    一.  基于tomcat部署站点,并nginx实现动静分离 1.1  Tomcat部署 1.1.1  配置jdk #二进制安装 #解压 [root@node2local]# tar -xzvf jdk ...

最新文章

  1. linux目录都是什么意思,linux中的基本的目录结构都是什么意思,初学者都应该有印象-tmp是什么文件...
  2. NYOJ 155 求高精度幂
  3. layui 给table里面的添加图标_layui中的table中toolbar自定义过程
  4. wxWidgets:wxRibbonBar类用法
  5. radiobutton怎么变成竖排_衣服如此凌乱?怎么能忍受的了?衣柜收纳,试试这些神器吧...
  6. 某游戏服务运维架构进化史(上云方案)
  7. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·004【标识列、外键、复制表】
  8. tenorflow异常集合(自用记录)
  9. 企业如何进行数据质量评估
  10. QT的下载与安装(QT5.9.1)
  11. python主成分分析_Python的主成分分析PCA算法
  12. 红米note7主板电路图_红米Note7Pro手机主板故障案例解析
  13. python 查找excel内容所在的单元格_python 读取excel中单元格的内容
  14. 谷歌SEO排名受哪些因素的影响?(一)
  15. 工欲善其事,必先利其器--vim-tips
  16. 全志A10s芯片手册资料(Datasheet)
  17. JavaScript高级程序设计第四版_英文版
  18. 全向和定向天线区别,何为天线增益
  19. 乖离率背离公式_股市偏离率怎么计算 公式是怎么样的?-BIAS-技术指标-股票入门基础知识学习网...
  20. python连等号_python语句等号

热门文章

  1. 企业案例丨腾讯广告助手 X 云开发CloudBase
  2. 用腾讯优图AI视觉模组在树莓派上玩吃火锅体感游戏
  3. 【矩阵论】范数和矩阵函数(1)
  4. 生物信息学:任选一种编程语言,设计一个双序列全局比对的程序
  5. lfi读取php,php LFI读php文件源码以及直接post webshell
  6. Linux查找文件夹的名字
  7. 小时代2.0虚铜时代.chapter03(一)
  8. Spring源码之BeanFactory.getBean()
  9. day03(连接查询,子查询,分页查询)
  10. python 象棋 ai 入门教程-用Python写一个中国象棋AI?