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/1902609856653750272.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/%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常用命令与权限理解总结-CSDN博客)来继续说明一些常见的指令。5.进程管理详解ps-显示进程状态ps命令用于显示当前运行的进程信息。详细用法:ps:显示当前终端的进程ps-e或ps-A:显示所有进程ps-f:全格式列表ps-ef:显示所有进程的完整格式ps-uusername:显示指定用户的进程ps-aux:BSD风格显示所有进程详情ps-axjf:树状结构显示进程(显示父子</div>
                    </li>
                    <li><a href="/article/1902607461106380800.htm"
                           title="常用的git和linux命令有哪些?" target="_blank">常用的git和linux命令有哪些?</a>
                        <span class="text-muted">海姐软件测试</span>
<a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><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/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a>
                        <div>一、Git常用命令1.仓库与基础操作命令作用常用参数/示例gitinit初始化新仓库gitinitgitclone克隆远程仓库gitclonehttps://github.com/user/repo.gitgitstatus查看仓库状态gitstatus-s(简洁模式)gitadd添加文件到暂存区gitadd.(添加所有文件)gitaddfile1.txtgitcommit提交代码gitcommi</div>
                    </li>
                    <li><a href="/article/1902599566889381888.htm"
                           title="基于 Websoft9 平台的 Odoo 教学实践:助力智能制造、物流与财务会计专业教师提升教学效果" target="_blank">基于 Websoft9 平台的 Odoo 教学实践:助力智能制造、物流与财务会计专业教师提升教学效果</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a>
                        <div>Websoft9作为企业级开源软件的自动化部署与管理平台,为高校智能制造、物流与财务会计等专业提供了完整的Odoo(开源ERP)教学解决方案。以下从部署、维护及功能扩展三方面解析其核心价值:一、部署:开箱即用的企业级业务场景模拟一键构建复杂业务架构Websoft9预置了Odoo全模块集成模板,部署时可自动关联PostgreSQL数据库、Nginx负载均衡及Let'sEncryptSSL证书,还原真</div>
                    </li>
                    <li><a href="/article/1902594344465002496.htm"
                           title="从0到1,在Ubuntu 20.04 下编译 openWRT" target="_blank">从0到1,在Ubuntu 20.04 下编译 openWRT</a>
                        <span class="text-muted">姓张名江叫大江</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E8%B7%AF%E7%94%B1/1.htm">软路由</a><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/openwrt/1.htm">openwrt</a>
                        <div>从0到1,在Ubuntu20.04下编译openWRT/LELD/老毛子固件(跳过八大坑,你就是赢家!)0.申明1.Virtualbox下载与安装2.Linux系统下载与安装2.1Ubuntu下载2.2在Virtualbox中安装Ubuntu3.固件编译4.老毛子固件编译5.后话0.申明本教程所用的软件及代码均是免费开源的,请大家自觉遵守相关的开源协议。在此向开源软件及开源代码的作者们致敬。因本人</div>
                    </li>
                    <li><a href="/article/1902593081744617472.htm"
                           title="Ubuntu下编译OpenWrt的详细教程" target="_blank">Ubuntu下编译OpenWrt的详细教程</a>
                        <span class="text-muted">艾丽丝的爱情</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/%E7%BC%96%E7%A8%8B/1.htm">编程</a>
                        <div>OpenWrt是一个基于Linux的嵌入式操作系统,常用于路由器等网络设备。本文将为您提供在Ubuntu操作系统下编译OpenWrt的完整教程。步骤1:安装必要的软件包首先,我们需要安装一些必要的软件包来支持OpenWrt的编译过程。在终端中运行以下命令来安装这些软件包:sudoaptupdatesudoaptinstallbuild-essentiallibncurses5-devzlib1g-</div>
                    </li>
                    <li><a href="/article/1902590049283796992.htm"
                           title="nginx性能优化有哪些方式?" target="_blank">nginx性能优化有哪些方式?</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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>0.运维干货分享软考高级系统架构设计师备考学习资料软考高级网络规划设计师备考学习资料KubernetesCKA认证学习资料分享信息安全管理体系(ISMS)制度模板分享免费文档翻译工具(支持word、pdf、ppt、excel)PuTTY中文版安装包MobaXterm中文版安装包pinginfoview网络诊断工具中文版Nginx是一个高性能的HTTP服务器和反向代理服务器,但在高并发场景下,仍然有</div>
                    </li>
                    <li><a href="/article/1902550581134815232.htm"
                           title="零基础怎么开始学网络安全(非常详细)零基础入门到精通,收藏这一篇就够了" target="_blank">零基础怎么开始学网络安全(非常详细)零基础入门到精通,收藏这一篇就够了</a>
                        <span class="text-muted">程序员羊羊</span>
<a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/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/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>一、学习建议1.了解基础概念:开始之前,了解网络安全的基本概念和术语是很重要的。你可以查找网络安全入门教程或在线课程,了解网络安全领域的基本概念,如黑客、漏洞、攻击类型等。2.网络基础知识:学习计算机网络基础知识,了解网络通信原理,不同网络协议(如TCP/IP)的工作方式,以及网络拓扑结构等。3.操作系统知识:了解常见的操作系统,特别是Windows和Linux。掌握基本的命令行操作和系统管理技能</div>
                    </li>
                    <li><a href="/article/1902550454928207872.htm"
                           title="Linux篇1-初识Linux" target="_blank">Linux篇1-初识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>
                        <div>1.Linux能干什么Linux能够进行各种语言的开发工作,基本主要以后端语言为主C++,JAVA,python;Linux能进行各种指令操作,从而完成各种的文件相关的管理工作2.Linux基本指令2.1ls指令在Linux中,以.开头的文件,叫做隐藏文件;ls-a显示隐藏文件隐藏文件:Linux配置文件,可以隐藏起来,防止误操作,起到保护作用;ls-l列出文件的详细信息-d将目录象文件一样显示,</div>
                    </li>
                    <li><a href="/article/1902537084787290112.htm"
                           title="Linux GDB print pretty" target="_blank">Linux GDB print pretty</a>
                        <span class="text-muted">小米人er</span>
<a class="tag" taget="_blank" href="/search/%E6%88%91%E7%9A%84%E5%8D%9A%E5%AE%A2/1.htm">我的博客</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/gdb/1.htm">gdb</a>
                        <div>在GDB(GNU调试器)中,setprintprettyon是一个用于格式化结构体和联合体输出的命令。它的核心作用是让GDB在打印复杂数据类型(如结构体、联合体或类)时,以更易读的缩进和换行格式显示内容,而不是将所有字段挤在一行。以下是详细解释:1.命令的作用默认行为:默认情况下,GDB打印结构体或联合体时,所有字段会显示在一行中,例如:(gdb)pmy_struct$1={field1=42,f</div>
                    </li>
                    <li><a href="/article/1902527875404328960.htm"
                           title="mkcert 极简安装及使用步骤" target="_blank">mkcert 极简安装及使用步骤</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/ssl/1.htm">ssl</a>
                        <div>1.安装mkcertmacOSbrewinstallmkcertLinuxsudoaptinstalllibnss3-toolscurl-JLO"https://dl.filippo.io/mkcert/latest?for=linux/amd64"chmod+xmkcert-v*-linux-amd64sudomvmkcert-v*-linux-amd64/usr/local/bin/mkcer</div>
                    </li>
                    <li><a href="/article/1902526112571912192.htm"
                           title="Nginx限流与鉴权(Nginx Traffic Limiting and Authentication)" target="_blank">Nginx限流与鉴权(Nginx Traffic Limiting and Authentication)</a>
                        <span class="text-muted">Linux运维老纪</span>
<a class="tag" taget="_blank" href="/search/%E5%A5%8B%E5%8A%9B%E6%8B%BC%E6%90%8F/1.htm">奋力拼搏</a><a class="tag" taget="_blank" href="/search/%E8%AE%A9%E4%BC%81%E4%B8%9A%E7%BD%91%E7%AB%99%E6%9B%B4%E5%A5%BD/1.htm">让企业网站更好</a><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><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/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%E5%BC%80%E5%8F%91/1.htm">运维开发</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>Nginx限流与鉴权:2分钟搞定流量洪峰与安全防护在现代互联网架构中,Nginx已经成为了非常重要的组件,广泛应用于负载均衡、反向代理以及静态资源的服务。除了这些基本功能,Nginx还提供了丰富的配置选项来处理限流(RateLimiting)和鉴权(Authentication)。这两项技术对于确保服务的可用性和安全性至关重要,特别是在高并发和敏感数据访问场景中。本文将详细介绍如何在Nginx中配</div>
                    </li>
                    <li><a href="/article/1902515023561945088.htm"
                           title="一款适用于 Windows 、Mac 和 Linux 的屏幕录制与截图软件。" target="_blank">一款适用于 Windows 、Mac 和 Linux 的屏幕录制与截图软件。</a>
                        <span class="text-muted">Mbblovey</span>
<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%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6/1.htm">开源软件</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%84%91/1.htm">电脑</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>Screenrec是一款适用于Windows、Mac和Linux的屏幕录制与截图软件。软件本身可以免费使用,只需要登录即可使用全部功能。当咱们打开软件后,电脑右边就会出现一个小漂浮窗。点击上方的图标就能一键开启视频录制、截屏等功能。Screenrec很有意思的是可以在开始录制屏幕的同时录制咱们的网络摄像头视频和麦克风音频。在录制完成后大家可能会发现右下角软件会给大家发出一个提醒。这就是它的另一个特</div>
                    </li>
                    <li><a href="/article/1902512493654241280.htm"
                           title="Linux安装Anaconda和Jupyter" target="_blank">Linux安装Anaconda和Jupyter</a>
                        <span class="text-muted">硬水果糖</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/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/jupyter/1.htm">jupyter</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>一、了解Anaconda和Jupyter引言:Anaconda是一个流行的开源数据科学平台,广泛用于数据分析、机器学习、人工智能等领域。它是一个集成了大量科学计算和数据科学工具的Python和R编程语言环境。Anaconda的主要目标是简化数据科学和机器学习的开发流程,提供一个易于安装和管理的环境。而预装了大量常用的Python和R库,这些库涵盖了数据科学的各个方面,包括:数据分析:Pandas、</div>
                    </li>
                    <li><a href="/article/1902512115617427456.htm"
                           title="python-56-基于Vue和Flask进行前后端分离的项目开发示例实战" target="_blank">python-56-基于Vue和Flask进行前后端分离的项目开发示例实战</a>
                        <span class="text-muted">皮皮冰燃</span>
<a class="tag" taget="_blank" href="/search/python3/1.htm">python3</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a>
                        <div>文章目录1创建Vue前端项目1.1运行demo1.2实现需求2flask部署上述dist(前后端未分离)2.1代码app.py2.2运行访问3nginx部署(前后端分离)3.1nginx前端服务3.3.1windows安装nginx3.3.2修改nginx.conf配置文件3.3.3启动nginx3.3.3停止nginx3.2启动后端服务3.2.1app.py(去除前端渲染)3.2.2启动flas</div>
                    </li>
                    <li><a href="/article/1902511611705356288.htm"
                           title="glm-4v-9b 踩坑(4-bit量化,bitsandbytes 异常)" target="_blank">glm-4v-9b 踩坑(4-bit量化,bitsandbytes 异常)</a>
                        <span class="text-muted">phynikesi</span>
<a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/glm-4v-9b%E8%B8%A9%E5%9D%91/1.htm">glm-4v-9b踩坑</a><a class="tag" taget="_blank" href="/search/bitsandbytes%E5%BC%82%E5%B8%B8/1.htm">bitsandbytes异常</a>
                        <div>前言本文只分享了自己在体验glm-4v-9b过程中遇到的问题,没有涉及对模型本身以及更多问题的分析,大家可先看问题描述,再决定是否看下去。实验平台:linux系统,RTXA4000。嫌麻烦的可以直接到文未看结论。问题描述16g显卡难以加载模型bitsandbytes异常,模型无法运行加载问题本人设备有限,引用一下别人完整加载模型的数据,大约18.9g。用16g显卡直接报OOM,用8-bit加载还是</div>
                    </li>
                    <li><a href="/article/1902509463449956352.htm"
                           title="高通成都linux engineer intern 一面面经" target="_blank">高通成都linux engineer intern 一面面经</a>
                        <span class="text-muted">han_xue_feng</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>题解|#KNN算法#在*******里有个叫《题解--2024华南理工校赛.pdf》的文件高通成都linuxengineerintern一面面经两个面试官共25min就结束了,面试氛围还可以,问的很快。1.自我介绍2.问对高通了解多少3.对牛客鼠人传(第四十四集,2024/4/22)刷题:尝试补昨天D,题解看了半天似懂非懂,遂放弃改天再补。做题老是把复杂的问题想简单,简单的问题想复京东物流管理培训</div>
                    </li>
                    <li><a href="/article/1902498612739371008.htm"
                           title="Fastdfs-V5.11使用docker部署集群(X86)" target="_blank">Fastdfs-V5.11使用docker部署集群(X86)</a>
                        <span class="text-muted">礁之</span>
<a class="tag" taget="_blank" href="/search/Linux%E7%B3%BB%E5%88%97/1.htm">Linux系列</a><a class="tag" taget="_blank" href="/search/dfs/1.htm">dfs</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>文章目录一、Fastdfs介绍二、部署信息三、步骤tracker/storage机器的compose内容storage机器的composetracker与storage启动目录层级与配置文件client.confstorage.conf查看集群信息测试测试集群扩容与缩减nginx配置一、Fastdfs介绍FastDFS是一款高性能的分布式文件系统,特别适合用于存储和管理大量的文件二、部署信息使用d</div>
                    </li>
                    <li><a href="/article/1902480744907862016.htm"
                           title="基于oracle linux的 DBI/DBD 标准化安装文档(三)" target="_blank">基于oracle linux的 DBI/DBD 标准化安装文档(三)</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                        <div>一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak</div>
                    </li>
                    <li><a href="/article/1902473763849564160.htm"
                           title="linux find 命令超全完整指南" target="_blank">linux find 命令超全完整指南</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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/find%E5%91%BD%E4%BB%A4/1.htm">find命令</a>
                        <div>linuxfind命令超全完整指南一、基础语法与工作逻辑find[起始路径][表达式][操作]起始路径:指定搜索根目录,默认为当前目录.。支持多路径(如find/etc/var)表达式:定义搜索条件(如文件名、类型、时间等)。操作:对匹配文件执行命令(如删除、压缩等)。二、核心查找条件详解1.按名称查找精确匹配:-name"文件名"find/home-name"example.txt"#精确查找文</div>
                    </li>
                    <li><a href="/article/1902473384789340160.htm"
                           title="docker-compose 部署nginx和jdk步骤" target="_blank">docker-compose 部署nginx和jdk步骤</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/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>**yum安装jdk**1、yum-ylistjava*查看可安装java版本选择安装java-1.8.0-openjdk-accessibility.x86_642、yuminstall-yjava-1.8.0-openjdk-devel.x86_64耐心等待安装完成即可3、java-version即可查看当前安装的java版本4、yum安装的jdk,被安装到哪里去了?你可以在**/usr/li</div>
                    </li>
                    <li><a href="/article/1902467838279479296.htm"
                           title="docker-compose install nginx(解决fastgpt跨区域)" target="_blank">docker-compose install nginx(解决fastgpt跨区域)</a>
                        <span class="text-muted">CIAS</span>
<a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/fastgpt/1.htm">fastgpt</a>
                        <div>CORS前言CORS(Cross-OriginResourceSharing,跨源资源共享)是一种安全措施,它允许或拒绝来自不同源(协议、域名、端口任一不同即为不同源)的网页访问另一源中的资源。它的主要作用如下:同源策略限制:Web浏览器的同源策略限制了从一个源加载的文档或脚本如何与另一个源的资源进行交互。这意味着默认情况下,浏览器会阻止一个源(例如,http://example.com)的网页向</div>
                    </li>
                    <li><a href="/article/1902460906852380672.htm"
                           title="USB摄像头数据获取——libuvc" target="_blank">USB摄像头数据获取——libuvc</a>
                        <span class="text-muted">jbjhzstsl</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>优点:跨平台支持:libuvc是一个跨平台的库,可以在不同的操作系统上使用,包括Linux、Windows和macOS等。简单易用:libuvc提供了一套简单易用的API,使得使用摄像头设备变得更加简便,尤其适合快速开发原型和简单应用。封装性好:libuvc封装了许多底层细节,如视频格式转换、缓冲区管理等,简化了开发过程。缺点:功能有限:相对于V4L2,libuvc提供的功能相对有限,可能无法满足</div>
                    </li>
                    <li><a href="/article/1902435189343186944.htm"
                           title="Linux:kubeadm⽅式部署k8s集群" target="_blank">Linux:kubeadm⽅式部署k8s集群</a>
                        <span class="text-muted">陈婷婷1</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</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><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
                        <div>1.kubeadm创建环境k8s-master192.168.150.11k8s-node1192.168.150.12k8s-node2192.168.150.13三台节点都安装docker#Step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config</div>
                    </li>
                    <li><a href="/article/1902433804086210560.htm"
                           title="《Linux运维总结:基于银河麒麟V10+ARM64架构部署多机elasticsearch7.17.21分布式集群+单机kibana7.17.21二进制版ssl集群》" target="_blank">《Linux运维总结:基于银河麒麟V10+ARM64架构部署多机elasticsearch7.17.21分布式集群+单机kibana7.17.21二进制版ssl集群》</a>
                        <span class="text-muted">东城绝神</span>
<a class="tag" taget="_blank" href="/search/%E3%80%8ALinux%E8%BF%90%E7%BB%B4%E5%AE%9E%E6%88%98%E6%80%BB%E7%BB%93%E3%80%8B/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/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a>
                        <div>总结:整理不易,如果对你有帮助,可否点赞关注一下?更多详细内容请参考:Linux运维实战总结一、背景elasticsearch是一个分布式、实时、高性能的搜索和分析引擎,它广泛应用于企业级搜索、日志分析、实时数据处理等领域。随着elasticsearch的广泛应用,安全性变得越来越重要。这里将从安全策略和访问控制两方面来部署elasticsearch集群安全策略涉及到数据安全、访问安全和操作安全等</div>
                    </li>
                    <li><a href="/article/1902431026639073280.htm"
                           title="Rocky Linux安装部署Elasticsearch(ELK日志服务器)_rockylinux elk" target="_blank">Rocky Linux安装部署Elasticsearch(ELK日志服务器)_rockylinux elk</a>
                        <span class="text-muted">2401_83739411</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/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/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a>
                        <div>一、Elasticsearch的简介Elasticsearch是一个强大的开源搜索和分析引擎,可用于实时处理和查询大量数据。它具有高性能、可扩展性和分布式特性,支持全文搜索、聚合分析、地理空间搜索等功能,是构建实时应用和大规模数据分析平台的首选工具。二、RockyLinux系统安装链接:VMwareWorkstation下载安装(含秘钥)链接:VMwareWorkstation创建虚拟机链接:Ro</div>
                    </li>
                    <li><a href="/article/1902430270510919680.htm"
                           title="宇树科技纯技能要求总结" target="_blank">宇树科技纯技能要求总结</a>
                        <span class="text-muted">极梦网络无忧</span>
<a class="tag" taget="_blank" href="/search/%E6%9D%82%E8%B0%88/1.htm">杂谈</a><a class="tag" taget="_blank" href="/search/%E7%A7%91%E6%8A%80/1.htm">科技</a>
                        <div>一、嵌入式开发与硬件设计核心技能嵌入式开发:精通C/C++,熟悉STM32、ARM开发熟悉LinuxBSP开发及驱动框架(SPI/UART/USB/FLASH/Camera/GPS/LCD)掌握主流平台(英伟达、全志、瑞芯微等)硬件设计:精通数字/模拟电路设计,熟悉PCB绘制工具(Altium等)掌握MOS驱动电路、变压器设计及EMC优化熟悉制板/贴片流程及焊接扩展技能电机控制:熟悉有感FOC算法</div>
                    </li>
                    <li><a href="/article/1902428751594057728.htm"
                           title="linux网络编程(二)" target="_blank">linux网络编程(二)</a>
                        <span class="text-muted">Zhuai-行淮</span>
<a class="tag" taget="_blank" href="/search/linux%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/1.htm">linux网络编程</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>day14多路IO转接:select:poll:相比select相差不多intpoll(structpollfd*fds,nfds_tnfds,inttimeout);-----fds:监听的文件描述符【数组】------structpollfd{intfd:待监听的文件描述符shortevents:待监听的文件描述符对应的监听事件取值:POLLIN、POLLOUT、POLLERR可读事件:POL</div>
                    </li>
                    <li><a href="/article/1902428499352809472.htm"
                           title="2025实战指南:基于VMware 17与Linux的Dify私有化部署——从零构建企业级AI开发平台" target="_blank">2025实战指南:基于VMware 17与Linux的Dify私有化部署——从零构建企业级AI开发平台</a>
                        <span class="text-muted">Tec_Bit</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a>
                        <div>一、环境准备与系统配置1.1VMware17虚拟机创建‌新建虚拟机‌:选择“典型”安装模式,指定CentOS7镜像文件(建议使用阿里云镜像源获取最新稳定版)‌1‌硬件资源配置‌:内存:≥4GB(推荐8GB)处理器:2核以上磁盘空间:≥40GB(选择“将虚拟磁盘存储为单个文件”)安装完系统使用远程工具连接centos,我这里使用的是华为的远程工具codearts,纯属个人习惯!!!其他工具也可以使用</div>
                    </li>
                    <li><a href="/article/1902422060517355520.htm"
                           title="(一)linux下配置jenkins--安装" target="_blank">(一)linux下配置jenkins--安装</a>
                        <span class="text-muted">xiaoxinluhua</span>
<a class="tag" taget="_blank" href="/search/jenkins%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2/1.htm">jenkins配置与部署</a><a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a>
                        <div>前提:maven与jdk已经安装成功1下载jenkins链接:http://jenkins-ci.org/jenkins-1.619-1.1.noarch.rpmwget-O/etc/yum.repos.d/jenkins.repohttp://pkg.jenkins-ci.org/redhat/jenkins.reporpm--importhttp://pkg.jenkins-ci.org/re</div>
                    </li>
                    <li><a href="/article/1902421046355619840.htm"
                           title="清晰易懂的Python安装与配置教程" target="_blank">清晰易懂的Python安装与配置教程</a>
                        <span class="text-muted">Tee xm</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>初学者也能看懂的Python安装与配置教程本教程将手把手教你安装Python,并配置国内镜像源和自定义依赖包缓存位置,即使你是零基础小白,也能轻松完成!一、准备工作操作系统:Windows10/11、macOS或Linux。下载工具:浏览器(推荐Chrome或Edge)。存储空间:至少预留500MB可用空间。二、安装Python1.下载Python访问Python官网下载页面:https://ww</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>