linux Nginx+Tomcat负载均衡、动静分离

linux Nginx+Tomcat负载均衡、动静分离

  • 1、Tomcat的基本介绍
    • 1.1Tomcat是什么?
    • 1.2Tomcat的构成组件
    • 1.3Tomcat的核心功能
    • 1.4Tomcat请求过程
  • 2、Tomcat部署
    • 2.1安装tomcat
    • 2.2优化tomcat启动速度
    • 2.4主要目录说明
  • 3、Tomcat 虚拟主机配置
    • 3.1创建fsj和mws项目目录和文件
    • 3.2修改 Tomcat 主配置文件 server.xml
    • 3.3HTTP 请求过程
  • 4、Tomcat 优化
    • 4.1 Tomcat 配置文件参数优化
  • 5、Tomcat多实例部署
  • 6、Nginx+Tomcat负载均衡、动静分离
    • 6.1部署Nginx负载均衡器
    • 6.2 部署2台Tomcat 应用服务器
    • 6.3动静分离配置
      • 6.3.1 Tomcat1 server 配置
      • 6.3.2 Tomcat2 server 配置
      • 6.3.3 Nginx server 配置
    • 6.4测试

1、Tomcat的基本介绍

1.1Tomcat是什么?

tomcat 一款 java 开发的开源免费的 Web 应用服务程序
作用:
(1)可以作为 Web 应用服务器,处理静态 Web 页面, 如 html 页面,但性能一般
(2)还可以作为 Servlet/JSP 容器,处理 java 语言开发的 jsp 动态页面应用程序,这也是 tomcat 主要的应用场景

1.2Tomcat的构成组件

核心组件

  • web容器:完成web服务器的功能
  • servlet容器:名字为 catalina,用于处理 Servlet 代码
  • JSP容器:用于将 JSP 动态网页翻译成 Servlet 代码
    tomcat’功能组件结构
  • connector连接器:暴露监听端口,接收客户端发来的请求和返回响应消息给客户端
  • container容器:负责处理用户请求的业务逻辑。由4个子容器组成(engine、host、context、wrapper),子容器之间是父子关系:
  • engine:引擎,管理多个虚拟主机,一个container只有一个engine
  • host:代表一个虚拟主机
  • context:管理web应用的路径
  • wrapper:servlet封装器,负责处理业务逻辑

1.3Tomcat的核心功能

Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。
其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用
Servlet 相关逻辑。 Service:对外提供的 Web 服务

1.4Tomcat请求过程

(1)用户在浏览器中输入网址,请求被发送到本机端口 8080,被在那里监听的 Connector 获得; (2)Connector
把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应; (3)请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑、数据存储等。 (4)执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给Connector,并通过 Connector 返回给客户端。

2、Tomcat部署

2.1安装tomcat

systemctl disable firewalld --now  
setenforce 0  //关闭防火墙

linux Nginx+Tomcat负载均衡、动静分离_第1张图片

java -version //查看一下版本

linux Nginx+Tomcat负载均衡、动静分离_第2张图片

//将源代码包置于/opt下 
 jdk-8u201-linux-x64.rpm

linux Nginx+Tomcat负载均衡、动静分离_第3张图片

rpm -ivh jdk-8u201-linux-x64.rpm
//安装jdk

linux Nginx+Tomcat负载均衡、动静分离_第4张图片

java -version //再次查看版本

linux Nginx+Tomcat负载均衡、动静分离_第5张图片

此时版本并没有改变,说明安装的包并没有生效,需要配置环境变量才可以使其生效。

rpm -qpl jdk-8u201-linux-x64.rpm
//根据软件包名查找安装路径

在这里插入图片描述
linux Nginx+Tomcat负载均衡、动静分离_第6张图片

cd /usr/java/jdk1.8.0_201-amd64
//进入到刚才查询的目录中

linux Nginx+Tomcat负载均衡、动静分离_第7张图片

ls bin  //查看一下bin包的内容

linux Nginx+Tomcat负载均衡、动静分离_第8张图片

/usr/java/jdk1.8.0_201-amd64/bin包主要放一些jdk运行的一些相关命令和工具

cd /usr/java/jdk1.8.0_201-amd64/jre/bin

linux Nginx+Tomcat负载均衡、动静分离_第9张图片

jre包下可以看到有一个lib目录,进入到此目录可以看到有很多的jar包,这jar包主要是一些依赖包和依赖配置
linux Nginx+Tomcat负载均衡、动静分离_第10张图片

接下来要将/usr/java/jdk1.8.0_201-amd64/下的 bin目录和cd /usr/java/jdk1.8.0_201-amd64/jre 下的bin目录都放入的环境变量中,让系统可以直接识别

vim /etc/profile 
//系统环境变量配置文件,我们可以在这添加相关的设置

linux Nginx+Tomcat负载均衡、动静分离_第11张图片

也可以在/etc/profile.d/下添加一个以.sh结尾的配置文件

linux Nginx+Tomcat负载均衡、动静分离_第12张图片

cd /etc/profile.d/  //切换到子配置文件所在的目录

linux Nginx+Tomcat负载均衡、动静分离_第13张图片

vim java.sh
//创建一个java.sh文件
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

linux Nginx+Tomcat负载均衡、动静分离_第14张图片
注意:

最左原则:linux查找可执行文件是根据PATH变量从左往右查找,找到即停止。 #所以需要将安装版本的路径放在$PATH前面

CLASSPATH 是一个环境变量,用于指定 Java 程序运行时的类路径。类路径是指计算机中存储 Java 类文件和库文件的路径。当Java 程序运行时,虚拟机会搜索类路径上指定的路径,以找到所需的类文件和库文件,以便正确加载和执行程序。
#CLASSPATH和 PATH是必需的,而JAVA_HOME和JRE_HOME是为了方便修改,只需要修改JAVA_HOME

source java.sh  //立即生效
java -version   //查看版本号

linux Nginx+Tomcat负载均衡、动静分离_第15张图片

vim hello.java //创建一个.java文件

public class hello {
    public static void main (String[] args){
        System.out.println("hello world!");
       }
}
//编写的程序内容

linux Nginx+Tomcat负载均衡、动静分离_第16张图片

javac hello.java  //转换为字节码文件
java hello  //执行字节码文件

linux Nginx+Tomcat负载均衡、动静分离_第17张图片

cd /opt;ls  //切换到opt目录下,查看opt下的文件
rz -E  //将tomcat的安装包导入到opt目录下
tar xf apache-tomcat-9.0.16.tar.gz //解压文件

linux Nginx+Tomcat负载均衡、动静分离_第18张图片

mv apache-tomcat-9.0.16 /usr/local/tomcat 
//将tomcat解压后的文件移动到/usr/local/tomcat
cd /usr/local/tomcat;ls
//切换到该目录下,并查看该文件夹下的文件
cd ./bin;ls //切换到bin目录下,并查看该目录下的文件

linux Nginx+Tomcat负载均衡、动静分离_第19张图片
注意:

startup.sh :启动程序文件
catalina.sh:启动程序文件
shutdown.sh:关闭程序文件

./startup.sh 8080  //启动tomcat
ss -natp |grep 8080 //查看tomcat是否启动成功

linux Nginx+Tomcat负载均衡、动静分离_第20张图片

浏览器输入ip和端口号,查看tomcat是否安装成功

linux Nginx+Tomcat负载均衡、动静分离_第21张图片

vim /usr/lib/systemd/system/tomcat.service
//编写.service文件
[Unit]
Description=tomcat server
Wants=network-online.target
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_201-amd64"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

linux Nginx+Tomcat负载均衡、动静分离_第22张图片

./shutdown.sh  //关闭tomcat

linux Nginx+Tomcat负载均衡、动静分离_第23张图片

systemctl daemon-reload  //重新读取配置文件
systemctl start tomcat   //启动tomcat
systemctl status tomcat  //查看tomcat状态

linux Nginx+Tomcat负载均衡、动静分离_第24张图片

2.2优化tomcat启动速度

第一次启动tomcat可能会发现 Tomcat 启动很慢,默认情况下可能会需要几十秒,可以修改jdk参数进行改。

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security     - -117行--修改
securerandom.source=file:/dev/random
修改为securerandom.source=file:/dev/urandom

