Nginx+Tomcat 负载均衡+动静分离

tech2023-10-04  96

文章目录

Tomcat概述Ngiinx概述Nginx负载均衡实现原理Nginx动静分离实现原理 来吧!展示!!实验①搭建 Nginx 服务器搭建 Tomcat 服务器验证实验 实验②Tomcat01 配置Nginx 配置测试实验

Tomcat概述

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

Ngiinx概述

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

特点

支持高达50000个并发连接响应拥有强大的静态资源处理能力运行稳定硬件资源占用很低

Nginx负载均衡实现原理

示意图 Ngxin配置参数

upstream 服务器池 { }

配置之后的后端服务器,让其为自己提供响应数据 proxy_pass http://服务器地址配置将访问请求转发给后端服务器池的服务器处理

Nginx动静分离实现原理

服务费接收来自客户端的请求中基友静态资源也有动态资源,静态资源由nginx提供,动态资源由nginx转发给后端服务器提供服务。

nginx处理静态页面对比tomcat优势

Nginx处理静态页面的效率远高于Tomcat若Tomcat的请求量为1000次,则Nginx的请求量为6000次Tomcat每秒吞吐量为 0.6M,Nginx的每秒吞吐量为3.6MNginx处理静态资源的能力是Tomcat的6倍

来吧!展示!!

nginx服务ip:20.0.0.11 cat01:20.0.0.3 cat02:20.0.0.4

实验①

搭建 Nginx 服务器

安装环境依赖包 [root@nginx bao]# yum -y install \ > pcre-devel \ > zlib-devel \ > gcc gcc-c++ \ > make [root@nginx bao]# useradd -M -s /sbin/nologin nginx [root@nginx bao]# tar zxvf nginx-1.12.2.tar.gz [root@nginx bao]# cd nginx-1.12.2/ [root@nginx nginx-1.12.2]# ./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.2]# make && make install [root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

编辑配置文件

[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf #gzip on; ##找到这行,在下面添加 upstream catserver { ##设置节点服务器,你们做的时候名字起的正规点啊哈哈哈 server 20.0.0.3:8080 weight=1; ##指向cat01 IP,weight指的是权重 server 20.0.0.4:8080 weight=1; ##看上面自己理解吧 } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } location ~.*.jsp$ { ##往下加,匹配到以 jsp 结尾的网页再两台节点服务器中轮询 proxy_pass http://catserver; } [root@nginx nginx-1.12.2]# systemctl stop firewalld [root@nginx nginx-1.12.2]# setenforce 0

搭建 Tomcat 服务器

安装、配置tomcat 两台通样操作

[root@cat01 bao]# tar zxvf jdk-8u91-linux-x64.tar.gz [root@cat01 bao]# mv jdk1.8.0_91/ /usr/local/ [root@cat01 bao]# vim /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_91 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH [root@cat01 bao]# source /etc/profile [root@cat01 bao]# java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode) [root@cat01 bao]# tar zxvf apache-tomcat-8.5.16.tar.gz [root@cat01 bao]# mv apache-tomcat-8.5.16 /usr/local/tomcat [root@cat01 bao]# cd /usr/local/tomcat/ [root@cat01 tomcat]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin [root@cat01 tomcat]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin [root@cat01 bao]# mkdir -p /web/cat01 [root@cat01 bao]# vim /web/cat01/index.jsp ##cat02 改成 /web/cat02 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>CAT01 web</title> </head> <body> <% out.println("This is CAT01.");%> ##另一台配置 This is CAT02. </body> </html> [root@cat01 bao]# vim /usr/local/tomcat/conf/server.xml 148 <Host name="localhost" appBase="webapps" 149 unpackWARs="true" autoDeploy="true"> ##主配置文件里找到这个服字段,在下面添加,意思差不多是重新定义主页位置 150 <Context docBase="/web/cat01" path="" reloadable="false"> 151 </Context> [root@cat01 bao]# startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8.0_91/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@cat01 bao]# netstat -ntap |grep 8080 tcp6 0 0 :::8080 :::* LISTEN 74552/java

验证实验

实验成功,当匹配到动态网页时轮询指向两台web服务器,但是注意工作中两台主机的页面必须一样

实验②

实验需求:nginx处理静态图片,Tomcat处理动态页面配置 Tomcat指路径,nginx放图片 目录名称需要和Java项目名称相同

Tomcat01 配置

02我就不改了,麻烦

[root@cat01 bao]# vim /web/cat01/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" "http://www.w3.org/TR html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="nginx/html; charset=UTF-8"> ##位置和图的位置一样,nginx/html <title>CAT01 web</title> </head> <body> <div>This is CAT01.</div><br> <img src="FDL.jpg"> </body> </html>

Nginx 配置

[root@nginx /]# cd /usr/local/nginx/html/ [root@nginx html]# rz -E rz waiting to receive. [root@nginx html]# ls 50x.html FDL.jpg index.html [root@nginx html]# vim /usr/local/nginx/conf/nginx.conf server { listen 80; server_name localhost; ##添加下面 location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root html; expires 30s;

测试实验

实验成功

最新回复(0)