群集架构----Nginx负载均衡与Tomcat群集

在CentOS7上部署百万PV网站架构 网站架构概述 网站架构是根据客户需求分析的结果,准确定位网站目标群体,设定网站的整体架构,规划、设计网站栏目及其内容,制定网站开发流程的顺序,最大限度地进行高效资源分配与管理的设计。 百万PV网站架构 案例设计 采用四层模式实现,主要分为前端反向代理层、Web层、数据库缓存层和数据库层。前端反向代理层层采用主备模式,Web层采用群集模式,数据库缓存层采用主备模式,数据库层采用主从模式。 ... 阅读详情

一: 负载均衡技术

1、引入负载均衡技术

负载均衡技术 (load blance) 是一种概念 把资源的使用进行平均分配。

负载均衡:分发流量、请求到不同的服务器。使流量平均分配(理想的状态的)

作用:

服务器容灾 流量分发

主要作用:

①流量分发 请求平均 降低单例压力

其他作用:

②安全 隐藏后端真实服务

③屏蔽非法请求(七层负载均衡)

2、负载均衡分类

-mark

1)二层负载均衡(mac)

根据OSI模型分的二层进行负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后,再分配后端实际的MAC地址响应

**2)三层负载均衡(ip) **

一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后,再分配后端实际的IP地址响应

3)四层负载均衡(tcp) 网络运输层面的负载均衡

在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器

4)七层负载均衡(http) 智能型负载均衡

根据虚拟的url或IP,主机接收请求,再转向(反向代理)相应的处理服务器

3、常见实现方式

实现方式分类:

①软件级别 性价比高 可控性强

②硬件级别 性能好 价格高 几万到几十万不等

硬件是实现方式:

F5 BIG-IP 四层和七层

软件实现方式:

OSI分层实现方式
七层Nginx、HAProxy
四层LVS、HAProxy、Nginx(1.9版本后)

mark

四层和七层对比:

mark

二.Nginx负载均衡实验分析

  • 通常,一个tomcat站点由于可能出现单点故障以及无法应付过多的客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善web站点架构
  • Nginx是一款性能优越的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理以及负载均衡器,来提升整个站点的负载并发能力

三.网络拓扑图以及实验环境

mark

类型IP地址系统软件包
Nginx服务器192.168.100.140centos7nginx-1.12.2.tar.gz
Tomcat服务器1192.168.100.150centos7apache-tomcat-8.5.16.tar.gz;jdk-8u91-linux-x64.tar.gz
Tomcat服务器2192.168.100.160centos7apache-tomcat-8.5.16.tar.gz;jdk-8u91-linux-x64.tar.gz
客户机192.168.100.10Windows10

