IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx+Tomcat负载均衡、动静分离集群 -> 正文阅读

[系统运维]Nginx+Tomcat负载均衡、动静分离集群

一.Nginx负载均衡实现原理

Nginx实现负载均衡是通过反向代理实现

?

2、反向代理的概念

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

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

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

3、反向代理的优势

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

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

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

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

5、Nginx?实现负载均衡的策略:

  • 轮询策略:默认情况下采用的策略,将所有客户端请求轮询分配给服务端。这种策略是可以正常工作的,但是如果其中某一台服务器压力太大,出现延迟,会影响所有分配在这台服务器下的用户。
  • 最小连接数策略:将请求优先分配给压力较小的服务器,它可以平衡每个队列的长度,并避免向压力大的服务器添加更多的请求。
  • 最快响应时间策略:优先分配给响应时间最短的服务器。
  • 客户端?ip?绑定策略:来自同一个?ip?的请求永远只分配一台服务器,有效解决了动态网页存在的?session?共享问题。

二、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负载均衡、动静分离的操作步骤

1、准备三台服务器,Nginx作为负载均衡器,Tomcat作为应用服务器

Nginx 服务器:192.168.50.40:80
Tomcat服务器1:192.168.50.35:80
Tomcat服务器2:192.168.37.38:8080 192.168.50.38:8081

2、部署Nginx 负载均衡器

关闭防火墙

?安装依赖包以及配置模块

yum -y install prce-devel zilb-devel openssl-devel gcc gcc-c++ make

?拉进nginx包

?解压软件包

?添加模块

?编译安装

yum -y install prce-devel zilb-devel openssl-devel gcc gcc-c++ make
useradd -M -s /sbin/nologin nginx
tar zxvf nginx-1.12.0.tar.gz 
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_fiv_module \
--with-http_ssl_module \
--with-stream
make && make install

?创建一个用户useradd -M -s /sbin/nologin nginx

?优化路径

?添加系统服务??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

给件赋予权限,启动下nginx服务

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

?测试下网页访问


?2、准备好tomcat服务器1

安装好jdk环境

tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

?

vim /etc/profile.d/java.sh编辑java环境

?

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


?将tomcat包拉进来

解压后移动文件? ?mv apache-tomcat-8.5.16 /usr/local/tomcat

?在当前目录下启动服务./startup.sh

?查看端口信息??netstat -antp | grep java


?


动静分离Tomcat1 server 配置

?在cd /usr/local/tomcat/webapps/下创建test目录

?vim index.jsp编辑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>

另俩台服务器也如同上面tomcat进行配置,但test要改为test2和test3

访问到tomcat就行

添加新的host内容

cd conf/


vim server.xml

?在/usr/local/tomcat/bin下启动服务

?查看端口

?Tomcat2 server 配置

实例一

vim?server.xml

?同理

实例二

在实例二中还要改其中的端口号

?

?此处后面还有一个8009端口改为8010

?启动服务

?查看端口

?


Nginx server 配置

?添加下面内容,进行重启服务

?

?

upstream tomcat_server {
        server 192.168.50.35:8080 weight=1;
        server 192.168.50.37:8080 weight=1;
        server 192.168.50.37:8081 weight=1;
        }
    server {

 location ~* .*\.jsp$ {
           proxy_pass http://tomcat_server;
           proxy_set_header HOST $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

location ~* .*\.(gif|jpg|png|swf)$ {
            root /var/www/html/img;
        }

?重启服务

systemctl restart nginx

通过客户机进行访问

?

?在nginx服务器上拉入静态图片

?进行网页访问

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 17:05:14  更:2021-08-23 17:07:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 10:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计