Nginx反向代理Tomcat,以及Session会话(转)

  原始出处 : http://54276311.blog.51cto.com/9130197/1560433

一:Tomcat及JDK简介 

1.)Tomcat是一个免费的web应用服务器服务器,国内很多大型站点也是采用Tomcat来构建的。Tomcat是apache基金会的一个核心项目,其运行环境需要JDK的支持,Tomcat都是基于某个版本的JDK平台所研发,版本不对称,会导致Tomcat启动失败。

 

2.JDK1996年开发第一个版本,JDK主要组建JVMAppletAWT等。JDK1.1的版本引入了JAR格式,用户打包Java程序代码。还引入了JDBCJava通过驱动去连接数据库。

 

3.Java技术分为了三个方向:J2SE(标准本),J2EE(企业版),J2ME(移动版),J2SE就是Java2的标准版,主要用于桌面程序的软件编程。J2EEJava2的企业版,主要用户分布式网络程序的开发。J2ME主要应用于嵌入式系统开发,例如手机和PDA的编程。

 

4.Java类库:Java是面向对象编程语言,类则是对面向对象中的一种概念,对具有相同属性的事物具有相同属性的概念。类可以被具体化为一个一个的对象。

 

二:JVM简介:

1.JVMSun公司设计java语言的目标是让java程序可以适应于各种平台的计算机上运行,为了实现这个目标,Sun公司提出了java虚拟机机制。

 

2.Java虚拟机是编译和运行Java程序等命令及其运行环境的总称。Java源程序在编译后生存后缀为class的文件,该文件以字节码的方式进行编码。这种字节码实际上是一种伪代码,它包含各种指令,这种指令基本是与平台无关的指令。Java虚拟机在字节码文件的基础上解释这些字节码,以及将这些字节码转换为计算机的语言代码,并交给计算机执行。

 

3.)字节码是一种于平台无关的伪代码,通过Java命令演变成在各种平台上的机器代码,这些伪代码最终是在本地计算机平台是运行的,但Java程序好像是在这些Java命令的基础上运行的,因此这些Java命令的几个好像是如同我们所使用的VM虚拟机或者virtualbox等软件实现的虚拟机。

 

三:Tomcatweb架构应用中的位置以及处理流程图:

 

Nginx反向代理Tomcat,以及Session会话(转)_第1张图片

四.安装JDK及Tomcat: 

1.)安装环境:

操作系统:CentOS6.5 x86_64

JDK版本:jdk-7u9-linux-x64.rpm

Tomcat版本:apache-tomcat-7.0.42.tar.gz

网络地址:tomcatnode1: 192.168.169.128tomcatnode1: 192.168.169.129httpd代理主机:192.168.169.130memcached节点使用http主机的地址。

 

2.)安装JDK,设置Java环境变量:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# rpm -ivhjdk-7u9-linux-x64.rpm 
Preparing...                ########################################### [100%]
    1:jdk                         ###########################################[100%]
  
# rpm -ql jdk | less
/usr/java/jdk1 .7.0_09            #此目录为jdk安装目录
  
# vim/etc/profile.d/java.sh
JAVA_HOME= /usr/java/jdk1 .7.0_09
PATH=$JAVA_HOME /bin :$PATH
export  JAVA_HOME PATH
  
# source/etc/profile.d/java.sh
# java -version
java version "1.7.0_09"
Java(TM) SE RuntimeEnvironment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-BitServer VM (build 23.5-b02, mixed mode)

 

 3.)安装Tomcat

1
2
3
4
# tar xfapache-tomcat-7.0.42.tar.gz -C /usr/local/
# cd /usr/local/
# ln -svapache-tomcat-7.0.42 tomcat
`tomcat ' ->`apache-tomcat-7.0.42'

 

 

4.Tomcat安装后生成的目录:

       bintomcat相关命令存放位置。

       conftomcat配置文件存放位置。

       worktomcat工作目录。

       webapps:项目存放位置。

       temp:临时存放一些数据的目录。

 

5.Tomcat环境变量修改:

1
2
3
4
# vim/etc/profile.d/tomcat.sh
exportCATALINA_HOME= /usr/local/tomcat
exportPATH=$CATALINA_HOME /bin :$PATH
# source/etc/profile.d/tomcat.sh

 

6.)为Tomcat提供SysV脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# vim/etc/init.d/tomcat
#!/bin/bash  
# description: TomcatStart Stop Restart  
# processname: Tomcat 
# chkconfig: 234 20 80 
JAVA_HOME= /usr/java/jdk1 .7.0_09
CATALINA_HOME= /usr/local/tomcat
export  JAVA_HOMECATALINA_HOME
case  $1  in
start)
   exec  $CATALINA_HOME /bin/catalina .sh start ;;
stop)
   exec  $CATALINA_HOME /bin/catalina .sh stop;;
restart)
   $CATALINA_HOME /bin/catalina .sh stop
   sleep  2
   exec  $CATALINA_HOME /bin/catalina .sh start ;;
configtest)
   exec  $CATALINA_HOME /bin/catalina .shconfigtest ;;
- v )
   exec  $CATALINA_HOME /bin/catalina .sh  version.sh;;
*)
   exec  $CATALINA_HOME /bin/catalina .sh * ;;
esac

 

7.)添加Tomcat开启启动:

1
2
3
# chmod +x/etc/init.d/tomcat
# chkconfig --addtomcat
# chkconfig tomcat on

 

8.)查看Tomcat版本信息及JDK信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# service tomcat -v
UsingCATALINA_BASE:    /usr/local/tomcat
UsingCATALINA_HOME:    /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:         /usr/java/jdk1 .7.0_09
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar
Usage: catalina.sh (commands ... )
commands:
   debug             Start Catalina  in  a debugger
   debug -security   Debug Catalina with a security manager
   jpda start        Start Catalina under JPDA debugger
   run               Start Catalina  in  the currentwindow
   run -security     Start  in  the current window with securitymanager
   start             Start Catalina  in  a separatewindow
   start -security   Start  in  a separate window with securitymanager
   stop              Stop Catalina, waiting up to 5seconds  for  the process to end
   stop n            Stop Catalina, waiting up to nseconds  for  the process to end
   stop -force       Stop Catalina, wait up to 5 seconds andthen use  kill  -KILL  if  still running
   stop n -force     Stop Catalina, wait up to n seconds andthen use  kill  -KILL  if  still running
   configtest        Run a basic syntax check on server.xml- check  exit  code  for  result
   version           What version of tomcat are yourunning?
Note: Waiting  for  theprocess to end and use of the -force option require that $CATALINA_PID isdefined

 

8.)启动Tomcat:

1
2
3
4
5
6
# service tomcat start
UsingCATALINA_BASE:    /usr/local/tomcat
UsingCATALINA_HOME:    /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:         /usr/java/jdk1 .7.0_09
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar

 

9.)检查Tomcat端口:

1
2
3
4
5
6
7
# ss -tnl
State      Recv-Q Send-Q                                   LocalAddress:Port                                     PeerAddress:Port 
LISTEN     0     100                                                :::8080                                              :::*     
LISTEN     0     128                                                :::22                                                :::*     
LISTEN     0     128                                                 *:22                                                 *:*     
LISTEN     0     100                                               ::1:25                                                :::*     
LISTEN     0     100                                         127.0.0.1:25                                                 *:

 

10.)访问测试:

Nginx反向代理Tomcat,以及Session会话(转)_第2张图片

 

11.)隐藏Tomcat版本信息:

当输入一个不存在的页面或者文件时,会显示当前Tomcat的版本信息,如果出现漏洞并且没有第一时间修复,很可能被利用。

Nginx反向代理Tomcat,以及Session会话(转)_第3张图片

1
2
3
4
5
6
# cd/usr/local/tomcat/lib/
# jar xf catalina.jar
# vimorg/apache/catalina/util/ServerInfo.properties
server.info=ApacheTomcat
server.number=www.stu32.com
server.built=Jul 2 201308:57:41

 