四.具体操作步骤以及验证

  • Tomcat01配置

    1.解压jdk的压缩包
    systemctl stop firewalld
    setenforce 0 
    tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
    
    2.配置Java环境变量
    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
    
    3.加载 JAVA环境变量
    source /etc/profile
    
    4.解压Tomcat软件包
    tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local
    
    5.修改目录名,便于操作
    cd /usr/local
    mv apache-tomcat-8.5.16/ tomcat
    6.创建软链接,优化服务控制方式
    ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
    ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
    
    7.创建web站点,编辑站点内容,加入测试页面
    mkdir -pv /web/webapp1
    vim /web/webapp1/index.jsp
     
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
     <head>
      <title>JSP test1 page</title>
     </head>
     <body>
      <% out.println("Welcome Tomcat 01");%>
     </body>
    </html>
    
    8.修改Tomcat的server.xml文件,定义一个虚拟主机,并且将网站文件路径指向已经建立的/web/webapp1,在hos段增加context段
    [root@tomcat01 ~]# vim /usr/local/tomcat/conf/server.xml
    //148行
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" reloadable="false">
            </Context>
     //注解:docBase: web应用的文档基准目录
    reloadable设置监视“类”是否变化
    path=""设置默认“类”
    
    9.关闭安全性功能,开启服务
    startup.sh 
    systemctl stop firewalld
    setenforce 0
    
  • Tomcat02配置,与01的配置大体相同,index.jsp首页定义的输出Welcome Tomcat 02 这里不同,以示区分

    1.解压jdk的压缩包
    tar xzvf jdk-8u231-linux-x64.tar.gz -C /usr/local
    
    2.配置JAVA环境变量
    vim /etc/profile  //追加到末尾
    export JAVA_HOME=/usr/local/jdk1.8.0_231
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    3.加载JAVA环境变量
    source /etc/profile
    
    4.解压tomcat软件包
    tar xzvf apache-tomcat-8.5.50.tar.gz -C /usr/local
    
    5.修改目录名,便于操作
    cd /usr/local
    mv apache-tomcat-8.5.50/ tomcat/
    
    6.创建软链接,优化服务控制方式
    ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
    ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
    
    7.创建web站点,编辑站点内容
    mkdir -pv /web/webapp1
    vim /web/webapp1/index.jsp
     
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
     <head>
      <title>JSP test1 page</title>
     </head>
     <body>
      <% out.println("Welcome Tomcat 02");%>
     </body>
    </html>
    ~
    
    8.修改Tomcat的server.xml文件,定义一个虚拟主机,并且将网站文件路径指向已经建立的/web/webapp1,在hos段增加context段
    [root@tomcat02 ~]# vim /usr/local/tomcat/conf/server.xml
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" reloadable="false">
            </Context>
     
    9.关闭安全性功能,开启服务
    shutdown.sh
    startup.sh 
    systemctl stop firewalld
    setenforce 0
    
  • Nginx服务器的配置

    1.解压软件包
    tar xzvf nginx-1.12.2.tar.gz -C /opt
    
    2.下载相关软件包
    yum install pcre-devel zlib-devel gcc gcc-c++ make -y
    
    3.创建nginx的用户
    useradd -M -s /sbin/nologin nginx
    
    4.编译安装nginx
    cd /opt/nginx-1.12.2/
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx --group=nginx \
    --with-http_stub_status_module \    //启用状态统计
    --with-http_gzip_static_module \    //启用gzip静态压缩
    --with-http_flv_module     //启用flv模块,提供寻求内存使用基于时间的偏移量文件
     
    make && make install
     
    5.编辑nginx的主配置文件
    vim /usr/local/nginx/conf/nginx.conf
     #keepalive_timeout  0;
        keepalive_timeout  65;
        #gzip  on;
        upstream tomcat_server {              //添加upstream函数,配置tomcat服务器池名称自定义,但保证和下面调用名称一致即可
            server 192.168.100.150:8080 weight=1;   //weight代表权重
            server 192.168.100.160:8080 weight=2;
            }
     
        server {
            listen       80;
            server_name  localhost;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
     
            location / {
                root   html;
                index  index.html index.htm;
                proxy_pass http://tomcat_server;    //添加反向代理到设置的tomcat服务器池,这里调用的名称,要和上面生命的函数名一致
            }
    
    		
    6.优化服务控制方式
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
     
    7.检查语法,是否配置正确
    [root@nginx ~]# nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@nginx ~]# 
     
    8.关闭安全性功能,开启nginx服务
    systemctl stop firewalld
    setenforce 0
    nginx  				//启用nginx服务
    netstat -ntap | grep nginx
    killall -1 nginx 	//重启nginx服务
    
    9. 页面测试
    访问代理服务器192.168.100.140   多次刷新并查看加权轮询
    

    markmark

Apache+tomcat 集群-简单HA(No-Session,LB+Failover) NULL 博文链接:https://acooly.iteye.com/blog/1347417 立即下载

相关推荐

负载均衡haproxy_+tomcat实战

服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为: 高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总 高可用集群:提高冗余单元,避免单点故障 负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。 一般提到的负载均衡(Load Balance),是指实现负载均衡集群。负载均衡实现了横向扩展,避免纵向的升级换代。

架构系列二:使用Nginx+tomcat实现集群部署

在前面的一篇文章《架构系列一:系统架构的演变》中,简单介绍了系统架构的演变,从单机到集群部署,现在的企业级项目,可以说99.99%以上的项目,都是集群部署,作为一个程序员,这是一个不得不会的技能,现在就基于keepalived+nginx+tomcat搭建一套完整的集群 一、环境介绍 虚拟机1:Ubuntu-S100 IP:192.168.130.128 主要部署Tomcat应用 虚拟机2...

kity9420的专栏 3237

Frida+Objection保姆级教程:从环境搭建到实战Hook(含Wallbreaker插件使用)

本文提供了一份从零开始的Frida与Objection移动安全动态分析实战指南。详细讲解了Python环境配置、Frida-Server部署、Objection核心命令使用以及Wallbreaker插件安装与应用。通过实战案例演示如何Hook网络请求(如HttpURLConnection和OkHttp3),帮助安全研究人员快速掌握应用运行时行为分析与漏洞挖掘技能。

weixin_28318011的博客 100

这样搭建Nginx+Tomcat集群,实现负载均衡及动静分离,太轻松!

前言 ​ 想必大家对于Nginx和Tomcat都非常熟悉了,Nginx的应用非常广泛,不仅是对web静态资源非常友好,而且也是非常实用的反向代理和负载均衡软件。结合后端Tomcat的服务,从而搭建Nginx+Tomcat集群。 ​ 对于直接想要实践的朋友而言可以获取本文的链接中的软件包后直接看第三备份的内容。 为了帮助大家更轻松的学好Python,无私分享一套Python学习资料,希望对正在学习的...

pythonadiou的博客 1512

手把手教你用SysMax桥接软件搞定CANoe、INCA和刷写工具(附驱动配置避坑点)

本文详细介绍了如何使用SysMax PCAN FD桥接软件实现CANoe、INCA和刷写工具的无缝对接,提供从驱动配置到多软件协同的全链路指南。重点解析了驱动安装避坑点、CANoe配置技巧、INCA集成方法以及刷写工具链优化方案,帮助汽车电子工程师构建高效开发环境。

weixin_30500105的博客 390

Intel MKL库常用模块的C语言实现

文章目录1. 随机数生成1.1 等概率的01分布 viRngUniform1.2 (复)高斯分布 vsRngGaussian2. 向量-向量运算2.1 向量数乘与加法 cblas_caxpby2.2 向量内积 cblas_cdotu_sub2.3 向量范数 cblas_scnrm23. 矩阵-向量运算3.1 矩阵存储方案3.2 矩阵-向量乘法 cblas_cgemv4. 矩阵-矩阵运算4.1 矩阵...

月半 月半的博客 4650

Nginx+Tomcat集群环境搭建

Tomcat集群能带来什么? 提高服务的性能、并发能力、以及高可用性 提高项目架构的横向扩展能力 提高服务的性能 实际公司线上生产环境都会选择一台机器部署一个tomcat,多台机器完成集群,毕竟一台机器部署多个tomcat还是有一些共享瓶颈的,例如它们的网卡只有一个,内存和磁盘IO等都是共用的。而多台机器共同提供相同的服务,能够充分利用每一台机器的资源,自然能够提高服务的性能。 并发能力 很好理解,一台tomcat的http线程池是有限的,那么两台能承载的http线程自然是一台的2倍。 高可用性 简单理解在

Jay的博客 505

xctf攻防世界 MISC高手进阶区 low

1. 进入环境,下载附件 给出的一张bmp图片,没有其他信息 2. 问题分析 扔进binwalk中,没有发现有用信息 使用zsteg,没有有用信息 塞入StegSolve中,发现有点猫腻,如图: 有点二维码的感觉,emmm,需要像素处理,但不知道如何下手,参考网上的wp,发现是让使用lsb隐写,copy代码: from PIL import Image img = Image.open('./pic/low.bmp') img_tmp = img.copy() pix = img_tmp.load()

l8947943的博客 1万+

使用nginx搭建tomcat集群

nginx能够搭建tomcat集群是因为nginx能够反向代理以及负载均衡。

beichyes的博客 578

从零搭建Obsidian智能知识库:Ollama本地模型与Copilot插件实战指南

本文详细介绍了如何从零搭建Obsidian智能知识库,结合Ollama本地模型与Copilot插件实现高效知识管理。通过本地部署AI助手,用户可以在保证隐私安全的同时,快速检索和整理笔记,提升工作效率。文章涵盖硬件准备、Ollama部署、插件配置及实战技巧,适合需要高效知识管理的专业人士。

weixin_29230773的博客 631

计组实验4 控制冒险与分支预测

目录前言实验内容背景知识分支预测技术⭐阻塞周期计算方法不开启 BTB开启 BTBpart 1 矩阵乘法与优化未开启 BTB 的分析开启 BTB 的分析part 2 设计代码使 BTB 无效part 3 循环展开优化矩阵乘法未开启 BTB开启 BTB结束语结论 前言 上一篇博客:计组实验3 mips冒险之流水线冒险 摸了半个月了。。。咕咕咕 今天来写计组实验 4 这个实验非常简单,就是有点难。 这个实验比较容易算错,或者是被模拟器出人意料的结果搞的神神叨叨的,所以今天来记录并且详细分析该实验。 注:请务必阅

AKGWSB 's blog 5666

Nginx +tomcat的集群概念

Nginx+Tomcat的集群概念

yangcan741147的博客 499

【科学文献计量】标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)