linux Nginx+Tomcat负载均衡、动静分离_第25张图片
在这里插入图片描述

2.4主要目录说明

  • bin:存放启动和关闭 Tomcat 的命令和执行文件,如 catalina.sh、startup.sh、shutdown.sh
  • conf:存放 Tomcat 服务器的各种配置文件,如主配置文件 server.xml 和 应用默认的部署描述文件 web.xml 比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。  
    ① server.xml: Tomcat的主配置文件,包含Service,Connector,Engine,Realm,Valve,Hosts主组件的相关配置信息;
    ② context.xml:所有host的默认配置信息;
    ③ tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息,Tomcat自带的manager默认情况下会用到此文件,在Tomcat中添加/删除用户,为用户指|定角色等将通过编辑此文件实现;
    ④ web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的web应用程序提供包括MIME映射等默认配置信息;
  • lib:存放 Tomcat 运行需要的库文件的 jar 包,一般不作任何改动
  • logs:存放 Tomcat 执行时的日志
  • temp:存放 Tomcat 运行时产生的文件
  • webapps:存放 Tomcat 默认的 Web 应用项目资源的目录
  • work:Tomcat 的工作目录,存放 Web 应用代码生成和编译文件

linux Nginx+Tomcat负载均衡、动静分离_第26张图片

3、Tomcat 虚拟主机配置

很多时候公司会有多个项目需要运行,一般不会是在一台服务器上运行多个 Tomcat 服务,这样会消耗太多系统资源。此时就需要使用到Tomcat 虚拟主机。

3.1创建fsj和mws项目目录和文件

mkdir /usr/local/tomcat/webapps/fsj
mkdir /usr/local/tomcat/webapps/mws
echo "fsj,fsj,fsj" > /usr/local/tomcat/webapps/fsj/index.jsp
echo "mws,mws,mws" > /usr/local/tomcat/webapps/mws/index.jsp

linux Nginx+Tomcat负载均衡、动静分离_第27张图片

3.2修改 Tomcat 主配置文件 server.xml

vim /usr/local/tomcat/conf/server.xml
--165行前--插入
"www.fsj.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	"/usr/local/tomcat/webapps/fsj" path="" reloadable="true" />
</Host>
 
"www.mws.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	"/usr/local/tomcat/webapps/mws" path="" reloadable="true" />
</Host>

linux Nginx+Tomcat负载均衡、动静分离_第28张图片

name:主机名

appBase:Tomcat程序工作目录,即存放web应用程序的目录;相对路径为webapps,绝对路径为/usr/local/tomcat/webapps

unpackWARs:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true

autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true

xmlValidation:是否验证xml文件执行有效性检验的标志 x

mlNamespaceAware:是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验

Context docBase:相应的Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;

path:相对于Web服务器根路径而言的URI;如果为空"",则表示为此webapp的根路径 / ;

reloadable:是否允许重新加载此context相关的Web应用程序的类;默认为false

linux Nginx+Tomcat负载均衡、动静分离_第29张图片
测试

在真机的本地hosts文件中加入IP和域名

linux Nginx+Tomcat负载均衡、动静分离_第30张图片

浏览器访问域名

 http://www.fsj.com:8080
 http://www.mws.com:8080

linux Nginx+Tomcat负载均衡、动静分离_第31张图片
linux Nginx+Tomcat负载均衡、动静分离_第32张图片

3.3HTTP 请求过程

(1)Connector 连接器监听的端口是 8080。由于请求的端口和监听的端口一致,连接器接受了该请求。
(2)因为引擎的默认虚拟主机是 www.cyw.com,并且虚拟主机的目录是webapps。所以请求找到了 tomcat/webapps 目录。
(3)访问的路径为根路径,URI 为空,即空是 Web 程序的应用名,也就是 context。此时请求找到 /usr/local/tomcat/webapps/cyw 目录,解析 index.jsp 并返回。

4、Tomcat 优化

omcat默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面,分别为操作系统优化(内核参数优化),Tomcat配置文件参数优化,Java虚拟机(JVM)调优。

4.1 Tomcat 配置文件参数优化

常用的优化相关参数如下:

【redirectPort】如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的 8443 端口。

【maxThreads】Tomcat使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数,即支持的最大并发连接数,默认值是
200。

【minSpareThreads】最小空闲线程数,Tomcat 启动时的初始化的线程数,表示即使没有人使用也开这么多空线程等待,默认值是10。

【maxSpareThreads】最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制)。一般不需要指定。

【processorCache】进程缓冲器,可以提升并发请求。默认值是200,如果不做限制的话可以设置为-1,一般采用maxThreads的值或者-1。

【URIEncoding】指定 Tomcat 容器的 URL 编码格式,网站一般采用UTF-8作为默认编码。

【connnectionTimeout】网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。

【enableLookups】是否反查域名,以返回远程主机的主机名,取值为:true 或 false,如果设置为 false,则直接返回
IP 地址,为了提高处理能力,应设置为 false。

【disableUploadTimeout】上传时是否使用超时机制。应设置为 true。

【connectionUploadTimeout】上传超时时间,毕竟文件上传可能需要消耗更多的时间,这个根据你自己的业务需要自己调,以使Servlet有较长的时间来完成它的执行,需要与上一个参数一起配合使用才会生效。

【acceptCount】指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为100 个。

【maxKeepAliveRequests】指定一个长连接的最大请求数。默认长连接是打开的,设置为1时,代表关闭长连接;为-1时,代表请求数无限制

【compression】是否对响应的数据进行GZIP压缩,off:表示禁止压缩;on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为
off,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。

【compressionMinSize】表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启了压缩功能,默认值就是2048。

【compressableMimeType】压缩类型,指定对哪些类型的文件进行数据压缩。

【noCompressionUserAgents=“gozilla, traviata”】对于以下的浏览器,不启用压缩 #如果已经进行了动静分离处理,静态页面和图片等数据就不需做 Tomcat 处理,也就不要在 Tomcat 中配置压缩了。

以上是一些常用的配置参数,还有好多其它的参数设置,还可以继续深入的优化,HTTP Connector 与 AJP Connector 的参数属性值,可以参考官方文档的详细说明进行学习

vim /usr/local/tomcat/conf/server.xml
......
"8080" protocol="HTTP/11.1" 
connectionTimeout="20000" 
redirectPort="8443" 
--71行--插入
minSpareThreads="50" 
enableLookups="false" 
disableUploadTimeout="true" 
acceptCount="300" 
maxThreads="500" 
processorCache="500"
URIEncoding="UTF-8" 
maxKeepAliveRequests="100"
compression="on" 
compressionMinSize="2048" 
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png"/>

5、Tomcat多实例部署

mkdir -p /usr/local/tomcat/tomcat1
//递归创建tomcal
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
//将解压过后的安装包移到tomcat1中
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2
//再复制一个安装包命名为tomcat2

linux Nginx+Tomcat负载均衡、动静分离_第33张图片

配置 tomcat 环境变量

vim /etc/profile.d/tomcat.sh
//设置tomcat1和tomcat2的环境变量
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1

#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2

linux Nginx+Tomcat负载均衡、动静分离_第34张图片

修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号

vim /usr/local/tomcat/tomcat2/conf/server.xml
//修改tomcat2的配置文件

"8006" shutdown="SHUTDOWN">		#22行,修改Server prot,默认为8005 -> 修改为8006
"8081" protocol="HTTP/1.1"		#69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
"8010" protocol="AJP/1.3" redirectPort="8443" />	#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

linux Nginx+Tomcat负载均衡、动静分离_第35张图片
在这里插入图片描述
linux Nginx+Tomcat负载均衡、动静分离_第36张图片
linux Nginx+Tomcat负载均衡、动静分离_第37张图片

  • 8080: HTTP 请求的默认端口,用于 Web 应用程序和客户端之间的通信。
  • 8005: Shutdown 端口,用于远程关闭 Tomcat 服务。
  • 8009: AJP 端口,用于连接 Apache Web Server 和 Tomcat 服务器的通信。
    以上三个端口号皆需要修改

修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量

