apache 2.4.12 + tomcat 7.0.61 + jk connectors 1.2.40实现tomcat负载均衡集群
实验环境:
CentOS 5.11 final
hostname:T1.getg.com
IP地址:192.168.50.138
软件准备:
CentOS Linux 5.*系统光盘中的“Development tools”工具包组
jdk-8u45-linux-x64.tar.gz
pcre-8.36.tar.gz
apr-util-1.5.4.tar.gz
apr-1.5.1.tar.gz
httpd-2.4.12.tar.gz
apache-tomcat-7.0.61.tar.gz
所有应用程序都安装部署在/opt目录下,当然这不是必须的,如果你愿意也可以部署在你想要的目录下,大多数人都按照习惯部署在/usr/local目录下,由于/usr/local目录下有其他的程序,我怕混淆,因此这个实验的所有程序都部署在/opt目录下。
第一步:下载安装程序
(使用root用户下载到root用户的家目录下/root,后续移动应用程序的命令都是在这个目录下执行的)
下载jdk-8u45-linux-x64.tar.gz
wget http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz?AuthParam=1430202129_13eb567f3345e9666fcd83ec03861832
下载pcre-8.36.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
下载apr-1.5.1.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.1.tar.gz
下载apr-util-1.5.4.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
下载Apache httpd2.4.12
wget http://apache.fayea.com//httpd/httpd-2.4.12.tar.gz
下载apache-tomcat-7.0.61.tar.gz
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.61/bin/apache-tomcat-7.0.61.tar.gz
下载tomcat-connectors-1.2.40-src.tar.gz
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz
第二步:安装程序
这里需要说明一下,jdk和tomcat下载的时候已经编译好了,属于免安装版;pcre、apr、httpd、tomcat-connectors下载的是源程序,需要编译安装,这一步骤里面将讲述如何编译安装,其实这些程序在光盘的程序包中都是已经有的,我们这里实验的apache和tomcat都是最新版,因此相关的依赖程序也需要最新版本的才行。
----->安装Development tools(这里需要yum的支持,所以如果系统中没有配置yum,还需要先配置好yum才能执行这一以及后续的步骤,关于如何配置yum及其安装源请参考其他相关资料,我这里使用的是官网的安装源。)
# yum groupinstall "Development tools"
----->安装JDK,说是安装,其实就是解压下载的文件,然后配置环境变量,我么将JDK的环境变量设置在/etc/profile文件中,这样对所有用户都适用,如何仅仅配置在root用户的.bash_profile文件中,环境变量只对root用户生效。(如果你之前配置过JDK,也可以下载rpm安装包、bin二进制安装包或者源代码自己编译安装)
1、将下载的安装程序文件移动到opt目录下;
# mv jdk-8u45-linux-x64.tar.gz /opt
2、解压文件;
# cd /opt
# tar -xvf jdk-8u45-linux-x64.tar.gz
# cd jdk1.8.0_45/bin
3、验证java是否可以工作;
# ./java -version
4、编辑JDK环境变量;
# vim /etc/profile
添加下面的内容到/etc/profile文件中
JAVA_HOME=/opt/jdk1.8.0_45
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export JAVA_HOME PATH CLASSPATH
5、验证设置JDK环境。
# . /etc/profile
# java -version
# echo $JAVA_HOME
# echo $PATH
# echo $CLASSPATH
----->安装pcre(PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。)
1、将下载安装程序移动到/opt目录下;
# mv pcre-8.36.tar.gz /opt
# mv pcre-devel-8.36-5.fc22.x86_64.rpm /opt
2、解压文件;
# cd /opt
# tar -xvf pcre-8.36.tar.gz
3、编译安装pcre
# cd pcre-8.36
# ./configure
# make && make install
----->安装pcre-devel(开发组件库我们使用系统自带的)
# yum install pcre-devel
----->安装配置Tomcat(配置3个节点的Tomcat,以便可以实现集群)
1、将下载的安装程序移动到/opt目录下;
# mv apache-tomcat-7.0.61.tar.gz /opt
# cd /opt
2、解压文件;
# tar -xvf apache-tomcat-7.0.61.tar.gz
3、复制一份tomcat程序做为tomcat节点1;
# cp -r apache-tomcat-7.0.61 tomcat1
4、复制一份tomcat程序做为tomcat节点2;
# cp -r apache-tomcat-7.0.61 tomcat2
5、重命名tomcat程序作为tomcat节点3;
# mv apache-tomcat-7.0.61 tomcat3
6、修改tomcat节点1的配置参数;
# cd tomcat1
# cd conf
# vim server.xml
将配置文件中部分内容修改如下:
<Server port="8105" shutdown="SHUTDOWN">
<Connector port="8180" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="192.168.50.138" jvmRoute="tomcat1">
<Host name="192.168.50.138" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 去掉上下的注释符号
在配置文件中加入如下内容:
<Context docBase="/opt/webapps" path="/webapps" reloadable="false"/>
保存退出
7、我们这个配置实例的jsp测试网页部署在/opt/webapps目录下,我们在该目录下新建一个test.jsp的测试网页,他可以显示tomcat运服务器的IP地址和端口号;
# cd /opt
# mkdir webapps
# vim test.jsp
加入如下内容:
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.*" %>
<BR>获取服务器的IP地址和端口号是:
<BR><%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
保存退出
8、启动Tomcat节点1的JVM虚拟机;
# cd /opt/tomcat1/bin
# ./startup.sh
9、测试Tomcat节点1已经能够正常工作;
在浏览器中输入:192.168.50.138:8180/webapps/test.jsp,验证结果如下图:
10、修改tomcat节点2的配置参数;
# cd /opt/tomcat2
# cd conf
# vim server.xml
将配置文件中部分内容修改如下:
<Server port="8205" shutdown="SHUTDOWN">
<Connector port="8280" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="192.168.50.138" jvmRoute="tomcat2">
<Host name="192.168.50.138" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 去掉上下的注释符号
在配置文件中加入如下内容:
<Context docBase="/opt/webapps" path="/webapps" reloadable="false"/>
保存退出
11、启动Tomcat节点2的JVM虚拟机;
# cd /opt/tomcat2/bin
# ./startup.sh
12、测试Tomcat节点2已经能够正常工作;
在浏览器中输入:192.168.50.138:8280/webapps/test.jsp,验证结果如下图:
13、修改tomcat节点3的配置参数;
# cd /opt/tomcat3
# cd conf
# vim server.xml
将配置文件中部分内容修改如下:
<Server port="8305" shutdown="SHUTDOWN">
<Connector port="8380" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8309" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="192.168.50.138" jvmRoute="tomcat3">
<Host name="192.168.50.138" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 去掉上下的注释符号
在配置文件中加入如下内容:
<Context docBase="/opt/webapps" path="/webapps" reloadable="false"/>
保存退出
14、启动Tomcat节点3的JVM虚拟机;
# cd /opt/tomcat3/bin
# ./startup.sh
15、测试Tomcat节点3已经能够正常工作;
在浏览器中输入:192.168.50.138:8380/webapps/test.jsp,验证结果如下图:
----->编译Apache httpd、apr、apr-util(我们将apr可移植运行库与httpd一起编译)
1、将下载的应用程序移动到/opt目录下;
# mv apr-1.5.1.tar.gz /opt
# mv apr-util-1.5.4.tar.gz /opt
# mv httpd-2.4.12.tar.gz /opt
2、解压文件;
# tar -xvf httpd-2.4.12.tar.gz
# tar -xvf apr-1.5.1.tar.gz
# tar -xvf apr-util-1.5.4.tar.gz
3、将apr和apr-util源码文件移动到apache源码目录下的srclib目录下;
# mv apr-1.5.1 /opt/httpd-2.4.12/srclib/apr
# mv apr-util-1.5.4 /opt/httpd-2.4.12/srclib/apr-util
4、编译安装apache httpd应用程序;
# cd httpd-2.4.12
# mkdir -p /opt/apache
# ./configure --prefix=/opt/apache --with-included-apr --enable-nonportable-atomics=yes --with-z
# make
# make install
5、启动apache应用程序;
# cd /opt/apache/bin
# ./apachectl start
# ps -ef |grep httpd
6、验证apache已经能够正常工作。
在浏览器中输入:192.168.50.138.确认页面能够正常打开,并且出现“It Works!”说明编译安装成功,验证结果如下所示:
----->编译Tomcat-connectors mod_jk模块
1、将下载的应用程序移动到/opt目录下
# mv tomcat-connectors-1.2.40-src.tar.gz /opt
2、解压文件
# cd /opt
# tar -xvf tomcat-connectors-1.2.40-src.tar.gz
3、编译jk模块
# cd tomcat-connectors-1.2.40-src/native
# ./configure --with-apxs=/opt/apache/bin/apxs
# make
4、将编译好的JK模块移动到/opt/apache/modules模块目录下
# cd apache-2.0/
# mv mod_jk.so /opt/apache/modules/
第三步:配置集群环境
1、验证系统编译的内核模块
[root@T1 apache-2.0]# cd /opt/apache
[root@T1 apache]# cd bin
[root@T1 bin]# ./apachectl -l
Compiled in modules:
core.c
mod_so.c
http_core.c
event.c
2、验证系统中已经加载的内核模块
[root@T1 bin]# ./apachectl -M
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
----->编辑httpd.conf配置文件(由于我们此次试验的目的是做tomcat集群,因此关于apache这里不做过多的配置修改,使用默认的即可,如果使用Apache做静态网页服务器,请参考其他资料进行配置的修改)
# vim /opt/apache/conf/httpd.conf
1、在配置文件中修改如下内容
ServerRoot "/opt/apache"
Include conf/extra/httpd-mpm.conf
# 取消前面的注释符号,mpm模块是配置Apache的主要模块,关于后续如果对Apache进行优化,都需要修改该文件。
2、在配置文件中添加如下内容,加载jk模块,以便能够实现集群的功能
LoadModule jk_module modules/mod_jk.so
Include /opt/apache/conf/mod_jk.conf
----->在/opt/apache/conf目录下创建workers.properties
# touch /opt/apache/conf/workers.properties
# vim /opt/apache/conf/workers.properties
添加如下内容:
workers.java_home=/opt/jdk1.8.0_45
worker.list=controller
#========tomcat1========
worker.tomcat1.port=8109
worker.tomcat1.host=192.168.50.138
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat1.cachesize=10
worker.tomcat1.cache_timeout=600
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300
#========tomcat2========
worker.tomcat2.port=8209
worker.tomcat2.host=192.168.50.138
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat2.cachesize=10
worker.tomcat2.cache_timeout=600
worker.tomcat2.socket_keepalive=1
worker.tomcat2.socket_timeout=300
#========tomcat3========
worker.tomcat3.port=8309
worker.tomcat3.host=192.168.50.138
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=1
worker.tomcat3.cachesize=10
worker.tomcat3.cache_timeout=600
worker.tomcat3.socket_keepalive=1
worker.tomcat3.socket_timeout=300
#=======controller======
worker.controller.type=lb
worker.controller.balance_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=1
----->在/opt/apache/conf目录下创建mod_jk.conf文件
# touch /opt/apache/conf/mod_jk.conf
# vim /opt/apache/conf/mod_jk.conf
添加如下内容:
JKWorkersFile /opt/apache/conf/workers.properties
JkLogFile /opt/apache/logs/mod_jk.log
JkShmFile /opt/apache/logs/jk-runtime-status
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
# Sample JkMounts. Replace these with the paths you would
# like to mount from your JSP server.
# syntax: JkMount ${URL_DIR}/*.jsp worker_name
JkMount /servlet/* controller
JkMount /* controller
创建如下两个日志文件:
# touch /opt/apache/logs/mod_jk.log
# touch /opt/apache/logs/jk-runtime-status
----->重启apache程序(生产中最好将其加入到服务列表中,或者至少降入到PATH变量中)
# cd /opt/apache/bin
# ./apachectl stop
# ./apachectl start
修改test.jsp测试网页,使其可以显示SessionID
# vim /opt/webapps/test.jsp
添加如下内容:
<BR><%
out.println("<br> ID " + session.getId()+"<br>");%>
验证可以通过80端口访问test.jsp页面,其不同的访问来自不同的tomcat节点,观察是否实现了负载均衡,此次试验的地址如下
http://192.168.50.138/webapps/test.jsp
验证结果如下图所示:
如果达不到多用户并发访问的效果,可以是用ab命令+netstat命令,模拟多用户访问,并观察系统端口的连接状态
下图示使用ab命令模仿多用户连接情况下,tcp连接情况,从中我们可以看出,三个tomcat的8109、8209、8309端口上都有连接。
转载于:https://blog.51cto.com/getg8642/1640966
相关文章:

有哪些新手程序员不知道的小技巧?
提到新手程序员,大家想到的第一个词可能就是:刷题。尤其是通过LeetCode刷题,想必新手程序员们都经历过这一步,甚至不少人认为只要在LeetCode上刷的题目够多,就一定能够进阶为大神。但是,不难发现࿰…

cocostudio UI编辑器中UITextField输入框控件光标
http://www.cocoachina.com/bbs/read.php?tid194533

在apache中使用 memcache 来作 session 存储
session.save_handler memcache session.save_path "tcp://127.0.0.1:11211" 使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weigh…

Android WebView访问SSL证书网页(onReceivedSslError)
Android WebView访问https SSL证书网页,如淘宝,需要在onReceivedSslError添加SSL支持 webview.setWebViewClient(new WebViewClient() {Overridepublic void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {// 不要使用su…

改名 Meta,打元宇宙牌,老龄化的 Facebook 能否再换新颜
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 美东时间10月28日周四,在名为 Facebook Connect 的年度大会上,Facebook 宣布,Facebook 将公司名称更改为“Meta”,这个新名字反映了该公司在社交媒体之外…

Android NDK开发之旅31 FFmpeg音频解码
###前言 #####基于Android NDK开发之旅30--FFmpeg视频播放这篇文章,我们已经学会视频解码基本过程。这篇文章就对音频解码进行分析。 #####音频解码和视频解码的套路基本是一样的, 否则怎么会做到音视频同步播放呢? ###1.FFmpeg音视解码过程分…

整理了 65 个 Matplotlib 案例,这能不收藏?
作者|周萝卜来源|萝卜大杂烩Matplotlib 作为 Python 家族当中最为著名的画图工具,基本的操作还是要掌握的,今天就来分享一波文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到的。启用和检查交互模式在…

负载均衡工具haproxy安装,配置,使用
一,什么是haproxy HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运…

【文章】本站收集与转载文章目录
1.关于推荐系统中的特征工程 2.Java程序员最喜欢的11款免费IDE编辑器 3.人工智能和机器学习领域的一些有趣的开源项目 4.微软发布Project Oxford,供Azure户免费集多项功能 5.微软推Azure机器学习工具:Algorithm Cheat Sheet

L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南05(架构解决方案)
nginx的多实例设置首先说一下nginx后面加的参数的说明 -s 后面加reload 就是重新加载的意思和apache的graceful同样的效果 -v 小写的v显示版本号后退出 -V大写的V显示nginx的版本号和配置环境 -t 就是test的意思,检查配置文件是否正确 -c 后面配置文件的地址&#x…

linux中的apachectl是什么命令
apachectl是Apache HTTP服务器的前端程序。其设计意图是帮助管理员控制Apache httpd后台守护进程的功能。apachectl脚本有两种操作模式。首先,作为简单的httpd的前端程序,设置所有必要的环境变量,然后启动httpd ,并传递所有的命令…

数据库性能优化1——正确建立索引以及最左前缀原则
1. 索引建立的原则用于索引的最好的备选数据列是那些出现在WHERE子句、join子句、ORDER BY或GROUP BY子句中的列。仅仅出现在SELECT关键字后面的输出数据列列表中的数据列不是很好的备选列SELECTcol_a <- 不是备选列FROMtbl1 LEFT JOIN tbl2ON tbl1.col_b tbl2.col_c <-…

深度学习发展下的“摩尔困境”,人工智能又将如何破局?
前不久,微软和英伟达推出包含5300亿参数的语言模型MT-NLG,这是一款基于 Transformer 的模型被誉为“世界上最大、最强的生成语言模型”。 毫无疑问,这是一场令人印象深刻的机器学习工程展示。 然而,我们是否应该对这种大型模型趋势…

Kotlin学习笔记-基础语法
去年学习过一遍Kotlin,相比java而言,Kotlin确实有许多方便的地方,但是学习之后一直没有真正拿来写项目,很久不用很多东西都已经忘记了。最近Google宣布Kotlin成为Android开发的官方语言之后,Kotlin突然变得火热起来&am…

英特尔王锐:软硬件并驾齐驱,开发者是真英雄
北京时间10月28日,英特尔On技术创新峰会在北京举办。在此次峰会上,英特尔公司高级副总裁、英特尔中国区董事长王锐对外宣告了英特尔拥抱开发者,回归技术创新的决心和信心。 英特尔此前提出,四大超级技术力量赋能数字化的变革&…

基于html5海贼王单页视差滚动特效
分享一款基于html5海贼王单页视差滚动特效是一款流行滑落网页特效代码。效果图如下: 在线预览 源码下载 实现的代码: <div class"top"><div class"top_main center"><ul id"scene" class"scene&quo…

切换apache的prefork和worker模式
Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。 不同的平台和不同的环境经常产生不同的需求,或是为了达到同样的最佳效果而采用不同的方法。 Apache凭借它的模块化设计很好的适应了大量不同的环境。 这一设计使得网站管理…

使用adb devices命令无法识别夜神模拟器的解决方法
模拟器不喜欢原生态的,喜欢简单好用的,这里用的是夜神模拟器现象夜神模拟器启动成功,此时用adb devices命令查看,居然啥都不显示,也就是没识别出来分析很大可能是因为adb的版本不一致导致的,心中无数个草泥…

Apache的prefork模式和worker模式
prefork模式 这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就…

AI 与小学生的做题之战,孰胜孰败?
现在小学生的数学题不能用简单来形容,有的时候家长拿到题也需要思考半天,看看是否有其他隐含的解题方法。市面上更是各种拍题搜答案的软件,也是一样的套路,隐含着各种氪金的信息。 就像网络上说的“不写作业母慈子孝,一…

AIDL方向指示
2019独角兽企业重金招聘Python工程师标准>>> AIDL使用简单的语法来定义接口, 该接口定义了可供客户端访问的方法和属性,并且描述其方法以及方法的参数和返回值。这些参数和返回值可以是任何类型,甚至是其他AIDL生成的接口。 其中对于Java编程…

Techshack Weekly 第 0002 期
Techshack Weekly 专注于后端技术阅读,目前有上百位订阅者,欢迎加入 Telegram Channel ,或关注推特 techshackweekly,或订阅 RSS! 点击查看本期 本期比较关注的几个领域有:TSDB, 系统设计,推荐的…

像数据分析一样写 Web 页面,这个 Python 库做到了!
作者|刘早起来源|早起Python提起用 Python 写一个 web 页面,总是会想起Django/Flask等这样的大家伙。他们确实好用,但就是流程繁琐,比如有时就想写一个简单的页面,比如问卷调查,拿 Django 来说吧总要经过安装、启动、配…

loadrunner 如何做关联
在页面中为了防止CRSF攻击,每次访问登录页面时,在浏览器器端生成一个token。 在提交时检验这个token是否有效,提交后token自动失效。 如果使用loadrunner来测试此系统话需要做一个关联,把这个token作为一个参数进行提交。 做关联有…

让你的数据离CPU更近一些
让你的数据离CPU更近一些 Jim Gray:RAM是硬盘,硬盘是磁带 永远只做自己最擅长的事情 不是所有的任务都需要同步执行

现在很火的答题赢钱游戏,让我来简单教你怎么做自动答题器
一、前言: 现在最火的直播游戏,那就是答题赢钱直播了,如百万英雄、芝士超人、花椒直播、冲顶大会等等,这些游戏的玩法都很简单,答对12题即可瓜分奖金了。玩法虽然简单,但是要能完全答对12题难度还是挺高的&…

OAuth认证协议原理分析及使用方法
twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了, 这种网站就是这个效果。其实这都是拜 OAuth所赐。 OAuth是什么? OAuth…

一次图文并茂的***完整测试二
任务:某公司授权你对其服务器进行******。对某核心服务器进行***测试,据了解目标机为Windows 2003 Server系统,ip地址为10.1.1.191,在C盘的根目录下存储有两个敏感文件这里就用(key1.txt,key2.txt)表示&…

神经网络学习到的是什么?(Python)
作者|泳鱼来源|算法进阶神经网络(深度学习)学习到的是什么?一个含糊的回答是,学习到的是数据的本质规律。但具体这本质规律究竟是什么呢?要回答这个问题,我们可以从神经网络的原理开始了解。一、 神经网络的…

Spring MVC原理
摘要: Spring MVC工作流程图springMVC工作流程图图一图二开发工具1.Eclipse IDE:采用Maven项目管理,模块化。2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查)…