Nginx反向代理Tomcat,以及Session会话(转)_第4张图片

五.Tomcat配置文件:

1.server.xml:主配置文件。

2.context.xml:上下文,为部署每个webapp的默认配置文件。

3.web.xml:部署描述符文件,为所有部署当前tomcat实例上所有的webapp提供默认的部署描述符。

4.users.xml:为jsp页面提供访问权限的文件。

5.catalina.policy:当基于-security选项启动tomcat实例时会读取此配置文件。

6.catalina.propertiesJava属性定义的文件,用于设定类加载器路径,以及安全包列表,和一些调整性能的相关参数的信息。

 

六.Tomcat负载均衡:

1.)如开始介绍安装环境时写的网络地址,分为node1,node2节点以及nginx代理服务器,上面安装好的就为node1节点,现在开始配置node2节点,node2节点与node1节点配置一致。

Nginx反向代理Tomcat,以及Session会话(转)_第5张图片

 

2.)编译安装Nginx:

编译过程参考前面的nginx初级使用部分。

Nginx反向代理Tomcat,以及Session会话(转)_第6张图片

3.)修改nginx配置文件,使其能够代理Tomcat node1,node2节点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# vim/etc/nginx/nginx.conf
http{
     client_max_body_size 300m;
     client_body_buffer_size 600;
     proxy_read_timeout 600;
     proxy_send_timeout 600;
     proxy_buffer_size 16k;
     proxy_buffers 4 42k;
     proxy_busy_buffers_size 64k;
     proxy_temp_file_write_size 64k;
     upstream jsp_server {
         server 192.168.169.128:8080 weight=1max_fails=2 fail_timeout=30s;
         server 192.168.169.129:8080 weight=1max_fails=2 fail_timeout=30s;
}
server{
        location ~ .*.jsp$  {
         index index.jsp;
         proxy_passhttp: //jsp_server ;
         proxy_set_header X-Real-IP$remote_addr;
       }

 

分别在http段落定义upsream,server段调用jsp_server。

 

4.)定义jsp页面的测试页:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# cd/usr/local/tomcat/webapps/
# mkdir -pvsession/WEB-INF/{classes,lib}
# cd session
  
# vim index.jsp
<%@ pagelanguage= "java"  %>
   < head >Tomcat Sessionnode2<</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/title</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/head</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number9 index8 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">  </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><body></code> </div> <div class="line number10 index9 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">    </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><h1><fontcolor=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"red"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">>Session.node2.com<</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/font</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/h1</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number11 index10 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">    </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><tableborder=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"1"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number12 index11 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">      </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash functions" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#ff1493;background:none;">tr</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number13 index12 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><td>Session ID<</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/td</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number14 index13 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">    </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><%session.setAttribute(</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"node1.com"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">,</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"node2.com"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">); %></code> </div> <div class="line number15 index14 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><td><%= session.getId()%><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/td</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number16 index15 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">      </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/tr</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number17 index16 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">      </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash functions" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#ff1493;background:none;">tr</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number18 index17 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><td>Created on<</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/td</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number19 index18 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><td><%=session.getCreationTime() %><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/td</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number20 index19 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">     </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/tr</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number21 index20 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">    </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/table</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number22 index21 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">  </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/body</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number23 index22 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/html</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> </div> </td> </tr> </tbody> </table> </div> </div> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;">此处配置的是node2<span style="font-family:'宋体';">节点,</span><span style="font-family:Arial, sans-serif;">node1</span><span style="font-family:'宋体';">节点相同配置,为了测试,需要修改</span><span style="font-family:Arial, sans-serif;">title</span><span style="font-family:'宋体';">部分为</span><span style="font-family:Arial, sans-serif;">node1</span><span style="font-family:'宋体';">。</span></span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-size:16px;font-family:Arial, sans-serif;"> </span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;font-size:16px;">5.)启动nginx,测试反向代理</span><span style="font-size:16px;font-family:'宋体';">:</span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><a href="http://img.e-com-net.com/image/info8/258f082d7a4043d9a9460df93d46b4e0.jpg" target="_blank"><img style="vertical-align:top;border-style:none;;border:1px solid black;" title="反向代理node1.jpg" src="http://img.e-com-net.com/image/info8/258f082d7a4043d9a9460df93d46b4e0.jpg" alt="Nginx反向代理Tomcat,以及Session会话(转)_第7张图片" width="650" height="159"></a></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><a href="http://img.e-com-net.com/image/info8/585cf77eac2a4274b7b9edbff973ab85.jpg" target="_blank"><img style="vertical-align:top;border-style:none;;border:1px solid black;" title="反响代理Node2.jpg" src="http://img.e-com-net.com/image/info8/585cf77eac2a4274b7b9edbff973ab85.jpg" alt="Nginx反向代理Tomcat,以及Session会话(转)_第8张图片" width="650" height="153"></a></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-size:16px;font-family:'宋体';">代理部分基本配置已经完成。</span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-size:16px;font-family:Arial, sans-serif;"> </span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;font-size:16px;">七.基于Memcached构建MemcachedSession Manager Session会话服务器。</span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;"><span style="font-family:Arial, sans-serif;font-size:16px;">1.</span><span style="font-family:'宋体';font-size:16px;">)</span><span style="font-family:Arial, sans-serif;font-size:16px;">Session</span><span style="font-family:'宋体';font-size:16px;">简介:</span><span style="font-family:Arial, sans-serif;font-size:16px;">Session</span><span style="font-family:'宋体';font-size:16px;">对象的引入是为了弥补</span><span style="font-family:Arial, sans-serif;font-size:16px;">HTTP</span><span style="font-family:'宋体';font-size:16px;">协议的不足,</span><span style="font-family:Arial, sans-serif;font-size:16px;">HTTP</span><span style="font-family:'宋体';font-size:16px;">协议是无状态协议。</span><span style="font-family:Arial, sans-serif;font-size:16px;">Session</span><span style="font-family:'宋体';font-size:16px;">是代表服务器于客户端之间的会话。</span><span style="font-family:Arial, sans-serif;font-size:16px;">Session</span><span style="font-family:'宋体';font-size:16px;">的作用时间是用户到达某个特定的</span><span style="font-family:Arial, sans-serif;font-size:16px;">Web</span><span style="font-family:'宋体';font-size:16px;">页面开始,直到用户离开</span><span style="font-family:Arial, sans-serif;font-size:16px;">Web</span><span style="font-family:'宋体';font-size:16px;">站点,或者程序中利用代码终止了</span><span style="font-family:Arial, sans-serif;font-size:16px;">Session</span><span style="font-family:'宋体';font-size:16px;">结束。引用</span><span style="font-family:Arial, sans-serif;font-size:16px;">Session</span><span style="font-family:'宋体';font-size:16px;">可以让用户访问多个页面之间的切换也会保留该用户的信息。最简单的理解就是我们去网上购物的时候,已经添加到购物车,(前端为反向代理服务器)当我们需要付款的时候,就会跳到另外一个新的页面,那么我们所下的订单也会停留在上一个页面或者找不到了。</span></span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-size:16px;font-family:arial, helvetica, sans-serif;"> </span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;"><span style="font-family:Arial, sans-serif;font-size:16px;">2.</span><span style="font-family:'宋体';font-size:16px;">)</span><span style="font-family:Arial, sans-serif;font-size:16px;">Memcached</span><span style="font-family:'宋体';font-size:16px;">简介:</span><span style="font-family:Arial, sans-serif;font-size:16px;">Memcached</span><span style="font-family:'宋体';font-size:16px;">是一款高性能分布式内存缓存系统,用户动态</span><span style="font-family:Arial, sans-serif;font-size:16px;">web</span><span style="font-family:'宋体';font-size:16px;">应用减轻数据库压力。架构中的位置处于应用服务器于数据库中间,当用户第一次请求数据的时候,会经由数据库反回数据并且缓存到</span><span style="font-family:Arial, sans-serif;font-size:16px;">Memcached</span><span style="font-family:'宋体';font-size:16px;">内存中,第二次访问的时候,就直接在</span><span style="font-family:Arial, sans-serif;font-size:16px;">Memcached</span><span style="font-family:'宋体';font-size:16px;">内存中读取数据,从而提高动态,数据库访问速度。</span><span style="font-family:Arial, sans-serif;font-size:16px;">Memcached</span><span style="font-family:'宋体';font-size:16px;">是基于存储键</span><span style="font-family:Arial, sans-serif;font-size:16px;">/</span><span style="font-family:'宋体';font-size:16px;">值对的</span><span style="font-family:Arial, sans-serif;font-size:16px;">hashmap</span><span style="font-family:'宋体';font-size:16px;">,其守护进程为</span><span style="font-family:Arial, sans-serif;font-size:16px;">Domain</span><span style="font-family:'宋体';font-size:16px;">,其客户端也就是应用服务器,可以是</span><span style="font-family:Arial, sans-serif;font-size:16px;">php,jsp</span><span style="font-family:'宋体';font-size:16px;">等语言。</span></span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-size:16px;font-family:Arial, sans-serif;"> </span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-size:16px;font-family:Arial, sans-serif;">3.</span><span style="font-size:16px;font-family:'宋体';">)</span><span style="font-size:16px;font-family:Arial, sans-serif;">Session</span><span style="font-size:16px;font-family:'宋体';">工作流程图:</span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><a href="http://img.e-com-net.com/image/info8/5a9063304e1d4cbfb3734474c8e35ce3.jpg" target="_blank"><img style="vertical-align:top;border-style:none;;border:1px solid black;" title="Session会话图.jpg" src="http://img.e-com-net.com/image/info8/5a9063304e1d4cbfb3734474c8e35ce3.jpg" alt="Nginx反向代理Tomcat,以及Session会话(转)_第9张图片" width="650" height="281"></a></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;font-size:16px;">4.)下载Session所需要的jar包:</span></p> <div style="color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> <div id="highlighter_894989" class="syntaxhighlighter bash" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;background-image:none;"> <table style="font-size:12px;border-collapse:collapse;" border="0"> <tbody style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <tr style="font-size:1em;border:0px;line-height:1.1em;vertical-align:baseline;background:none;"> <td class="gutter" style="border:0px;line-height:1.1em;vertical-align:baseline;color:#afafaf;background:none;"> <div class="line number1 index0 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 1 </div> <div class="line number2 index1 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 2 </div> <div class="line number3 index2 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 3 </div> <div class="line number4 index3 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 4 </div> </td> <td class="code" style="width:692px;line-height:1.1em;border:0px;vertical-align:baseline;background:none;"> <div style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <div class="line number1 index0 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash comments" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#008200;background:none;"># ls</code> </div> <div class="line number2 index1 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">javolution-5.5.1.jar                memcached-session-manager-tc7-1.8.2.jar spymemcached-2.10.2.jar</code> </div> <div class="line number3 index2 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">memcached-session-manager-1.8.2.jar  msm-javolution-serializer-1.8.2.jar</code> </div> <div class="line number4 index3 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash functions" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#ff1493;background:none;">cp</code>  <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">*</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/usr/local/tomcat/lib/</code> </div> </div> </td> </tr> </tbody> </table> </div> </div> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> </p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;"><span style="font-size:16px;"> </span>5.)将<span style="font-family:Arial, sans-serif;">jar</span><span style="font-family:'宋体';">包复制到</span><span style="font-family:Arial, sans-serif;">node2</span><span style="font-family:'宋体';">节点:</span></span></p> <div style="color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> <div id="highlighter_546009" class="syntaxhighlighter bash" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;background-image:none;"> <table style="font-size:12px;border-collapse:collapse;" border="0"> <tbody style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <tr style="font-size:1em;border:0px;line-height:1.1em;vertical-align:baseline;background:none;"> <td class="gutter" style="border:0px;line-height:1.1em;vertical-align:baseline;color:#afafaf;background:none;"> <div class="line number1 index0 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 1 </div> </td> <td class="code" style="width:692px;line-height:1.1em;border:0px;vertical-align:baseline;background:none;"> <div style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <div class="line number1 index0 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash functions" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#ff1493;background:none;">scp</code>  <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">*192.168.169.129:</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/usr/local/tomcat/lib/</code> </div> </div> </td> </tr> </tbody> </table> </div> </div> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> </p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;">6.)修改<span style="font-family:Arial, sans-serif;">server.xml</span><span style="font-family:'宋体';">,在</span><span style="font-family:Arial, sans-serif;">host</span><span style="font-family:'宋体';">上定义一个用于测试的</span><span style="font-family:Arial, sans-serif;">context</span><span style="font-family:'宋体';">容器,并在其中创建一个会话管理器:</span></span></p> <div style="color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> <div id="highlighter_720866" class="syntaxhighlighter bash" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;background-image:none;"> <table style="font-size:12px;border-collapse:collapse;" border="0"> <tbody style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <tr style="font-size:1em;border:0px;line-height:1.1em;vertical-align:baseline;background:none;"> <td class="gutter" style="border:0px;line-height:1.1em;vertical-align:baseline;color:#afafaf;background:none;"> <div class="line number1 index0 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 1 </div> <div class="line number2 index1 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 2 </div> <div class="line number3 index2 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 3 </div> <div class="line number4 index3 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 4 </div> <div class="line number5 index4 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 5 </div> <div class="line number6 index5 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 6 </div> <div class="line number7 index6 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 7 </div> </td> <td class="code" style="line-height:1.1em;border:0px;vertical-align:baseline;background:none;"> <div style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <div class="line number1 index0 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash comments" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#008200;background:none;"># vim/usr/local/tomcat/conf/server.xml</code> </div> <div class="line number2 index1 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">      </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><Context path=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"/session"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">docBase=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"/usr/local/tomcat/webapps/session"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> <div class="line number3 index2 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">         </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><ManagerclassName=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"de.javakaffee.web.msm.MemcachedBackupSessionManager"</code> </div> <div class="line number4 index3 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">memcachedNodes=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"n1:192.168.169.130:11211"</code> </div> <div class="line number5 index4 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">requestUriIgnorePattern=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">".*\.(ico|png|gif|jpg|css|js)$"</code>      </div> <div class="line number6 index5 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">        </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">transcoderFactoryClass=</code> <code class="bash string" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#0000FF;background:none;">"de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/></code> </div> <div class="line number7 index6 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash spaces" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">       </code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;"><</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">/Context</code> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">></code> </div> </div> </td> </tr> </tbody> </table> </div> </div> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:Arial, sans-serif;"> </span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;">7.)重启Tomcat,并修改node2节点的server.xml,和node1节点保持一致。<br></span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;"><span style="font-family:Arial, sans-serif;font-size:16px;">8.</span><span style="font-family:'宋体';font-size:16px;">)安装</span><span style="font-family:Arial, sans-serif;font-size:16px;">memcached</span><span style="font-family:'宋体';font-size:16px;">,可以使用源码包,也可以使用</span><span style="font-family:Arial, sans-serif;font-size:16px;">rpm</span><span style="font-family:'宋体';font-size:16px;">包,去</span><span style="font-family:Arial, sans-serif;font-size:16px;">memcached</span><span style="font-family:'宋体';font-size:16px;">站点下载,需要注意的是所依赖的</span><span style="font-family:Arial, sans-serif;font-size:16px;">libevent</span><span style="font-family:'宋体';font-size:16px;">。我这边就是使用</span><span style="font-family:Arial, sans-serif;font-size:16px;">yum</span><span style="font-family:'宋体';font-size:16px;">安装的了。</span></span></p> <div style="color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> <div id="highlighter_178722" class="syntaxhighlighter bash" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;background-image:none;"> <table style="font-size:12px;border-collapse:collapse;" border="0"> <tbody style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <tr style="font-size:1em;border:0px;line-height:1.1em;vertical-align:baseline;background:none;"> <td class="gutter" style="border:0px;line-height:1.1em;vertical-align:baseline;color:#afafaf;background:none;"> <div class="line number1 index0 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 1 </div> <div class="line number2 index1 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 2 </div> <div class="line number3 index2 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 3 </div> <div class="line number4 index3 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 4 </div> <div class="line number5 index4 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 5 </div> <div class="line number6 index5 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 6 </div> <div class="line number7 index6 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 7 </div> <div class="line number8 index7 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 8 </div> <div class="line number9 index8 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 9 </div> <div class="line number10 index9 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 10 </div> <div class="line number11 index10 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 11 </div> <div class="line number12 index11 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 12 </div> <div class="line number13 index12 alt2" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 13 </div> <div class="line number14 index13 alt1" style="border-width:0px 3px 0px 0px;border-right-style:solid;border-right-color:#6ce26c;line-height:1.1em;text-align:right;vertical-align:baseline;font-size:1em;background-image:none;"> 14 </div> </td> <td class="code" style="line-height:1.1em;border:0px;vertical-align:baseline;background:none;"> <div style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background:none;"> <div class="line number1 index0 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash comments" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#008200;background:none;"># yum –y installmemcached</code> </div> <div class="line number2 index1 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash comments" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#008200;background:none;"># service memcachedstart</code> </div> <div class="line number3 index2 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash comments" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;color:#008200;background:none;"># ss -tunl</code> </div> <div class="line number4 index3 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">Netid  State     Recv-Q Send-Q                                Local Address:Port                                  PeerAddress:Port </code> </div> <div class="line number5 index4 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">udp    UNCONN    0      0                                                *:68                                              *:*     </code> </div> <div class="line number6 index5 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">udp    UNCONN    0      0                                                 *:11211                                           *:*     </code> </div> <div class="line number7 index6 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">udp    UNCONN    0      0                                               :::11211                                          :::*     </code> </div> <div class="line number8 index7 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      128                                              :::11211                                          :::*     </code> </div> <div class="line number9 index8 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      128                                              *:11211                                           *:*     </code> </div> <div class="line number10 index9 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      128                                               *:80                                              *:*     </code> </div> <div class="line number11 index10 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      128                                             :::22                                             :::*     </code> </div> <div class="line number12 index11 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      128                                              *:22                                              *:*     </code> </div> <div class="line number13 index12 alt2" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      100                                            ::1:25                                              :::*    </code> </div> <div class="line number14 index13 alt1" style="border:0px;line-height:1.1em;vertical-align:baseline;font-size:1em;background-image:none;"> <code class="bash plain" style="border:0px;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;background:none;">tcp    LISTEN    0      100                                      127.0.0.1:25                                              *:*</code> </div> </div> </td> </tr> </tbody> </table> </div> </div> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"> </p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;"><span style="font-size:16px;"> </span>9.)访问测试:</span></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><a href="http://img.e-com-net.com/image/info8/eb157a77bb17422fb7f2de21513902b4.jpg" target="_blank"><img style="vertical-align:top;border-style:none;;border:1px solid black;" title="Session node1.jpg" src="http://img.e-com-net.com/image/info8/eb157a77bb17422fb7f2de21513902b4.jpg" alt="Nginx反向代理Tomcat,以及Session会话(转)_第10张图片" width="650" height="184"></a></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><a href="http://img.e-com-net.com/image/info8/3823eeae740f46faaa752286e54c0cfe.jpg" target="_blank"><img style="vertical-align:top;border-style:none;;border:1px solid black;" title="Session node2.jpg" src="http://img.e-com-net.com/image/info8/3823eeae740f46faaa752286e54c0cfe.jpg" alt="Nginx反向代理Tomcat,以及Session会话(转)_第11张图片" width="650" height="182"></a></p> <p style="clear:both;color:#505050;font-family:'宋体', 'Arial Narrow', arial, serif;"><span style="font-family:arial, helvetica, sans-serif;"><span style="font-size:16px;">测试得到的结果是网页的内容发生了变化,但是可以看到</span><span style="font-size:16px;">Session ID </span><span style="font-size:16px;">一直没有变化。</span></span></p> <p><span style="font-family:arial, helvetica, sans-serif;"><span style="font-size:16px;"> </span></span></p> </div> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1174854123221213184"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Nginx反向代理Tomcat,以及Session会话(转))</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835511911769272320.htm" title="C语言如何定义宏函数?" target="_blank">C语言如何定义宏函数?</a> <span class="text-muted">小九格物</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>在C语言中,宏函数是通过预处理器定义的,它在编译之前替换代码中的宏调用。宏函数可以模拟函数的行为,但它们不是真正的函数,因为它们在编译时不会进行类型检查,也不会分配存储空间。宏函数的定义通常使用#define指令,后面跟着宏的名称和参数列表,以及宏展开后的代码。宏函数的定义方式:1.基本宏函数:这是最简单的宏函数形式,它直接定义一个表达式。#defineSQUARE(x)((x)*(x))2.带参</div> </li> <li><a href="/article/1835509769822105600.htm" title="LocalDateTime 转 String" target="_blank">LocalDateTime 转 String</a> <span class="text-muted">igotyback</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;publicclassMain{publicstaticvoidmain(String[]args){//获取当前时间LocalDateTimenow=LocalDateTime.now();//定义日期格式化器DateTimeFormatterformat</div> </li> <li><a href="/article/1835507248395284480.htm" title="【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数" target="_blank">【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数</a> <span class="text-muted">广龙宇</span> <a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%B5%B7%E5%AD%A6Rust/1.htm">一起学Rust</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Rust%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">Rust设计模式</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用借用类型作为参数二、格式化拼接字符串三、使用构造函数总结前言Rust不是传统的面向对象编程语言,它的所有特性,使其独一无二。因此,学习特定于Rust的设计模式是必要的。本系列文章为作者学习《Rust设计模式》的学习笔记以及自己的见解。因此,本系列文章的结构也与此书的结构相同(后续可能会调成结构),基本上分为三个部分</div> </li> <li><a href="/article/1835506869838376960.htm" title="Python数据分析与可视化实战指南" target="_blank">Python数据分析与可视化实战指南</a> <span class="text-muted">William数据分析</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE/1.htm">数据</a> <div>在数据驱动的时代,Python因其简洁的语法、强大的库生态系统以及活跃的社区,成为了数据分析与可视化的首选语言。本文将通过一个详细的案例,带领大家学习如何使用Python进行数据分析,并通过可视化来直观呈现分析结果。一、环境准备1.1安装必要库在开始数据分析和可视化之前,我们需要安装一些常用的库。主要包括pandas、numpy、matplotlib和seaborn等。这些库分别用于数据处理、数学</div> </li> <li><a href="/article/1835505226933694464.htm" title="Pyecharts数据可视化大屏:打造沉浸式数据分析体验" target="_blank">Pyecharts数据可视化大屏:打造沉浸式数据分析体验</a> <span class="text-muted">我的运维人生</span> <a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%BC%80%E5%8F%91/1.htm">运维开发</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E5%85%B1%E4%BA%AB/1.htm">技术共享</a> <div>Pyecharts数据可视化大屏:打造沉浸式数据分析体验在当今这个数据驱动的时代,如何将海量数据以直观、生动的方式展现出来,成为了数据分析师和企业决策者关注的焦点。Pyecharts,作为一款基于Python的开源数据可视化库,凭借其丰富的图表类型、灵活的配置选项以及高度的定制化能力,成为了构建数据可视化大屏的理想选择。本文将深入探讨如何利用Pyecharts打造数据可视化大屏,并通过实际代码案例</div> </li> <li><a href="/article/1835504819209596928.htm" title="怎么起诉借钱不还的人?怎样起诉欠款不还的人?" target="_blank">怎么起诉借钱不还的人?怎样起诉欠款不还的人?</a> <span class="text-muted">影子爱学习</span> <div>怎么起诉借钱不还的人?怎样起诉欠款不还的人?如果遇到难以解决的法律问题,我们可以匹配专业律师。例如:婚姻家庭(离婚纠纷)、刑事辩护、合同纠纷、债权债务、房产(继承)纠纷、交通事故、劳动争议、人身损害、公司相关法律事务(法律顾问)等咨询推荐手机/微信:15633770876【全国案件皆可】借钱不还起诉对方需要哪些资料起诉欠钱不还的,一般需要的材料包括以下这些:借据、收据、欠条、付款凭证等证据,以及向</div> </li> <li><a href="/article/1835504564879585280.htm" title="直抒《紫罗兰永恒花园外传》" target="_blank">直抒《紫罗兰永恒花园外传》</a> <span class="text-muted">雷姆的黑色童话</span> <div>没看过《紫罗兰永恒花园》的我莫名的看完了《紫罗兰永恒花园外传》,又莫名的被故事中的姐妹之情狠狠地感动了的一把。感动何在:困苦中相依为命的姐妹二人被迫分离,用一个人的自由换取另一个人的幸福。之后,虽相隔不知几许依旧心心念念彼此牵挂。这种深深的姐妹情谊就是令我为之动容的所在。贝拉和泰勒分别影片开始,海天之间一个孩童凭栏眺望,手中拿着折旧的信纸。镜头一转,挑灯伏案的薇尔莉特正在打字机前奋笔疾书。这些片段</div> </li> <li><a href="/article/1835502578050363392.htm" title="PHP环境搭建详细教程" target="_blank">PHP环境搭建详细教程</a> <span class="text-muted">好看资源平台</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>PHP是一个流行的服务器端脚本语言,广泛用于Web开发。为了使PHP能够在本地或服务器上运行,我们需要搭建一个合适的PHP环境。本教程将结合最新资料,介绍在不同操作系统上搭建PHP开发环境的多种方法,包括Windows、macOS和Linux系统的安装步骤,以及本地和Docker环境的配置。1.PHP环境搭建概述PHP环境的搭建主要分为以下几类:集成开发环境:例如XAMPP、WAMP、MAMP,这</div> </li> <li><a href="/article/1835501774031646720.htm" title="18-115 一切思考不能有效转化为行动,都TM是扯淡!" target="_blank">18-115 一切思考不能有效转化为行动,都TM是扯淡!</a> <span class="text-muted">成长时间线</span> <div>7月25号写了一篇关于为什么会断更如此严重的反思,然而,之后日更仅仅维持了一周,又出现了这次更严重的现象。从8月2号到昨天8月6号,5天!又是5天没有更文!虽然这次断更时间和上次一样,那为什么说这次更严重?因为上次之后就分析了问题的原因,以及应该如何解决,按理说应该会好转,然而,没过几天严重断更的现象再次出现,想想,经过反思,问题依然没有解决与改变,这让我有些担忧。到底是哪里出了问题,难道我就真的</div> </li> <li><a href="/article/1835500751997202432.htm" title="直返最高等级与直返APP:无需邀请码的返利新体验" target="_blank">直返最高等级与直返APP:无需邀请码的返利新体验</a> <span class="text-muted">古楼</span> <div>随着互联网的普及和电商的兴起,直返模式逐渐成为一种流行的商业模式。在这种模式下,消费者通过购买产品或服务,获得一定的返利,并可以分享给更多的人。其中,直返最高等级和直返APP是直返模式中的重要概念和工具。本文将详细介绍直返最高等级的概念、直返APP的使用以及与邀请码的关系。【高省】APP(高佣金领导者)是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几百万篇报道,运行三年,稳定可靠。高省APP,</div> </li> <li><a href="/article/1835497792265613312.htm" title="【加密社】Solidity 中的事件机制及其应用" target="_blank">【加密社】Solidity 中的事件机制及其应用</a> <span class="text-muted">加密社</span> <a class="tag" taget="_blank" href="/search/%E9%97%B2%E4%BE%83/1.htm">闲侃</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/1.htm">智能合约</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a> <div>加密社引言在Solidity合约开发过程中,事件(Events)是一种非常重要的机制。它们不仅能够让开发者记录智能合约的重要状态变更,还能够让外部系统(如前端应用)监听这些状态的变化。本文将详细介绍Solidity中的事件机制以及如何利用不同的手段来触发、监听和获取这些事件。事件存储的地方当我们在Solidity合约中使用emit关键字触发事件时,该事件会被记录在区块链的交易收据中。具体而言,事件</div> </li> <li><a href="/article/1835494762388484096.htm" title="【目标检测数据集】卡车数据集1073张VOC+YOLO格式" target="_blank">【目标检测数据集】卡车数据集1073张VOC+YOLO格式</a> <span class="text-muted">熬夜写代码的平头哥∰</span> <a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1073标注数量(xml文件个数):1073标注数量(txt文件个数):1073标注类别数:1标注类别名称:["truck"]每个类别标注的框数:truck框数=1120总框数:1120使用标注工具:labelImg标注</div> </li> <li><a href="/article/1835493269233037312.htm" title="走向以教育叙事为载体的教育叙事研究" target="_blank">走向以教育叙事为载体的教育叙事研究</a> <span class="text-muted">666小飞鱼</span> <div>今天我读了吴松超老师的《给教师的68条建写作建议》中的第23条《如何通过教育叙事走向研究》,吴老师在文中与我们分享了一个德育案例,这是一个反面的案例,意在告知我们在处理问题时,不能就考虑的点太窄,思考要全面。走向教育叙事研究,教师要有敏锐的“感知力”,这个感知力来自于背后专业知识的支撑,思维能力以及广阔的视野和见识等。所以对于同一件事处理方法不同,这个就是教师背后“敏锐力”的不同造成的,也就是说是</div> </li> <li><a href="/article/1835492742713667584.htm" title="钢筋长度超限检测检数据集VOC+YOLO格式215张1类别" target="_blank">钢筋长度超限检测检数据集VOC+YOLO格式215张1类别</a> <span class="text-muted">futureflsl</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E9%9B%86/1.htm">数据集</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):215标注数量(xml文件个数):215标注数量(txt文件个数):215标注类别数:1标注类别名称:["iron"]每个类别标注的框数:iron框数=215总框数:215使用标注工具:labelImg标注规则:对类别进</div> </li> <li><a href="/article/1835491353451130880.htm" title="【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)" target="_blank">【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)</a> <span class="text-muted">算法大师</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选**1.Python中的`with`**用途和功能自动资源管理示例:文件操作上下文管理协议示例代码工作流程解析优点2.\_\_new\_\_和**\_\_init\_\_**区别__new____init__区别总结3.**切片(Slicing)操作**基本切片语法</div> </li> <li><a href="/article/1835491354004779008.htm" title="【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)" target="_blank">【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)</a> <span class="text-muted">算法大师</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.黑盒测试和白盒测试的区别2.假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内。问你怎么提取测试点。功能测试性能测试安全性测试可用性测试跨平台兼容性测试网络环境测试3.接口测试的工具你了解哪些</div> </li> <li><a href="/article/1835489438243844096.htm" title="Low Power概念介绍-Voltage Area" target="_blank">Low Power概念介绍-Voltage Area</a> <span class="text-muted">飞奔的大虎</span> <div>随着智能手机,以及物联网的普及,芯片功耗的问题最近几年得到了越来越多的重视。为了实现集成电路的低功耗设计目标,我们需要在系统设计阶段就采用低功耗设计的方案。而且,随着设计流程的逐步推进,到了芯片后端设计阶段,降低芯片功耗的方法已经很少了,节省的功耗百分比也不断下降。芯片的功耗主要由静态功耗(staticleakagepower)和动态功耗(dynamicpower)构成。静态功耗主要是指电路处于等</div> </li> <li><a href="/article/1835489208152715264.htm" title="Rust基础知识" target="_blank">Rust基础知识</a> <span class="text-muted">GRKF15</span> <a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>1.Rust语言简介1.1基础语法变量声明:let关键字用于声明变量,可以指定或不指定类型,如leta=10;和letmutc=30i32;。函数定义:使用fn关键字定义函数,并指定参数类型及返回类型,如fnadd(i:i32,j:i32)->i32{i+j}。控制流:包括if、else等,控制语句后需要使用;来结束语句。1.2数据类型整数类型:i8、i16、i32、i64、i128,以及无符号的</div> </li> <li><a href="/article/1835488702881689600.htm" title="Faiss:高效相似性搜索与聚类的利器" target="_blank">Faiss:高效相似性搜索与聚类的利器</a> <span class="text-muted">网络·魚</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/faiss/1.htm">faiss</a> <div>Faiss是一个针对大规模向量集合的相似性搜索库,由FacebookAIResearch开发。它提供了一系列高效的算法和数据结构,用于加速向量之间的相似性搜索,特别是在大规模数据集上。本文将介绍Faiss的原理、核心功能以及如何在实际项目中使用它。Faiss原理:近似最近邻搜索:Faiss的核心功能之一是近似最近邻搜索,它能够高效地在大规模数据集中找到与给定查询向量最相似的向量。这种搜索是近似的,</div> </li> <li><a href="/article/1835484420023349248.htm" title="18、架构-可观测性之聚合度量" target="_blank">18、架构-可观测性之聚合度量</a> <span class="text-muted">大树~~</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>聚合度量聚合度量是指对系统运行时产生的各种指标数据进行收集、聚合和分析,以了解系统的健康状况和性能表现。聚合度量是可观测性的关键组成部分,通过对度量数据的分析,可以及时发现系统中的异常和瓶颈。以下是对聚合度量各个方面的详细解析,并结合具体的数据案例和技术支撑。指标收集收集系统运行时产生的各种指标数据是聚合度量的基础。常见的指标包括CPU使用率、内存使用率、请求处理时间、请求数、错误率等。以下是指标</div> </li> <li><a href="/article/1835483915071090688.htm" title="【华为OD技术面试真题 - 技术面】- python八股文真题题库(1)" target="_blank">【华为OD技术面试真题 - 技术面】- python八股文真题题库(1)</a> <span class="text-muted">算法大师</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.数据预处理流程数据预处理的主要步骤工具和库2.介绍线性回归、逻辑回归模型线性回归(LinearRegression)模型形式:关键点:逻辑回归(LogisticRegression)模型形式:关键点:参数估计与评估:3.python浅拷贝及深拷贝浅拷贝(Shal</div> </li> <li><a href="/article/1835481396408315904.htm" title="如何选择最适合你的项目研发管理软件?TAPD卓越版全面解析" target="_blank">如何选择最适合你的项目研发管理软件?TAPD卓越版全面解析</a> <span class="text-muted">北京云巴巴信息技术有限公司</span> <a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a><a class="tag" taget="_blank" href="/search/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/1.htm">需求分析</a> <div>在当今快速发展的科技时代,项目研发管理软件已成为企业不可或缺的重要工具。面对市场上琳琅满目的产品,如何选择一款适合自己团队的项目研发管理软件呢?本文将围绕项目研发管理软件的选择标准,重点介绍TAPD卓越版的特点、优势以及使用体验,让你更好地理解和选择适合自己的项目研发管理软件。项目研发管理软件的选择标准在选择项目研发管理软件时,我们需要考虑以下几个方面的因素:功能全面性:软件是否覆盖了从需求管理、</div> </li> <li><a href="/article/1835481316326469632.htm" title="舜公郑金锋书辛丑自剪扇面书法作品(四O六)" target="_blank">舜公郑金锋书辛丑自剪扇面书法作品(四O六)</a> <span class="text-muted">舜公郑金锋</span> <div>辛丑小阳春,新自剪扇面400品,大多为各色撒金、撒银、描金、描银、水印、彩绘、荧光等亚粉、色宣纸,以及域外包装填充纸等;王一品长锋羊毫秃笔;一得阁云头艳墨、宿墨、水等。书体有甲骨文,金文(商周金文、春秋战国金文、中山王厝器金文、汉金文……),楚简帛书,侯马盟书,温县盟书,小篆,果蝙书等,隶书(秦简、汉简帛书、汉碑……),草书(章草、小草、大草……),行书(行楷、行草),楷书(魏碑及北朝墓志、隋朝墓</div> </li> <li><a href="/article/1835479137217769472.htm" title="4招写出高价值文章" target="_blank">4招写出高价值文章</a> <span class="text-muted">zhiliner</span> <div>文章写得泛泛是因为思考得不够深,思考得越深文章会越有价值。拿到一个主题一定要去深入挖掘事件背后的东西,比如人物困境以及趋势性的东西。写作过程中有几个深度思考的方法一、解剖,让旧素材焕发新意作为一个写作者,我们能够做的最大贡献,就是给出自己看世界的角度。解剖其实就是把这个话题相关的信息都列出来,详细的列出来,看清楚它的内部。我们看到一个老话题或者一段旧素材的时候,不要只看这个素材或者话题本身,一定要</div> </li> <li><a href="/article/1835478880375369728.htm" title="一比一复刻手表哪里可以买到?推荐三个可靠渠道" target="_blank">一比一复刻手表哪里可以买到?推荐三个可靠渠道</a> <span class="text-muted">腕表世界</span> <div>在我国,提及一比一复刻手表,人们总是充满好奇与争议。这种高度仿真的复刻手表,凭借其精湛的工艺、时尚的设计,以及与正品相差无几的质感,深受一部分消费者的喜爱。但与此同时,其背后的侵权争议也一直不断。那么,究竟哪里可以买到这些令人心动的一比一复刻手表呢?腕表咨询微信:10428850一、何为一比一复刻手表?一比一复刻手表,指的是严格按照正版手表的设计、尺寸和工艺制作的仿制品。这些手表在材质、外观、功能</div> </li> <li><a href="/article/1835477362700021760.htm" title="Python中深拷贝与浅拷贝的区别" target="_blank">Python中深拷贝与浅拷贝的区别</a> <span class="text-muted">yuxiaoyu.</span> <div>转自:http://blog.csdn.net/u014745194/article/details/70271868定义:在Python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另一个变量的时候,python并没有拷贝这个对象,只是拷贝了这个对象的引用而已。浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复</div> </li> <li><a href="/article/1835476984034062336.htm" title="【六】阿伟开始搭建Kafka学习环境" target="_blank">【六】阿伟开始搭建Kafka学习环境</a> <span class="text-muted">能源恒观</span> <a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>阿伟开始搭建Kafka学习环境概述上一篇文章阿伟学习了Kafka的核心概念,并且把市面上流行的消息中间件特性进行了梳理和对比,方便大家在学习过程中进行对比学习,最后梳理了一些Kafka使用中经常遇到的Kafka难题以及解决思路,经过上一篇的学习我相信大家对Kafka有了初步的认识,本篇将继续学习Kafka。一、安装和配置学习一项技术首先要搭建一套服务,而Kafka的运行主要需要部署jdk、zook</div> </li> <li><a href="/article/1835475582138281984.htm" title="ios GCD" target="_blank">ios GCD</a> <span class="text-muted">_Waiting_</span> <div>1.GCD任务和队列学习GCD之前,先来了解GCD中两个核心概念:任务和队列。任务:就是执行操作的意思,换句话说就是你在线程中执行的那段代码。在GCD中是放在block中的。执行任务有两种方式:同步执行(sync)和异步执行(async)。两者的主要区别是:是否等待队列的任务执行结束,以及是否具备开启新线程的能力。同步执行(sync):同步添加任务到指定的队列中,在添加的任务执行结束之前,会一直等</div> </li> <li><a href="/article/1835474314728665088.htm" title="希望和悲伤都是照亮我们人生的一缕光" target="_blank">希望和悲伤都是照亮我们人生的一缕光</a> <span class="text-muted">山月映雪</span> <div>我开始并不想读《云边有个小卖部》,但看到好几个学生就都在读这本书,为了了解学生的阅读实际,我就拿起这本书翻看起来。读了十几页,发现小说的语言中不时有一些粗俗的字眼,感觉自己读不下去了。小说一开始把云边镇风景写的特别的美好,我错判为脱离现实的鸳鸯蝴蝶派小说,对于人为制造的童话世界的人与物,我真的不太感兴趣,所以就没有再读了。有天在教室闲转,顺手又拿起了这本书看了起来,这次我才真的看进去了。这部小说除</div> </li> <li><a href="/article/1835468834602053632.htm" title="红手套节 马小媛为中国城市环卫者公益发声:今天我手红" target="_blank">红手套节 马小媛为中国城市环卫者公益发声:今天我手红</a> <span class="text-muted">疏狂君</span> <div>#红手套节#公益活动,线头公益以及同多方资源的共同努力我们邀请到了线头公益大使马小媛马小媛,1993年5月3日出生于江苏省南京市,中国内地新生代女演员。2015年马小媛参演网剧《余罪》,饰演警校校花安嘉璐的闺蜜。2016年马小媛主演系列电影《丽人保镖》中女一号林欢馨,正式出道。此后,马小媛陆续接演了电视剧《警花与警犬2》,在网剧《你美丽李美丽》中担任女主角李美丽。拂晓,当你还在睡梦中时,这座城跟你</div> </li> <li><a href="/article/48.htm" title="开发者关心的那些事" target="_blank">开发者关心的那些事</a> <span class="text-muted">圣子足道</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/apple/1.htm">apple</a><a class="tag" taget="_blank" href="/search/%E6%94%AF%E4%BB%98/1.htm">支付</a> <div>我要在app里添加IAP,必须要注册自己的产品标识符(product identifiers)。产品标识符是什么? 产品标识符(Product Identifiers)是一串字符串,它用来识别你在应用内贩卖的每件商品。App Store用产品标识符来检索产品信息,标识符只能包含大小写字母(A-Z)、数字(0-9)、下划线(-)、以及圆点(.)。你可以任意排列这些元素,但我们建议你创建标识符时使用</div> </li> <li><a href="/article/175.htm" title="负载均衡器技术Nginx和F5的优缺点对比" target="_blank">负载均衡器技术Nginx和F5的优缺点对比</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/F5/1.htm">F5</a> <div>        对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。         目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高</div> </li> <li><a href="/article/302.htm" title="LeetCode[Math] - #9 Palindrome Number" target="_blank">LeetCode[Math] - #9 Palindrome Number</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a> <div>原题链接:#9 Palindrome Number   要求: 判断一个整数是否是回文数,不要使用额外的存储空间   难度:简单   分析: 题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。 注:没有看到有关负数是否可以是回文数的明确结论,例如</div> </li> <li><a href="/article/429.htm" title="画图板的基本实现" target="_blank">画图板的基本实现</a> <span class="text-muted">15700786134</span> <a class="tag" taget="_blank" href="/search/%E7%94%BB%E5%9B%BE%E6%9D%BF/1.htm">画图板</a> <div> 要实现画图板的基本功能,除了在qq登陆界面中用到的组件和方法外,还需要添加鼠标监听器,和接口实现。 首先,需要显示一个JFrame界面: public class DrameFrame extends JFrame {              //显示</div> </li> <li><a href="/article/556.htm" title="linux的ps命令" target="_blank">linux的ps命令</a> <span class="text-muted">被触发</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行</div> </li> <li><a href="/article/683.htm" title="Android 音乐播放器 下一曲 连续跳几首歌" target="_blank">Android 音乐播放器 下一曲 连续跳几首歌</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>最近在写安卓音乐播放器的时候遇到个问题。在MediaPlayer播放结束时会回调 player.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.reset(); Log.i("H</div> </li> <li><a href="/article/810.htm" title="java导出txt文件的例子" target="_blank">java导出txt文件的例子</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>代码很简单就一个servlet,如下: package com.eastcom.servlet; import java.io.BufferedOutputStream; import java.io.IOException; import java.net.URLEncoder; import java.sql.Connection; import java.sql.Resu</div> </li> <li><a href="/article/937.htm" title="Scala stack试玩, 提高第三方依赖下载速度" target="_blank">Scala stack试玩, 提高第三方依赖下载速度</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a><a class="tag" taget="_blank" href="/search/sbt/1.htm">sbt</a> <div>原文地址: http://segmentfault.com/a/1190000002894524 sbt下载速度实在是惨不忍睹, 需要做些配置优化 下载typesafe离线包, 保存为ivy本地库 wget http://downloads.typesafe.com/typesafe-activator/1.3.4/typesafe-activator-1.3.4.zip 解压r</div> </li> <li><a href="/article/1064.htm" title="phantomjs安装(linux,附带环境变量设置) ,以及casperjs安装。" target="_blank">phantomjs安装(linux,附带环境变量设置) ,以及casperjs安装。</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/spider/1.htm">spider</a> <div>1. 首先从官网 http://phantomjs.org/下载phantomjs压缩包,解压缩到/root/phantomjs文件夹。 2. 安装依赖 sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6 3. 配置环境变量 vi /etc/profil</div> </li> <li><a href="/article/1191.htm" title="JAVA IO FileInputStream和FileOutputStream,字节流的打包输出" target="_blank">JAVA IO FileInputStream和FileOutputStream,字节流的打包输出</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java%E6%A0%B8%E5%BF%83%E6%80%9D%E6%83%B3/1.htm">java核心思想</a><a class="tag" taget="_blank" href="/search/JAVA+IO%E6%93%8D%E4%BD%9C/1.htm">JAVA IO操作</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E6%B5%81/1.htm">字节流</a> <div>在程序设计语言中,数据的保存是基本,如果某程序语言不能保存数据那么该语言是不可能存在的,JAVA是当今最流行的面向对象设计语言之一,在保存数据中也有自己独特的一面,字节流和字符流 1,字节流是由字节构成的,字符流是由字符构成的 字节流和字符流都是继承的InputStream和OutPutStream ,java中两种最基本的就是字节流和字符流   类 FileInputStream</div> </li> <li><a href="/article/1318.htm" title="Spring基础实例(依赖注入和控制反转)" target="_blank">Spring基础实例(依赖注入和控制反转)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>前提条件:在http://www.springsource.org/download网站上下载Spring框架,并将spring.jar、log4j-1.2.15.jar、commons-logging.jar加载至工程1.武器接口 package com.bijian.spring.base3; public interface Weapon { void kil</div> </li> <li><a href="/article/1445.htm" title="HR看重的十大技能" target="_blank">HR看重的十大技能</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%8F%90%E5%8D%87/1.htm">提升</a><a class="tag" taget="_blank" href="/search/%E8%83%BD%E5%8A%9B/1.htm">能力</a><a class="tag" taget="_blank" href="/search/HR/1.htm">HR</a><a class="tag" taget="_blank" href="/search/%E6%88%90%E9%95%BF/1.htm">成长</a> <div>    一个人掌握何种技能取决于他的兴趣、能力和聪明程度,也取决于他所能支配的资源以及制定的事业目标,拥有过硬技能的人有更多的工作机会。但是,由于经济发展前景不确定,掌握对你的事业有所帮助的技能显得尤为重要。以下是最受雇主欢迎的十种技能。   一、解决问题的能力   每天,我们都要在生活和工作中解决一些综合性的问题。那些能够发现问题、解决问题并迅速作出有效决</div> </li> <li><a href="/article/1572.htm" title="【Thrift一】Thrift编译安装" target="_blank">【Thrift一】Thrift编译安装</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/thrift/1.htm">thrift</a> <div>什么是Thrift The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and s</div> </li> <li><a href="/article/1699.htm" title="【Avro三】Hadoop MapReduce读写Avro文件" target="_blank">【Avro三】Hadoop MapReduce读写Avro文件</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a> <div>Avro是Doug Cutting(此人绝对是神一般的存在)牵头开发的。 开发之初就是围绕着完善Hadoop生态系统的数据处理而开展的(使用Avro作为Hadoop MapReduce需要处理数据序列化和反序列化的场景),因此Hadoop MapReduce集成Avro也就是自然而然的事情。 这个例子是一个简单的Hadoop MapReduce读取Avro格式的源文件进行计数统计,然后将计算结果</div> </li> <li><a href="/article/1826.htm" title="nginx定制500,502,503,504页面" target="_blank">nginx定制500,502,503,504页面</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx%E3%80%80%E9%94%99%E8%AF%AF%E6%98%BE%E7%A4%BA/1.htm">nginx 错误显示</a> <div>server { listen 80; error_page 500/500.html; error_page 502/502.html; error_page 503/503.html; error_page 504/504.html; location /test {return502;}} 配置很简单,和配</div> </li> <li><a href="/article/1953.htm" title="java-1.二叉查找树转为双向链表" target="_blank">java-1.二叉查找树转为双向链表</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%8F%89%E6%9F%A5%E6%89%BE%E6%A0%91/1.htm">二叉查找树</a> <div> import java.util.ArrayList; import java.util.List; public class BSTreeToLinkedList { /* 把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ </div> </li> <li><a href="/article/2080.htm" title="Netty源码学习-HTTP-tunnel" target="_blank">Netty源码学习-HTTP-tunnel</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>Netty关于HTTP tunnel的说明: http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description 这个说明有点太简略了 一个完整的例子在这里: https://github.com/bylijinnan</div> </li> <li><a href="/article/2207.htm" title="JSONUtil.serialize(map)和JSON.toJSONString(map)的区别" target="_blank">JSONUtil.serialize(map)和JSON.toJSONString(map)的区别</a> <span class="text-muted">coder_xpf</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/map/1.htm">map</a><a class="tag" taget="_blank" href="/search/val%28%29/1.htm">val()</a> <div> JSONUtil.serialize(map)和JSON.toJSONString(map)的区别   数据库查询出来的map有一个字段为空   通过System.out.println()输出 JSONUtil.serialize(map): {"one":"1","two":"nul</div> </li> <li><a href="/article/2334.htm" title="Hibernate缓存总结" target="_blank">Hibernate缓存总结</a> <span class="text-muted">cuishikuan</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/javaweb/1.htm">javaweb</a><a class="tag" taget="_blank" href="/search/hibernate%E7%BC%93%E5%AD%98/1.htm">hibernate缓存</a><a class="tag" taget="_blank" href="/search/%E4%B8%89%E5%A4%A7%E6%A1%86%E6%9E%B6/1.htm">三大框架</a> <div>一、为什么要用Hibernate缓存? Hibernate是一个持久层框架,经常访问物理数据库。 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。 缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。   二、Hibernate缓存原理是怎样的? Hibernate缓存包括两大类:Hib</div> </li> <li><a href="/article/2461.htm" title="CentOs6" target="_blank">CentOs6</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>首先su - 切换到root下面1、首先要先安装GCC GCC-C++ Openssl等以来模块:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel2、再安装ncurses模块yum -y install ncurses-develyum install ncurses-devel3、下载Erang</div> </li> <li><a href="/article/2588.htm" title="10款用 jquery 实现滚动条至页面底端自动加载数据效果" target="_blank">10款用 jquery 实现滚动条至页面底端自动加载数据效果</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>  无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的结果,改变了一直以来只能通过点击下一页来翻页这种常规做法。 无限滚动自动翻页技术的鼻祖是微博的先驱:推特(twitter),后来必应图片搜索、谷歌图片搜索、google reader、箱包批发网等纷纷抄袭了这一项技术,于是靠滚动浏览器滚动条</div> </li> <li><a href="/article/2715.htm" title="ImageButton去边框&Button或者ImageButton的背景透明" target="_blank">ImageButton去边框&Button或者ImageButton的背景透明</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/imagebutton/1.htm">imagebutton</a> <div>在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法 一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX" 第二种方法就是将ImageButton背景改为透明,这个方法更常用 在XML里;    <ImageBut</div> </li> <li><a href="/article/2842.htm" title="JSP之c:foreach" target="_blank">JSP之c:foreach</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/forearch/1.htm">forearch</a> <div>原文出自:http://www.cnblogs.com/draem0507/archive/2012/09/24/2699745.html <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的最后一个项目 step 步长 否 1</div> </li> <li><a href="/article/2969.htm" title="Android实现主动连接蓝牙耳机" target="_blank">Android实现主动连接蓝牙耳机</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>在Android程序中可以实现自动扫描蓝牙、配对蓝牙、建立数据通道。蓝牙分不同类型,这篇文字只讨论如何与蓝牙耳机连接。 大致可以分三步: 一、扫描蓝牙设备: 1、注册并监听广播: BluetoothAdapter.ACTION_DISCOVERY_STARTED BluetoothDevice.ACTION_FOUND BluetoothAdapter.ACTION_DIS</div> </li> <li><a href="/article/3096.htm" title="android学习轨迹之四:org.json.JSONException: No value for" target="_blank">android学习轨迹之四:org.json.JSONException: No value for</a> <span class="text-muted">hyz301</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>org.json.JSONException: No value for items  在JSON解析中会遇到一种错误,很常见的错误   06-21 12:19:08.714 2098-2127/com.jikexueyuan.secret I/System.out﹕ Result:{"status":1,"page":1,&</div> </li> <li><a href="/article/3223.htm" title="干货分享:从零开始学编程 系列汇总" target="_blank">干货分享:从零开始学编程 系列汇总</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>程序员总爱重新发明轮子,于是做了要给轮子汇总。 从零开始写个编译器吧系列 (知乎专栏) 从零开始写一个简单的操作系统 (伯乐在线) 从零开始写JavaScript框架 (图灵社区) 从零开始写jQuery框架 (蓝色理想 ) 从零开始nodejs系列文章 (粉丝日志) 从零开始编写网络游戏 </div> </li> <li><a href="/article/3350.htm" title="jquery-autocomplete 使用手册" target="_blank">jquery-autocomplete 使用手册</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a> <div>jquery-autocomplete学习 一、用前必备 官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/ 当前版本:1.1 需要JQuery版本:1.2.6 二、使用 <script src="./jquery-1.3.2.js" type="text/ja</div> </li> <li><a href="/article/3477.htm" title="PLSQL-Developer或者Navicat等工具连接远程oracle数据库的详细配置以及数据库编码的修改" target="_blank">PLSQL-Developer或者Navicat等工具连接远程oracle数据库的详细配置以及数据库编码的修改</a> <span class="text-muted">超声波</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>  在服务器上将Oracle安装好之后接下来要做的就是通过本地机器来远程连接服务器端的oracle数据库,常用的客户端连接工具就是PLSQL-Developer或者Navicat这些工具了。刚开始也是各种报错,什么TNS:no listener;TNS:lost connection;TNS:target hosts...花了一天的时间终于让PLSQL-Developer和Navicat等这些客户</div> </li> <li><a href="/article/3604.htm" title="数据仓库数据模型之:极限存储--历史拉链表" target="_blank">数据仓库数据模型之:极限存储--历史拉链表</a> <span class="text-muted">superlxw1234</span> <a class="tag" taget="_blank" href="/search/%E6%9E%81%E9%99%90%E5%AD%98%E5%82%A8/1.htm">极限存储</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B/1.htm">数据模型</a><a class="tag" taget="_blank" href="/search/%E6%8B%89%E9%93%BE%E5%8E%86%E5%8F%B2%E8%A1%A8/1.htm">拉链历史表</a> <div>在数据仓库的数据模型设计过程中,经常会遇到这样的需求: 1. 数据量比较大; 2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等; 3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态,    比如,查看某一个用户在过去某一段时间内,更新过几次等等; 4. 变化的比例和频率不是很大,比如,总共有10</div> </li> <li><a href="/article/3731.htm" title="10点睛Spring MVC4.1-全局异常处理" target="_blank">10点睛Spring MVC4.1-全局异常处理</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a> <div>10.1 全局异常处理 使用@ControllerAdvice注解来实现全局异常处理; 使用@ControllerAdvice的属性缩小处理范围 10.2 演示 演示控制器 package com.wisely.web; import org.springframework.stereotype.Controller; import org.spring</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>