vim /usr/local/tomcat/tomcat1/bin/startup.sh
//修改tomcat1开启配置文件的环境变量

linux Nginx+Tomcat负载均衡、动静分离_第38张图片

vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
//修改tomcat1关闭配置文件的环境变量

linux Nginx+Tomcat负载均衡、动静分离_第39张图片

vim /usr/local/tomcat/tomcat2/bin/startup.sh
//修改tomcat2的开机配置的环境变量

linux Nginx+Tomcat负载均衡、动静分离_第40张图片

vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
//修改tomcat2的关闭配置的环境变量

linux Nginx+Tomcat负载均衡、动静分离_第41张图片

启动各 tomcat 中的 /bin/startup.sh

tomcat1
linux Nginx+Tomcat负载均衡、动静分离_第42张图片
linux Nginx+Tomcat负载均衡、动静分离_第43张图片
tomcat2
linux Nginx+Tomcat负载均衡、动静分离_第44张图片
linux Nginx+Tomcat负载均衡、动静分离_第45张图片

6、Nginx+Tomcat负载均衡、动静分离

Nginx服务器:192.168.190.200
tomcat1服务器:192.168.190.101
tomcat2服务器:192.168.190.120:8080
192.168.190.120:8081

6.1部署Nginx负载均衡器

systemctl stop firewalld
setenforce 0
 
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
 
useradd -M -s /sbin/nologin nginx
 
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
 
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持
--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
 
--with-stream										#启用 stream模块,提供4层调度
 
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream
 
make && make install
 
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
 
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
 
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

6.2 部署2台Tomcat 应用服务器

systemctl stop firewalld
setenforce 0
 
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
 
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
 
source /etc/profile
 
tar zxvf apache-tomcat-8.5.16.tar.gz
 
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
 
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh
 
netstat -ntap | grep 8080

6.3动静分离配置

6.3.1 Tomcat1 server 配置

cd /usr/local/tomcat/tomcat/webapps
//切换到tomcat下的webapps目录
mkdir test //创建存放页面的文件夹
vim index.jsp //创建页面
填写以下内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


JSP test1 page<<span class="token operator">/</span>title>   <span class="token comment">#指定为 test1 页面</span>
<<span class="token operator">/</span>head>
<body>
<<span class="token operator">%</span> out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"动态页面 1,http://www.test1.com"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/b0a4519c46a2469799651aeb9af4b992.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b0a4519c46a2469799651aeb9af4b992.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第46张图片" width="650" height="291" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell">vim <span class="token operator">/</span>usr/local/tomcat/tomcat1/conf/server<span class="token punctuation">.</span>xml
<span class="token comment">#由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/a08fd32fc64341ec880bed0b93dfb037.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a08fd32fc64341ec880bed0b93dfb037.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第47张图片" width="650" height="327" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span>usr/local/tomcat/tomcat1/bin/shutdown<span class="token punctuation">.</span>sh 
<span class="token operator">/</span>usr/local/tomcat/tomcat1/bin/startup<span class="token punctuation">.</span>sh 
关闭并重启
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/e36ede22a6cf45e481eca61652d08924.jpg" alt="在这里插入图片描述" width="0" height="0"></p> 
  <h3>6.3.2 Tomcat2 server 配置</h3> 
  <pre><code class="prism language-powershell">cd <span class="token operator">/</span>usr/local/tomcat/tomcat1/webapps
<span class="token operator">/</span><span class="token operator">/</span>切换到tomcat1下的webapps目录
mkdir test <span class="token operator">/</span><span class="token operator">/</span>创建存放页面的文件夹
vim index<span class="token punctuation">.</span>jsp <span class="token operator">/</span><span class="token operator">/</span>创建页面
写入以下内容
<<span class="token operator">%</span>@ page language=<span class="token string">"java"</span> import=<span class="token string">"java.util.*"</span> pageEncoding=<span class="token string">"UTF-8"</span><span class="token operator">%</span>>
<html>
<head>
<title>JSP test2 page<<span class="token operator">/</span>title>   <span class="token comment">#指定为 test2 页面</span>
<<span class="token operator">/</span>head>
<body>
<<span class="token operator">%</span> out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"动态页面 2,http://www.test1.com"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/b51ccf09feb14d9f9aa6d2fac8bcd438.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b51ccf09feb14d9f9aa6d2fac8bcd438.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第48张图片" width="650" height="319" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell">vim <span class="token operator">/</span>usr/local/tomcat/tomcat2/conf/server<span class="token punctuation">.</span>xml
<span class="token comment">#删除前面的 HOST 配置</span>
添加以下内容
<Host name=<span class="token string">"localhost"</span> appBase=<span class="token string">"webapps"</span> unpackWARs=<span class="token string">"true"</span> autoDeploy=<span class="token string">"true"</span> xmlValidation=<span class="token string">"false"</span> xmlNamespaceAware=<span class="token string">"false"</span>>
	<Context docBase=<span class="token string">"/usr/local/tomcat/tomcat2/webapps/test"</span> path=<span class="token string">""</span> reloadable=<span class="token string">"true"</span> <span class="token operator">/</span>>
<<span class="token operator">/</span>Host>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/f48bbcf038c14a198d60ff37087e8777.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f48bbcf038c14a198d60ff37087e8777.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第49张图片" width="650" height="374" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span>usr/local/tomcat/tomcat1/bin/shutdown<span class="token punctuation">.</span>sh 
<span class="token operator">/</span>usr/local/tomcat/tomcat1/bin/startup<span class="token punctuation">.</span>sh 
关闭并重启
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/be6a4921b7a7481eb290c108c513a7d6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/be6a4921b7a7481eb290c108c513a7d6.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第50张图片" width="650" height="203" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell">vim <span class="token operator">/</span>usr/local/tomcat/tomcat2/webapps/test/index<span class="token punctuation">.</span>jsp
<<span class="token operator">%</span>@ page language=<span class="token string">"java"</span> import=<span class="token string">"java.util.*"</span> pageEncoding=<span class="token string">"UTF-8"</span><span class="token operator">%</span>>
<html>
 
<head>
<title>JSP test3 page<<span class="token operator">/</span>title>   <span class="token comment">#指定为 test3 页面</span>
<<span class="token operator">/</span>head>
 
<body>
<<span class="token operator">%</span> out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"动态页面 3,http://www.test3.com"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <h3>6.3.3 Nginx server 配置</h3> 
  <p><strong>准备静态页面和静态图片</strong></p> 
  <pre><code class="prism language-powershell"><span class="token function">echo</span> <span class="token string">'<html><body><h1>静态页面</h1></body></html>'</span> > <span class="token operator">/</span>usr/local/nginx/html/index<span class="token punctuation">.</span>html
mkdir <span class="token operator">/</span>usr/local/nginx/html/img <span class="token operator">/</span><span class="token operator">/</span>创建文件夹
rz <span class="token operator">-</span>E <span class="token operator">/</span><span class="token operator">/</span>将内容拷进来
 
