0
点赞
收藏
分享

微信扫一扫

OpenCV 图像处理应用实战算法列表汇总(长期更新)

惠特曼 2024-08-31 阅读 18

目录

一、Tomcat简介

二、nginx简介

2.1 nginx概述

2.2 正向代理和反向代理

2.3 负载均衡模式

1、轮询(Round Robin)

2、最少连接数(Least Connections)

3、IP 哈希(IP Hash)

4、加权轮询(Weighted Round Robin)

5、最少时间算法(Least Time)

6、一致性哈希(Consistent Hashing)

三、规划部署负载均衡和反向代理(动静分离)

3.1 Nginx配置动静分离实验主要参数

3.2 Nginx动静分离实现原理

3.3 Nginx静态处理优势(为什么要动静分离)

3.4 生产环境实操


一、Tomcat简介

Tomcat 概述

  • 最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发
  • 安装Tomcat后,安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件

Tomcat 重要目录

目录名

作用

bin存放启动和关闭Tomcat的脚本
conf存放Tomcat 不同的配置文件
doc存放Tomcat文档
lib存放Tomcat 运行需要的jar包(库文件)
logs存放Tomcat运行过程中产生的日志文件
src存放Tomcat的源代码
webappsTomcat的主要web发布目录
work存放jsp编译后产生的class文件

二、nginx简介

2.1 nginx概述

Nginx是一款非常优秀的HTTP服务器软件

  • 支持高达50 000个并发连接数的响应
  • 拥有强大的静态资源处理能力
  • 运行稳定
  • 内存、CPU等系统资源消耗非常低
  • 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力

2.2 正向代理和反向代理

正向代理

反向代理

应用场景:动态资源

2.3 负载均衡模式

应用场景:高并发

Nginx支持常见的分流算法

1、轮询(Round Robin)

配置示例:
upstream backend {
       server backend1.example.com;
       server backend2.example.com;
       server backend3.example.com;
}

2、最少连接数(Least Connections)

配置示例:

upstream backend {
       least_conn;
       server backend1.example.com;
       server backend2.example.com;
       server backend3.example.com;
}

3、IP 哈希(IP Hash)

配置示例:

upstream backend {
       ip_hash;
       server backend1.example.com;
       server backend2.example.com;
       server backend3.example.com;
}

4、加权轮询(Weighted Round Robin)

配置示例:

upstream backend {
       server backend1.example.com weight=3;
       server backend2.example.com weight=1;
       server backend3.example.com weight=2;
}

5、最少时间算法(Least Time)

配置示例:

upstream backend {
       least_time header;
       server backend1.example.com;
       server backend2.example.com;
       server backend3.example.com;
}

6、一致性哈希(Consistent Hashing)

配置示例(需要第三方模块如 `ngx_http_upstream_hash_module`):

upstream backend {
       hash $request_uri consistent;
       server backend1.example.com;
       server backend2.example.com;
       server backend3.example.com;
}

三、规划部署负载均衡和反向代理(动静分离)

3.1 Nginx配置动静分离实验主要参数

  • upstream服务池名{}:(负载均衡)配置后端服务器池,以提供响应数据
  • proxy_pass http:/服务池名,:(反向代理)配置将访问请求转发给后端服务器池的服务器处理

3.2 Nginx动静分离实现原理

3.3 Nginx静态处理优势(为什么要动静分离)

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

3.4 生产环境实操

实验设计

1、部署三台服务器

  • Nginx 服务器:192.17.20.100
  • Tomcat 服务器1:192.17.20.101
  • Tomcat 服务器2:192.17.20.102:8080 192.17.20.102:8081

2、Tomcat服务器搭建两个内容不同的网站

3、Nginx服务器上安装Nginx,反向代理两个Tomcat站点,并实现负载均衡

注:关闭防火墙和增强功能

实验部署:

1、部署Nginx负载均衡器(192.17.20.100)

systemctl stop firewalld
setenforce 0

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

useradd -M -s /sbin/nologin nginx

cd /opt
tar zxvf nginx-1.20.2.tar.gz -C /opt/

cd nginx-1.20.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持
--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
--with-stream

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
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/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

2、部署 2 台 Tomcat 应用服务器

#停止防火墙并禁用 SELinux
systemctl stop firewalld
setenforce 0

#安装 JDK
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

#配置环境变量
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

#加载环境变量
source /etc/profile

#安装并启动tomcat
tar zxvf apache-tomcat-8.5.16.tar.gz
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh

#检查端口禁用
netstat -ntap | grep 8080

3、动静分离配置

①tomcat1 服务器配置

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>
 

修改 server.xml

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>

重启Tomcat

/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

②tomcat2 服务器配置

创建JSP页面:

mkdir /usr/local/tomcat/tomcat1/webapps/test
 
vim /usr/local/tomcat/tomcat1/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>

修改 server.xml

vim /usr/local/tomcat/tomcat1/conf/server.xml
 
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/tomcat1/webapps/test" path="" reloadable="true" />
</Host>

重启 Tomcat

/usr/local/tomcat/tomcat1/bin/shutdown.sh 
/usr/local/tomcat/tomcat1/bin/startup.sh 

③Nginx服务器配置

准备静态页面和静态页面

echo '<html><body><h1>这是静态页面</h1></body></html>' > /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/img
cp /root/game.jpg /usr/local/nginx/html/img

修改Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf
 
http {
    ...
    upstream tomcat_server {
        server 172.16.88.22:8080 weight=1;
        server 172.16.88.33:8080 weight=1;
        server 172.16.88.44:8080 weight=1;
    }
 
    server {
        listen 80;
        server_name www.kgc.com;
        charset utf-8;
 
        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|jpeg|png|bmp|swf|css)$ {
            root /usr/local/nginx/html/img;
            expires 10d;
        }
 
        location / {
            root html;
            index index.html index.htm;
        }
    }
    ...
}

④测试

测试静态页面效果:

  • 浏览器访问:192.17.20.100

  • 浏览器访问:192.17.20.100/index.jsp

测试负载均衡效果:

  • 浏览器访问:http://172.16.88.11/index.jsp (不断刷新浏览器)
举报

相关推荐

0 条评论