@[TOC](标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)) 1 标准参考出版年谱与多维参考出版年谱 1.1 标准参考出版年谱(Standard RPYS) 标准参考出版年谱(Standard Reference Publication Year Spectroscopy)是由Marx, Bornmann, Barth, and Leydesdorff(2014)和Marx and Bornmann(2014)提出的一种量化历史出版物对研究领域影响的方法。该方法通

lys_828的博客 1103

Haproxy群集+Nginx负载均衡+Tomcat架构搭建

Haproxy集群+Nginx负载均衡+Tomcat

FP202530的博客 1120

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux系统架构--Nginx与Tomcat负载均衡群集

实验 通常,一个tomcat站点由于可能出现单点故障以及无法应付过多的客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善web站点架构 Nginx是一款性能优越的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序...

qq397750142的博客 209

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Linux系统架构-----Nginx与Tomcat实现负载均衡群集

一.实验分析 通常,一个tomcat站点由于可能出现单点故障以及无法应付过多的客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善web站点架构 Nginx是一款性能优越的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端...

qq_42761527的博客 768

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Nginx+Tomcat负载均衡与动静分离架构

在现代Web应用架构中,如何高效处理日益增长的访问量和复杂的请求类型成为关键挑战。本文将详细介绍如何通过Nginx与Tomcat的组合,构建高性能的负载均衡群集并实现动静资源分离,为Java Web应用提供稳定可靠的生产环境解决方案。性能提升:Nginx处理静态资源效率比Tomcat高3-5倍,减少后端压力高可用性:多Tomcat节点避免单点故障,Nginx支持平滑重启资源优化:Tomcat专注动态逻辑处理,内存/CPU占用更合理可扩展性:轻松添加新Tomcat节点,Nginx自动负载均衡。