vim <span class="token operator">/</span>apps/nginx/conf/nginx<span class="token punctuation">.</span>conf
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
http <span class="token punctuation">{</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
	<span class="token comment">#gzip on;</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/10ff14221c4d42f6bd0b65e598294e81.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/10ff14221c4d42f6bd0b65e598294e81.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第51张图片" width="650" height="227" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/b223fcc3ce01472f8441c291324ff25f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b223fcc3ce01472f8441c291324ff25f.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第52张图片" width="650" height="414" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span><span class="token operator">/</span>实现均衡负载
upstream fsj <span class="token punctuation">{</span>
                server 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>190<span class="token punctuation">.</span>101:8080 weight=1<span class="token punctuation">;</span>
                server 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>190<span class="token punctuation">.</span>120:8080 weight=1<span class="token punctuation">;</span>
                server 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>190<span class="token punctuation">.</span>120:8081 weight=1<span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
    server <span class="token punctuation">{</span>
        listen       80<span class="token punctuation">;</span>
        server_name  www<span class="token punctuation">.</span>fsj<span class="token punctuation">.</span>com<span class="token punctuation">;</span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span><span class="token operator">/</span>实现动静分离
location ~ <span class="token punctuation">.</span><span class="token operator">*</span>\<span class="token punctuation">.</span>jsp$ <span class="token punctuation">{</span>
            proxy_pass http:<span class="token operator">/</span><span class="token operator">/</span>fsj<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
 location ~<span class="token operator">*</span> \<span class="token punctuation">.</span><span class="token punctuation">(</span>jpg<span class="token punctuation">|</span>png<span class="token punctuation">|</span>gif<span class="token punctuation">|</span>bmp<span class="token punctuation">)</span>$ <span class="token punctuation">{</span>
 root  <span class="token operator">/</span>apps/nginx/html/img<span class="token punctuation">;</span>
 <span class="token punctuation">}</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/f21f8def16e140aeb137c0952519c28c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f21f8def16e140aeb137c0952519c28c.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第53张图片" width="650" height="393" style="border:1px solid black;"></a></p> 
  <h2>6.4测试</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/6d33bc4fd3cf4a11bb6a4efeb7b967b1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/6d33bc4fd3cf4a11bb6a4efeb7b967b1.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第54张图片" width="650" height="216" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/b34875c849ab43498157e47805541142.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b34875c849ab43498157e47805541142.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第55张图片" width="650" height="238" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/0b0a6f1a048744689df31b54aa87146a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0b0a6f1a048744689df31b54aa87146a.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第56张图片" width="650" height="155" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/2ae5cf4df03d4c1484caddfe07c3652a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2ae5cf4df03d4c1484caddfe07c3652a.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第57张图片" width="650" height="218" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/50703ee902874988be066241b25469c8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/50703ee902874988be066241b25469c8.jpg" alt="linux Nginx+Tomcat负载均衡、动静分离_第58张图片" width="650" height="180" style="border:1px solid black;"></a><br> </p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1701045500360339456"></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">你可能感兴趣的:(linux,nginx,tomcat)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1773602697044361216.htm"
                           title="浪潮 M5系列服务器IPMI无法监控存储RAID卡问题." target="_blank">浪潮 M5系列服务器IPMI无法监控存储RAID卡问题.</a>
                        <span class="text-muted">Songxwn</span>
<a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">硬件服务器</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>简介浪潮的M5代服务器,可能有WebBMC无法查看存储RAID/SAS卡状态的情况,可以通过以下方式修改。修改完成后重启BMC即可生效。ESXiIPMITools使用:https://songxwn.com/ESXi8_IPMI/(Linux也可以直接使用)Linux/ESXiIPMITool下载:https://songxwn.com/file/ipmitoolWindows下载:https:/</div>
                    </li>
                    <li><a href="/article/1773597535798099968.htm"
                           title="unblock with ‘mysqladmin flush-hosts‘ 解决方法" target="_blank">unblock with ‘mysqladmin flush-hosts‘ 解决方法</a>
                        <span class="text-muted">祈祷平安,加油</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/1.htm">数据库常见问题</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>MySqlHostisblockedbecauseofmanyconnectionerrors;unblockwith'mysqladminflush-hosts'解决方法环境:linux,mysql5.5.21错误:Hostisblockedbecauseofmanyconnectionerrors;unblockwith'mysqladminflush-hosts'原因:同一个ip在短时间内产</div>
                    </li>
                    <li><a href="/article/1773552600176721920.htm"
                           title="1.计算机处理器架构+嵌入式处理器架构及知识" target="_blank">1.计算机处理器架构+嵌入式处理器架构及知识</a>
                        <span class="text-muted">vv 啊</span>
<a class="tag" taget="_blank" href="/search/arm-linux%E5%AD%A6%E4%B9%A0/1.htm">arm-linux学习</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a>
                        <div>目录一:x86-64处理器架构二:Intel80386处理器(i386)1.i3862.i686三:嵌入式Linux知识:1.MinGW2.GNU计划2.1GNU工具链概述此次只分享英特尔和ADM处理器有关于x86的架构,至于嵌入式处理器架构请查看https://en.wikipedia.org/wiki/List_of_ARM_processors一:x86-64处理器架构x86-64,也称为x</div>
                    </li>
                    <li><a href="/article/1773505900905037824.htm"
                           title="linux基础命令(一)" target="_blank">linux基础命令(一)</a>
                        <span class="text-muted">运维搬运工</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                        <div>Linux基础命令1、设置主机名1.1、hostname查看主机名[root@ansible~]#cat/etc/hostnameansible或[root@ansible~]#hostnameansible注意:主机名中不允许使用下划线“_”,可以用短横线“-”1.2、hostname临时修改主机名#临时修改直接修改的是内存中的,重启会失效[root@ansible~]#hostnameansi</div>
                    </li>
                    <li><a href="/article/1773495447948689408.htm"
                           title="docker怎么端口映射" target="_blank">docker怎么端口映射</a>
                        <span class="text-muted">Lance_mu</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>1、默认固定的端口#Web服务器:WebApache或Nginx通常使用80端口HTTP:80HTTPS:443#数据库服务器MySQL:3306PostgreSQL:5432MongoDB:27017Redis:6379#邮件服务器SMTP:25POP3:110IMAP:143#其他服务SSH:22FTP:21DNS(域名解析):53代理服务器Squid:3128版本控制系统Git:9418(S</div>
                    </li>
                    <li><a href="/article/1773489909345091584.htm"
                           title="docker基础(一)" target="_blank">docker基础(一)</a>
                        <span class="text-muted">运维搬运工</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8-docker/1.htm">容器-docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>相关概念介绍Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,互相之间不会有任何接口。Docker有几个重要概念:dockerfile,配置文件,用来生成dockerimagedockerimage,交付部署的最小单元docker命令与API,定义命令与接口,支持第三方系统集</div>
                    </li>
                    <li><a href="/article/1773413750980804608.htm"
                           title="linux安装docker及docker-compose 部署spring boot项目" target="_blank">linux安装docker及docker-compose 部署spring boot项目</a>
                        <span class="text-muted">时而有事儿</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a>
                        <div>linux系统环境:centos5.14本篇描述的是在centos系统版本下安装docker,如果是ubuntu版本,请看这篇文章:linuxubuntu20安装docker和docker-compose-CSDN博客正文:安装docker和docker-compose安装docker---------运行命名等待安装完成遇到选择直接输入yyuminstall-yyum-utilsdevice-m</div>
                    </li>
                    <li><a href="/article/1773406951456178176.htm"
                           title="检测usb口HotPlug-netlink" target="_blank">检测usb口HotPlug-netlink</a>
                        <span class="text-muted">cany1000</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>为了完成内核空间与用户空间通信,Linux提供了基于Socket的NetLink通信机制。SELinux,Linux系统的防火墙分为内核态的netfilter和用户态的iptables,netfilter与iptables的数据交换就是通过Netlink机制完成。下面看一个检测usb口的例子:s32InitUsbHotPlug(void){s32nSockFd=0;//套接字地址structsoc</div>
                    </li>
                    <li><a href="/article/1773377374927257600.htm"
                           title="Linux学习系列之vim编辑器(一)" target="_blank">Linux学习系列之vim编辑器(一)</a>
                        <span class="text-muted">llibertyll</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>vi编辑器的操作模式输入模式—aio等—>命令模式<—:键—末行模式从输入/末行模式切换到命令模式都是需要按ESC键注:a光标后输入,i光标前输入,o直接向下加一行输入,O向上加一行输入在vi编辑器中光标的移动(命令行模式下)键组合(命令)光标的移动$光标移动到当前行的结尾0(零)光标移动到当前行的开始GG光标移动到最后一行gg光标移动到第一行在命令行模式下删除与复制的操作键组合(命令)含义dd删</div>
                    </li>
                    <li><a href="/article/1773337745800888320.htm"
                           title="Azkaban各种类型的Job编写" target="_blank">Azkaban各种类型的Job编写</a>
                        <span class="text-muted">__元昊__</span>

                        <div>一、概述原生的Azkaban支持的plugin类型有以下这些:command:Linuxshell命令行任务gobblin:通用数据采集工具hadoopJava:运行hadoopMR任务java:原生java任务hive:支持执行hiveSQLpig:pig脚本任务spark:spark任务hdfsToTeradata:把数据从hdfs导入TeradatateradataToHdfs:把数据从Te</div>
                    </li>
                    <li><a href="/article/1773302984202059776.htm"
                           title="Linux初学(十)shell脚本" target="_blank">Linux初学(十)shell脚本</a>
                        <span class="text-muted">王依硕</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>一、for循环1.1循环的格式for变量in列表do代码代码....done循环的逻辑:将列表中的每个元素逐一赋值给变量每赋值一次,do和done之间的代码就会执行一次1.2列表的生成方式方法1:直接给出列表元素【用空格分隔多个元素】133129hahabaidu方法2:用通配符来生成元素/home/a*方法3:用命令来生成元素ls/etc/方法4:用{}展开的形式生成元素{3..7}{a..e}</div>
                    </li>
                    <li><a href="/article/1773279947515822080.htm"
                           title="Nginx服务" target="_blank">Nginx服务</a>
                        <span class="text-muted">老伙子53</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>Nginx服务一、什么是Nginx1、概念Nginx是一个高性能的开源的HTTP和反向代理服务器,以及邮件(IMAP/POP3)代理服务器。它最初由IgorSysoev创建,并于2004年首次公开发布。Nginx的主要特点包括高性能、低内存占用、高并发处理能力以及高度的可靠性。2、特点高性能Nginx被设计成高性能的服务器软件,能够处理大量并发连接和高流量的请求。它采用了事件驱动的架构,使用异步I</div>
                    </li>
                    <li><a href="/article/1773259809336918016.htm"
                           title="Ubuntu下安装Chrome浏览器(简单,使用)" target="_blank">Ubuntu下安装Chrome浏览器(简单,使用)</a>
                        <span class="text-muted">Starry-sky(jing)</span>
<a class="tag" taget="_blank" href="/search/%5Blinux%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%AC%94%E8%AE%B0%5D/1.htm">[linux操作系统笔记]</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</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/linux/1.htm">linux</a>
                        <div>下载安装GoogleChrome浏览器deb包极速下载:下载链接32位wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb64位wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb安装sudodpk</div>
                    </li>
                    <li><a href="/article/1773237782928490496.htm"
                           title="【Linux】PyCharm无法启动报错及解决方法" target="_blank">【Linux】PyCharm无法启动报错及解决方法</a>
                        <span class="text-muted">不是AI</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%93%8D%E4%BD%9C/1.htm">软件操作</a><a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>一、问题描述如图,笔者试图在Ubuntu18.04虚拟机上运行PyCharm开发工具(已安装,安装过程可以参考我的博客Ubuntu安装PyCharm),无法启动,报错:CannotconnecttoalreadyrunningIDEinstance.Exception:Process2574isstillrunning.报错截图如下:二、解决方法通过报错信息看出,出于某种原因,进程(PID为257</div>
                    </li>
                    <li><a href="/article/1773211849400057856.htm"
                           title="Linux(centos7)部署hive" target="_blank">Linux(centos7)部署hive</a>
                        <span class="text-muted">灯下夜无眠</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/dbeaver/1.htm">dbeaver</a><a class="tag" taget="_blank" href="/search/hive%E5%AE%A2%E6%88%B7%E7%AB%AF/1.htm">hive客户端</a>
                        <div>前提环境:已部署完hadoop(HDFS、MapReduce、YARN)1、安装元数据服务MySQL切换root用户#更新密钥rpm--importhttps://repo.mysql.com/RPM-GPG-KEY-mysqL-2022#安装Mysqlyum库rpm-Uvhhttp://repo.mysql.com//mysql57-community-release-el7-7.noarch.</div>
                    </li>
                    <li><a href="/article/1773208954436911104.htm"
                           title="Linux通过Tuned实现动态调优系统性能" target="_blank">Linux通过Tuned实现动态调优系统性能</a>
                        <span class="text-muted">星河_赵梓宇</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>Linux通过Tuned实现动态调优系统性能Tuned简介对于普通用户来说,优化Linux应用环境可能是相当具有挑战性的。它涵盖了各种领域,并且有许多参数需要考虑,比如CPU、存储、缓存策略和内存管理。尽管Linux有默认设置可以处理大多数情况和场景,但是对于高性能、高并发和高可用性系统等特殊场景,需要进行调整。本文讨论的特性是tuned,它是Linux系统中常用的一种调优服务。tuned由两个程</div>
                    </li>
                    <li><a href="/article/1772698992447127552.htm"
                           title="vscode配置go远程linux" target="_blank">vscode配置go远程linux</a>
                        <span class="text-muted">gdut17</span>
<a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a>
                        <div>Toolsenvironment:GOPATH=/root/goInstalling9toolsat/root/go/bininmodulemode.gopkgsgo-outlinegotestsgomodifytagsimplgoplaydlvgolintgoplsInstallinggithub.com/uudashr/gopkgs/v2/cmd/gopkgs(/root/go/bin/gop</div>
                    </li>
                    <li><a href="/article/1772649898592763904.htm"
                           title="部署es集群" target="_blank">部署es集群</a>
                        <span class="text-muted">liushaojiax</span>
<a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a>
                        <div>我们会在单机上利用docker容器运行多个es实例来模拟es集群。不过生产环境推荐大家每一台服务节点仅部署一个es的实例。部署es集群可以直接使用docker-compose来完成,但这要求你的Linux虚拟机至少有4G的内存空间创建es集群首先编写一个docker-compose文件,内容如下:version:'2.2'services:es01:image:elasticsearch:7.12</div>
                    </li>
                    <li><a href="/article/1772548316064710656.htm"
                           title="在 Linux/Ubuntu/Debian 上安装 SQL Server 2019" target="_blank">在 Linux/Ubuntu/Debian 上安装 SQL Server 2019</a>
                        <span class="text-muted">理工男老K</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/debian/1.htm">debian</a><a class="tag" taget="_blank" href="/search/sqlserver/1.htm">sqlserver</a>
                        <div>Microsoft为Linux发行版(包括Ubuntu)提供SQLServer。以下是有关如何执行此操作的基本指南:注册MicrosoftUbuntu存储库并添加公共存储库GPG密钥:sudowget-qO-https://packages.microsoft.com/keys/microsoft.asc|sudoapt-keyadd-sudoadd-apt-repository"$(wget-q</div>
                    </li>
                    <li><a href="/article/1772509845434466304.htm"
                           title="生信星球学习小组第80期 Day3笔记--ZJUSKY" target="_blank">生信星球学习小组第80期 Day3笔记--ZJUSKY</a>
                        <span class="text-muted">ZJUSKY</span>

                        <div>Conda简介Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。简单来说Conda就是Linux系统下的应用商店,你可以在通过Conda下载,安装很多软件。这里我们推荐miniconda,它只包含了最基本的内容,python和conda,以及相关的必须依赖项。精简的miniconda足够满足日常生信使用。下载miniconda推荐使用清</div>
                    </li>
                    <li><a href="/article/1772444468033683456.htm"
                           title="Linux系统及操作 (04)" target="_blank">Linux系统及操作 (04)</a>
                        <span class="text-muted">3s不会飞</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E5%B8%B8%E8%AF%86/1.htm">基础常识</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>Linux系统及操作(03)RPM软件包网络下载对应软件包光盘镜像文件,具备软件包Windows系统软件包的管理可以指定安装位置安装是集中安装到一个目录Linux系统与Windows系统相反。常见的软件包(生态)类型电脑入侵99%都是通过软件包的漏洞进行的。window生态Android生态ios生态rpm软件包:扩展名为.rpm,适用于RedHat系统。deb软件包:扩展名为.deb适用于Deb</div>
                    </li>
                    <li><a href="/article/1772435277218906112.htm"
                           title="RockyLinux8 & RockyLinux9安装postgresql16-devel开发包" target="_blank">RockyLinux8 & RockyLinux9安装postgresql16-devel开发包</a>
                        <span class="text-muted">ynzhangyao</span>
<a class="tag" taget="_blank" href="/search/postgresql/1.htm">postgresql</a>
                        <div>1、PG的插件扩展有些需要自行编译,需要安装PG开发包2、RockyLinux8安装#创建用户先useraddpostgressudodnfinstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpmsudodnf-qymoduledisa</div>
                    </li>
                    <li><a href="/article/1772418663362658304.htm"
                           title="Linux系统定时备份mysql数据库" target="_blank">Linux系统定时备份mysql数据库</a>
                        <span class="text-muted">er_得一</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                        <div>1、创建shell脚本mysql_db_backup并赋予执行权限#!/bin/bash#备份目录BACKUP=/data/backup/db#当前时间DATETIME=$(date+%Y-%m-%d_%H%M%S)echo$DATETIME#数据库地址HOST=localhost#数据库用户名DB_USER=root#数据库密码DB_PW=pwd@123#备份的数据库名DATABASE=Apol</div>
                    </li>
                    <li><a href="/article/1772389208908955648.htm"
                           title="Nagios安装部署全攻略" target="_blank">Nagios安装部署全攻略</a>
                        <span class="text-muted">weixin_34109408</span>
<a class="tag" taget="_blank" href="/search/memcached/1.htm">memcached</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a>
                        <div>概述:公司的生产机器一共有12台,2台LVS(主备)、2台nginx、2台tomcat、1台后台服务器(nginx_tomcat)、3台mysql(主+备+异地灾备)、1台图片服务器、2台memcached.可以看出网站的架构就是基于高可用的原理的,每个层面都做了主备、系统的PV不高,对于并发布,高性能没有那么苛求,对于系统安全、稳定有较高要求,前期已经对系统做了各种日志分析,WAF配置,漏洞扫面</div>
                    </li>
                    <li><a href="/article/1772379138313748480.htm"
                           title="nginx upstream server主动健康监测模块添加https检测功能【上】" target="_blank">nginx upstream server主动健康监测模块添加https检测功能【上】</a>
                        <span class="text-muted">码农心语</span>
<a class="tag" taget="_blank" href="/search/nginx%E5%AD%A6%E4%B9%A0/1.htm">nginx学习</a><a class="tag" taget="_blank" href="/search/c%2B%2B%E5%BC%80%E5%8F%91/1.htm">c++开发</a><a class="tag" taget="_blank" href="/search/LINUX/1.htm">LINUX</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E5%81%A5%E5%BA%B7%E6%A3%80%E6%B5%8B/1.htm">健康检测</a><a class="tag" taget="_blank" href="/search/upstream/1.htm">upstream</a><a class="tag" taget="_blank" href="/search/proxy/1.htm">proxy</a>
                        <div>1缘起  前面的《nginxupstreamserver主动健康检测模块ngx_http_upstream_check_module使用和源码分析》系列已经分析了ngx_http_upstream_check_module的实现原理,并且在借助这个模块的框架实现了一个udp健康检测的新功能。  但是ngx_http_upstream_check_module还缺乏基于https监测上游服务器健康状</div>
                    </li>
                    <li><a href="/article/1772298957515456512.htm"
                           title="Linux中PATH、LIBRARY_PATH、LD_LIBRARY_PATH的作用" target="_blank">Linux中PATH、LIBRARY_PATH、LD_LIBRARY_PATH的作用</a>
                        <span class="text-muted">zhang-ge</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/C/1.htm">C</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>1、PATHPATH是存储可执行文件搜索路径的系统环境变量,它包含了一组由冒号:分隔的目录列表。当运行一个命令时,操作系统会在这些目录中查找相应的可执行文件,并在找到后执行它。例如,在命令行中执行ls命令时,就会依次在PATH变量列出的目录中查找ls命令,如果找到则执行,否则会提示找不到该命令。可以通过以下方式修改PATH环境变量:exportPATH=$PATH:/exe_path/bin永久修</div>
                    </li>
                    <li><a href="/article/1772295559269384192.htm"
                           title="RabbitMQ的安装" target="_blank">RabbitMQ的安装</a>
                        <span class="text-muted">白泽27</span>
<a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a>
                        <div>典型应用场景:异步处理。把消息放入消息中间件中,等到需要的时候再去处理。流量削峰。例如秒杀活动,在短时间内访问量急剧增加,使用消息队列,当消息队列满了就拒绝响应,跳转到错误页面,这样就可以使得系统不会因为超负载而崩溃Linux下安装#拉取镜像dockerpullrabbitmq:3.8-management#创建容器启动dockerrun-d--restart=always-p5672:5672-</div>
                    </li>
                    <li><a href="/article/1772289516225232896.htm"
                           title="linux环境下 python import找不到自定义模块的解决方法" target="_blank">linux环境下 python import找不到自定义模块的解决方法</a>
                        <span class="text-muted">强哥的博客</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>问题现象:Linux环境中自定义的模块basic,importbasic出错。basic模块在/quoteEastmoney/目录下。两种方法:1.在导入模块之前(每个.py文件都需要加)importsyssys.path.append('/quoteEastmoney/')2.更改环境变量(一次修改永久生效)管理员权限修改:/etc/profile。在最后一行加上exportPYTHONPATH</div>
                    </li>
                    <li><a href="/article/1772279908358225920.htm"
                           title="03-10Linux的文件系统" target="_blank">03-10Linux的文件系统</a>
                        <span class="text-muted">圆缘1987</span>

                        <div>Linux的文件系统:根文件系统(rootfs):rootfilesystemLSB,FHS/boot:引导文件存放目录:内核文件(vmlinuz),引导加载器(bootloader,grub)都存放于此目录/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动会用到的程序/sbin:管理类的基本命令;不能关联至独立分区,OS启动会用到的程序/lib:基本共享库文件,以及内核模块文件(/</div>
                    </li>
                    <li><a href="/article/1772220423782596608.htm"
                           title="配置 IDEA 远程连接应用服务器" target="_blank">配置 IDEA 远程连接应用服务器</a>
                        <span class="text-muted">O_Neal</span>

                        <div>当调试Web应用时,经常需要使用ide远程连接,来进行debug调试。使用Springboot内置服务器和使用Tomcat服务器是常见的应用部署方式,可以用不同的配置方式来启动远程debug模式。Springboot应用1.配置启动参数运行jar时加上debug参数,例如java-jar-Xdebug-Xrunjdwp:transport=dt_socket,address=60222,suspe</div>
                    </li>
                                <li><a href="/article/100.htm"
                                       title="iOS http封装" target="_blank">iOS http封装</a>
                                    <span class="text-muted">374016526</span>
<a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BA%A4%E4%BA%92/1.htm">服务器交互</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E8%AF%B7%E6%B1%82/1.htm">网络请求</a>
                                    <div>程序开发避免不了与服务器的交互,这里打包了一个自己写的http交互库。希望可以帮到大家。 
  
内置一个basehttp,当我们创建自己的service可以继承实现。 
  
KuroAppBaseHttp *baseHttp = [[KuroAppBaseHttp alloc] init]; 
[baseHttp setDelegate:self]; 
[baseHttp </div>
                                </li>
                                <li><a href="/article/227.htm"
                                       title="lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具" target="_blank">lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具</a>
                                    <span class="text-muted">brotherlamp</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux%E6%95%99%E7%A8%8B/1.htm">linux教程</a><a class="tag" taget="_blank" href="/search/linux%E8%A7%86%E9%A2%91/1.htm">linux视频</a><a class="tag" taget="_blank" href="/search/linux%E8%87%AA%E5%AD%A6/1.htm">linux自学</a><a class="tag" taget="_blank" href="/search/linux%E8%B5%84%E6%96%99/1.htm">linux资料</a>
                                    <div>  
那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。 
在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。 
何为 lolcat ? 
Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat</div>
                                </li>
                                <li><a href="/article/354.htm"
                                       title="MongoDB索引管理(1)——[九]" target="_blank">MongoDB索引管理(1)——[九]</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/MongoDB%E7%AE%A1%E7%90%86%E7%B4%A2%E5%BC%95/1.htm">MongoDB管理索引</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2178427 一、概述 
      数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。 
      不使用索引的查询称</div>
                                </li>
                                <li><a href="/article/481.htm"
                                       title="Informatica参数及变量" target="_blank">Informatica参数及变量</a>
                                    <span class="text-muted">18289753290</span>
<a class="tag" taget="_blank" href="/search/Informatica/1.htm">Informatica</a><a class="tag" taget="_blank" href="/search/%E5%8F%82%E6%95%B0/1.htm">参数</a><a class="tag" taget="_blank" href="/search/%E5%8F%98%E9%87%8F/1.htm">变量</a>
                                    <div>下面是本人通俗的理解,如有不对之处,希望指正 info参数的设置:在info中用到的参数都在server的专门的配置文件中(最好以parma)结尾 下面的GLOBAl就是全局的,$开头的是系统级变量,$$开头的变量是自定义变量。如果是在session中或者mapping中用到的变量就是局部变量,那就把global换成对应的session或者mapping名字。 
 
 
[GLOBAL] $Par</div>
                                </li>
                                <li><a href="/article/608.htm"
                                       title="python 解析unicode字符串为utf8编码字符串" target="_blank">python 解析unicode字符串为utf8编码字符串</a>
                                    <span class="text-muted">酷的飞上天空</span>
<a class="tag" taget="_blank" href="/search/unicode/1.htm">unicode</a>
                                    <div>php返回的json字符串如果包含中文,则会被转换成\uxx格式的unicode编码字符串返回。 
在浏览器中能正常识别这种编码,但是后台程序却不能识别,直接输出显示的是\uxx的字符,并未进行转码。 
  
转换方式如下 
  
  
>>> import json
>>> q = '{"text":"\u4</div>
                                </li>
                                <li><a href="/article/735.htm"
                                       title="Hibernate的总结" target="_blank">Hibernate的总结</a>
                                    <span class="text-muted">永夜-极光</span>
<a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a>
                                    <div>1.hibernate的作用,简化对数据库的编码,使开发人员不必再与复杂的sql语句打交道 
  
做项目大部分都需要用JAVA来链接数据库,比如你要做一个会员注册的 页面,那么 获取到用户填写的 基本信后,你要把这些基本信息存入数据库对应的表中,不用hibernate还有mybatis之类的框架,都不用的话就得用JDBC,也就是JAVA自己的,用这个东西你要写很多的代码,比如保存注册信</div>
                                </li>
                                <li><a href="/article/862.htm"
                                       title="SyntaxError: Non-UTF-8 code starting with '\xc4'" target="_blank">SyntaxError: Non-UTF-8 code starting with '\xc4'</a>
                                    <span class="text-muted">随便小屋</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                                    <div>刚开始看一下Python语言,传说听强大的,但我感觉还是没Java强吧! 
写Hello World的时候就遇到一个问题,在Eclipse中写的,代码如下 
'''
Created on 2014年10月27日

@author: Logic
'''
print("Hello World!"); 
 运行结果 
SyntaxError: Non-UTF-8 </div>
                                </li>
                                <li><a href="/article/989.htm"
                                       title="学会敬酒礼仪 不做酒席菜鸟" target="_blank">学会敬酒礼仪 不做酒席菜鸟</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E8%8F%9C%E9%B8%9F/1.htm">菜鸟</a>
                                    <div>俗话说,酒是越喝越厚,但在酒桌上也有很多学问讲究,以下总结了一些酒桌上的你不得不注意的小细节。 
 细节一:领导相互喝完才轮到自己敬酒。敬酒一定要站起来,双手举杯。  
 细节二:可以多人敬一人,决不可一人敬多人,除非你是领导。  
 细节三:自己敬别人,如果不碰杯,自己喝多少可视乎情况而定,比如对方酒量,对方喝酒态度,切不可比对方喝得少,要知道是自己敬人。  
 细节四:自己敬别人,如果碰杯,一</div>
                                </li>
                                <li><a href="/article/1116.htm"
                                       title="《创新者的基因》读书笔记" target="_blank">《创新者的基因》读书笔记</a>
                                    <span class="text-muted">aoyouzi</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a><a class="tag" taget="_blank" href="/search/%E3%80%8A%E5%88%9B%E6%96%B0%E8%80%85%E7%9A%84%E5%9F%BA%E5%9B%A0%E3%80%8B/1.htm">《创新者的基因》</a>
                                    <div>创新者的基因 
  
创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。 
  
第一部分破坏性创新,从你开始 
第一章破坏性创新者的基因 
如何获得启示: 
发现以下的因素起到了催化剂的作用:(1) -个挑战现状的问题;(2)对某项技术、某个公司或顾客的观察;(3) -次尝试新鲜事物的经验或实验;(4)与某人进行了一次交谈,为他点醒</div>
                                </li>
                                <li><a href="/article/1243.htm"
                                       title="表单验证技术" target="_blank">表单验证技术</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/DOM%E5%AF%B9%E8%B1%A1/1.htm">DOM对象</a><a class="tag" taget="_blank" href="/search/String%E5%AF%B9%E8%B1%A1/1.htm">String对象</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E4%BB%B6/1.htm">事件</a>
                                    <div>js最主要的功能就是验证表单,下面是我对表单验证的一些理解,贴出来与大家交流交流  ,数显我们要知道表单验证需要的技术点, String对象,事件,函数 
  
一:String对象;通常是对字符串的操作; 
  
1,String的属性; 
  
    字符串.length;表示该字符串的长度;
   var str= "java"</div>
                                </li>
                                <li><a href="/article/1370.htm"
                                       title="web.xml配置详解之context-param" target="_blank">web.xml配置详解之context-param</a>
                                    <span class="text-muted">bijian1013</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><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/context-param/1.htm">context-param</a>
                                    <div>一.格式定义: 
<context-param>  
	<param-name>contextConfigLocation</param-name>  
	<param-value>contextConfigLocationValue></param-value>  
</context-param> 
作用:该元</div>
                                </li>
                                <li><a href="/article/1497.htm"
                                       title="Web系统常见编码漏洞(开发工程师知晓)" target="_blank">Web系统常见编码漏洞(开发工程师知晓)</a>
                                    <span class="text-muted">Bill_chen</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/fckeditor/1.htm">fckeditor</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a>
                                    <div>1.头号大敌:SQL Injection 
原因:程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果, 
获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 
本质: 
对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。 
示例: 
String query = "SELECT id FROM users</div>
                                </li>
                                <li><a href="/article/1624.htm"
                                       title="【MongoDB学习笔记六】MongoDB修改器" target="_blank">【MongoDB学习笔记六】MongoDB修改器</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
                                    <div>本文首先介绍下MongoDB的基本的增删改查操作,然后,详细介绍MongoDB提供的修改器,以完成各种各样的文档更新操作    MongoDB的主要操作 
 
 show dbs 显示当前用户能看到哪些数据库 
 use foobar 将数据库切换到foobar 
 show collections 显示当前数据库有哪些集合 
 db.people.update,update不带参数,可</div>
                                </li>
                                <li><a href="/article/1751.htm"
                                       title="提高职业素养,做好人生规划" target="_blank">提高职业素养,做好人生规划</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E7%94%9F/1.htm">人生</a>
                                    <div>  
培训讲师是成都著名的企业培训讲师,他在讲课中提出的一些观点很新颖,在此我收录了一些分享一下。注:讲师的观点不代表本人的观点,这些东西大家自己揣摩。 
  
1、什么是职业规划:职业规划并不完全代表你到什么阶段要当什么官要拿多少钱,这些都只是梦想。职业规划是清楚的认识自己现在缺什么,这个阶段该学习什么,下个阶段缺什么,又应该怎么去规划学习,这样才算是规划。 
  </div>
                                </li>
                                <li><a href="/article/1878.htm"
                                       title="国外的网站你都到哪边看?" target="_blank">国外的网站你都到哪边看?</a>
                                    <span class="text-muted">bozch</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF/1.htm">技术</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99/1.htm">网站</a><a class="tag" taget="_blank" href="/search/%E5%9B%BD%E5%A4%96/1.htm">国外</a>
                                    <div>学习软件开发技术,如果没有什么英文基础,最好还是看国内的一些技术网站,例如:开源OSchina,csdn,iteye,51cto等等。 
个人感觉如果英语基础能力不错的话,可以浏览国外的网站来进行软件技术基础的学习,例如java开发中常用的到的网站有apache.org 里面有apache的很多Projects,springframework.org是spring相关的项目网站,还有几个感觉不错的</div>
                                </li>
                                <li><a href="/article/2005.htm"
                                       title="编程之美-光影切割问题" target="_blank">编程之美-光影切割问题</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a>
                                    <div>
package a;

public class DisorderCount {

	/**《编程之美》“光影切割问题”
	 * 主要是两个问题:
	 * 1.数学公式(设定没有三条以上的直线交于同一点):
	 * 两条直线最多一个交点,将平面分成了4个区域;
	 * 三条直线最多三个交点,将平面分成了7个区域;
	 * 可以推出:N条直线 M个交点,区域数为N+M+1。
</div>
                                </li>
                                <li><a href="/article/2132.htm"
                                       title="关于Web跨站执行脚本概念" target="_blank">关于Web跨站执行脚本概念</a>
                                    <span class="text-muted">chenbowen00</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E7%AB%99%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC/1.htm">跨站执行脚本</a>
                                    <div>跨站脚本攻击(XSS)是web应用程序中最危险和最常见的安全漏洞之一。安全研究人员发现这个漏洞在最受欢迎的网站,包括谷歌、Facebook、亚马逊、PayPal,和许多其他网站。如果你看看bug赏金计划,大多数报告的问题属于 XSS。为了防止跨站脚本攻击,浏览器也有自己的过滤器,但安全研究人员总是想方设法绕过这些过滤器。这个漏洞是通常用于执行cookie窃取、恶意软件传播,会话劫持,恶意重定向。在</div>
                                </li>
                                <li><a href="/article/2259.htm"
                                       title="[开源项目与投资]投资开源项目之前需要统计该项目已有的用户数" target="_blank">[开源项目与投资]投资开源项目之前需要统计该项目已有的用户数</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/1.htm">开源项目</a>
                                    <div> 
 
 
        现在国内和国外,特别是美国那边,突然出现很多开源项目,但是这些项目的用户有多少,有多少忠诚的粉丝,对于投资者来讲,完全是一个未知数,那么要投资开源项目,我们投资者必须准确无误的知道该项目的全部情况,包括项目发起人的情况,项目的维持时间..项目的技术水平,项目的参与者的势力,项目投入产出的效益.....</div>
                                </li>
                                <li><a href="/article/2386.htm"
                                       title="oracle alert log file(告警日志文件)" target="_blank">oracle alert log file(告警日志文件)</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E5%91%8A%E8%AD%A6%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6/1.htm">告警日志文件</a><a class="tag" taget="_blank" href="/search/alert+log+file/1.htm">alert log file</a>
                                    <div>The alert log is a chronological log of messages and errors, and includes the following items: 
 
All internal errors (ORA-00600), block corruption errors (ORA-01578), and deadlock errors (ORA-00060) </div>
                                </li>
                                <li><a href="/article/2513.htm"
                                       title="关于 CAS SSO 文章声明" target="_blank">关于 CAS SSO 文章声明</a>
                                    <span class="text-muted">denger</span>
<a class="tag" taget="_blank" href="/search/SSO/1.htm">SSO</a>
                                    <div>由于几年前写了几篇 CAS 系列的文章,之后陆续有人参照文章去实现,可都遇到了各种问题,同时经常或多或少的收到不少人的求助。现在这时特此说明几点: 
 
1.  那些文章发表于好几年前了,CAS 已经更新几个很多版本了,由于近年已经没有做该领域方面的事情,所有文章也没有持续更新。 
 
2. 文章只是提供思路,尽管 CAS 版本已经发生变化,但原理和流程仍然一致。最重要的是明白原理,然后</div>
                                </li>
                                <li><a href="/article/2640.htm"
                                       title="初二上学期难记单词" target="_blank">初二上学期难记单词</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a>
                                    <div>lesson 课 
traffic 交通 
matter 要紧;事物 
happy 快乐的,幸福的 
second 第二的 
idea 主意;想法;意见 
mean 意味着 
important 重要的,重大的 
never 从来,决不 
afraid 害怕 的 
fifth 第五的 
hometown 故乡,家乡 
discuss 讨论;议论 
east 东方的 
agree 同意;赞成 
bo</div>
                                </li>
                                <li><a href="/article/2767.htm"
                                       title="uicollectionview 纯代码布局, 添加头部视图" target="_blank">uicollectionview 纯代码布局, 添加头部视图</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/Collection/1.htm">Collection</a>
                                    <div>#import <UIKit/UIKit.h>

@interface myHeadView : UICollectionReusableView
{
    UILabel   *TitleLable;
}
-(void)setTextTitle;
@end
 
#import "myHeadView.h"

@implementation m</div>
                                </li>
                                <li><a href="/article/2894.htm"
                                       title="N 位随机数字串的 JAVA 生成实现" target="_blank">N 位随机数字串的 JAVA 生成实现</a>
                                    <span class="text-muted">FX夜归人</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E6%9C%BA%E6%95%B0/1.htm">随机数</a><a class="tag" taget="_blank" href="/search/Random/1.htm">Random</a>
                                    <div>/**
 * 功能描述 随机数工具类<br />
 * @author FengXueYeGuiRen
 * 创建时间 2014-7-25<br />
 */
public class RandomUtil {
    //  随机数生成器
    private static java.util.Random random = new java.util.R</div>
                                </li>
                                <li><a href="/article/3021.htm"
                                       title="Ehcache(09)——缓存Web页面" target="_blank">Ehcache(09)——缓存Web页面</a>
                                    <span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%E9%A1%B5%E9%9D%A2%E7%BC%93%E5%AD%98/1.htm">页面缓存</a>
                                    <div>页面缓存 
目录 
1       SimplePageCachingFilter 
1.1      calculateKey 
1.2      可配置的初始化参数 
1.2.1     cach</div>
                                </li>
                                <li><a href="/article/3148.htm"
                                       title="spring中少用的注解@primary解析" target="_blank">spring中少用的注解@primary解析</a>
                                    <span class="text-muted">jackyrong</span>
<a class="tag" taget="_blank" href="/search/primary/1.htm">primary</a>
                                    <div>这次看下spring中少见的注解@primary注解,例子 
 
 

@Component
public class MetalSinger implements Singer{

    @Override
    public String sing(String lyrics) {
        return "I am singing with DIO voice</div>
                                </li>
                                <li><a href="/article/3275.htm"
                                       title="Java几款性能分析工具的对比" target="_blank">Java几款性能分析工具的对比</a>
                                    <span class="text-muted">lbwahoo</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>Java几款性能分析工具的对比 
摘自:http://my.oschina.net/liux/blog/51800 
  
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能</div>
                                </li>
                                <li><a href="/article/3402.htm"
                                       title="JVM参数配置大全" target="_blank">JVM参数配置大全</a>
                                    <span class="text-muted">nickys</span>
<a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a>
                                    <div>JVM参数配置大全 
 
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -</div>
                                </li>
                                <li><a href="/article/3529.htm"
                                       title="搭建 CentOS 6 服务器(14) - squid、Varnish" target="_blank">搭建 CentOS 6 服务器(14) - squid、Varnish</a>
                                    <span class="text-muted">rensanning</span>
<a class="tag" taget="_blank" href="/search/varnish/1.htm">varnish</a>
                                    <div>(一)squid 
 
安装 
 
# yum install httpd-tools -y
# htpasswd -c -b /etc/squid/passwords squiduser 123456
# yum install squid -y 
 
设置 
 
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# vi /etc/</div>
                                </li>
                                <li><a href="/article/3656.htm"
                                       title="Spring缓存注解@Cache使用" target="_blank">Spring缓存注解@Cache使用</a>
                                    <span class="text-muted">tom_seed</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>参考资料 
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ 
http://swiftlet.net/archives/774 
  
缓存注解有以下三个: 
@Cacheable      @CacheEvict     @CachePut</div>
                                </li>
                                <li><a href="/article/3783.htm"
                                       title="dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误" target="_blank">dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误</a>
                                    <span class="text-muted">xp9802</span>

                                    <div>java.lang.NoClassDefFoundError: org/jaxen/JaxenExc 
关键字: java.lang.noclassdeffounderror: org/jaxen/jaxenexception 
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式 
执行时却抛出以下异常: 
Exceptio</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>