2503_91100205的博客 1024

Nginx+Tomcat负载均衡群集

关键参数: unpackWARs:是否自动解压WAR包 autoDeploy:是否自动部署新应用 reloadable:监视类文件变化(生产环境建议false) 1.4 站点部署实战 1. 创建应用目录 2. 编写JSP测试页 3. Context路径映射 二、 Nginx+ Tomcat架构设计 2.1 架构瓶颈与解决方案 组件 单点问题 集群方案优势 单Tomcat 并发能力弱(~200连

2501_91421610的博客 1417

Nginx+Tomcat负载均衡集群

名称由来:由 Sun 公司詹姆斯・邓肯・戴维森开发,后贡献给 Apache 软件基金会。因希望项目以能自我照顾的动物命名,最终定名为 “Tomcat”(公猫),其 Logo 也设计为公猫形象。早期项目名为 “Catalina”,故安装后可见许多相关目录和文件。应用场景:免费开源的轻量级 Web 应用服务器,适用于中小型系统及并发用户不多的场合,是开发调试 JSP 程序的首选。

YUNYINGXIA的博客 1373

keepalived+nginx+tomcate(动静分离群集部署)

keepalived+nginx+tomcate动静分离群集部署Nginx负载均衡原理Nginx动静分离原理项目环境nfs配置tomcat1配置(tomcat2配置同理)访问测试:Nginx1配置(Nginx2同理)访问测试keepalived配置(主备区别router_id、state、priority三个参数不同)访问测试关闭主服务器查看备服务器ip addr再次访问192.168.100.100/index.jsp查看备服务器日志 动静分离群集部署 Nginx负载均衡原理 所谓负载均衡,就是 Ngin

m0_50650953的博客 357

Nginx构建动静分离与群集调度

动静分离是让动态网站里的动态网页根据一定的规则把不变的资源和经常变的资源区分开来, 动静资源做好了拆分以后,我们可以根据静态资源的特点将其做缓存操作,这就是网站静态处理的核心思路。

qq_60654159的博客 2107

大型网站架构之百万PV网站架构

PV(page view)即页面浏览量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一,简称为PV。 案例概述本案例设计采用四层模式来实现,主要分为前端反向代理、web层、数据库缓存层、数据库层。前端反向代理层采用主备模式,Web层采用群集模式,数据库缓存层采用主备模式,数据库层采用主备模式 架构拓扑图:实现是正常情况数据流向,虚线...

weixin_33728268的博客 289

Nginx和Tomcat实现负载均衡群集部署应用

Nginx凭借其高性能、高并发和低资源占用的特点,成为了一款出色的反向代理服务器和负载均衡器。而Tomcat则是一款广泛使用的Java Web应用服务器,它支持集群部署,可以将多个Tomcat实例组合成一个逻辑上的服务器集群,实现请求的负载均衡和会话共享,

博客之路,前途漫漫 5522

Nginx+tomcat负载均衡群集

实验环境如下 这里需要准备4台服务器(1台nginx、2台tomcat做负载、一台MySQL做数据存储) 准备软件包如下: 软件包地址连接: 链接:https://pan.baidu.com/s/1urVIhaWdv8DD0ojr6TNI1w 提取码:o6xb nginx配置(172.16.1.54) 1、安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c++ 2、创建nginx运行用户 useradd -M -s /sbin/nologin ng

ywc0825的博客 3976

nginx+Tomcat负载均衡群集

LVS:四层性能王者,适合基础设施层的流量转发。HAProxy:四层 / 七层全能型选手,适合需要灵活路由和复杂健康检查的场景。Nginx:七层 Web 场景首选,轻量高效,适合反向代理和静态资源处理。京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java 语言开发的Web 站点。目前,IBM 的 WebSphere 及 0racle 的 WebLogic 占据了市面上 Java 语言 Web 站点的 大部分份额。

2501_91344113的博客 1607
上一篇: 群集架构----Nginx与Tomcat动静分离搭建
下一篇: 缓存加速----Squid传统代理&透明代理
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值