当前位置: > Linux服务器 > nginx >

Nginx和tomcat整合

时间:2019-12-31 11:54来源:linux.it.net.cn 作者:IT
nginx的优点及功能
nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP / POP3 / SMTP代理服务器。它主要具有以下优点:
 
高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2〜3万并发连接数。
内存消耗少:在3万并发连接下,开启的10个Nginx进程才消耗150M内(15M * 10 = 150M)。
配置文件非常简单:风格跟程序一样通俗易懂。
成本低廉:Nginx为开源软件,可以免费使用。而购买F5 BIG-IP,NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。
支持重写重写规则:能够根据域名,URL的不同,将HTTP请求分到不同的主机服务器组。
内置的健康检查功能:如果Nginx Proxy先前的某台Web服务器停机机了,不会影响前端访问。
节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。
稳定性高:用于反向代理,停机机的概率微乎其微
由于nginx的性能很好,因此国内很多大公司都在使用,最主要的原因也是nginx是开源免费的。除了上述描述的各种功能,项目中主要用nginx来实现以下三个功能:
 
动静分离
反向代理
负载均衡
网页,图片缓存
13.1.2 nginx负载均衡主要有以下五种策略
最小(最小)每个请求按时间顺序逐一分配到不同的服务器,如果将服务器降下,能自动剔除。
weight指定预定几率,weight和访问比率成正比,用于预定服务器性能不均的情况。
ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个主机服务器,可以解决会话的问题。
fair(第三方)通过服务器的响应时间来分配请求,响应时间短的优先分配。
url_hash(第三方)通过访问url的哈希结果来分配请求,使每个URL定向到同一个放置服务器,从而使服务器为缓存时比较有效。
 
安装Nginx
yum -y install gcc gcc-c ++ pcre-devel openssl-devel openssl wget
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix = / usr / local / nginx
使
进行安装
 
安装Tomcat
安装jdk环境并测试
[root@ c6s02 ~]# tail -5 /etc/profile
####java_env####
export JAVA_HOME=/usr/local/jdk1.8.0_60
export PATH=JAVAHOME/bin:JAVA_HOME/bin:JAVA 
H
 OME/bin:JAVA_HOME/jre/bin:$PATH
 
export CLASSPATH=.CLASSPATH:CLASSPATH:CLASSPATH:JAVA_HOME/lib:JAVAHOME/jre/lib:JAVA_HOME/jre/lib:JAVA 
H
 OME/jre/lib:JAVA_HOME/lib/tools.jar
 
source /etc/profile
 
[root@ c6s02 ~]# java -version
java version “1.8.0_60”
Java™ SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot™ 64-Bit Server VM (build 25.60-b23, mixed mode)
 
安装tomcat(两个子系统)
tar -zxvf apache-tomcat-7.0.47.tar.gz
 
#新建tomcat01项目
mkdir -p /opt/tomcat01
cp -a apache-tomcat-7.0.47/* /opt/tomcat01/
 
#新建tomcat02项目,并修改三处端口为18005,18080,18009
mkdir -p /opt/tomcat021
cp -a apache-tomcat-7.0.47/* /opt/tomcat02/
#手动创建测试页并测试
 
echo ‘this is tomcat01’ >/opt/tomcat01/webapps/ROOT/index.jsp
echo ‘this is tomcat02’ >/opt/tomcat02/webapps/ROOT/index.jsp
curl 10.0.0.22:8080/index.jsp
curl 10.0.0.22:18080/index.jsp
 
通过Nginx和Tomcat结合
安装nginx并修改Nignx配置文件
 
vim /usr/local/nginx/conf/nginx.conf
在HTTP模块中添加:
 
upstream tomcat { #定义服务器组tomcat
server 10.0.0.22:8080; #定义后Tomcat端服务器
server 10.0.0.22:18080;
}
在server模块中添加:
 
location ~ .jsp$ { #URL正则匹配,匹配jsp结尾的所有URL
proxy_pass http://tomcat; #proxy_pass反向代理参数,将匹配到的请求反向代理到tomcat服务器组!
}
 
 
启动nginx并测试
 
/ usr / local / nginx / sbin / nginx -t
/ usr / local / nginx / sbin / nginx -s stop
/ usr / local / nginx / sbin / nginx
 
 
Tomcat性能优化
tomcat内存优化
linux修改TOMCAT_HOME / bin / catalina.sh,在前面加入
 
JAVA_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128mM -XX:MaxPermSize=1024m"
-server:一定要作为第一个参数,在多个CPU时性能佳-Xms:初始堆大小,使用的最小内存,cpu性能高时此值应设的一些-Xm:java堆大小, -XX:PermSize:设置内存的永久保存区域-XX:MaxPermSize使用最大的内存,上面的两个值是分配JVM的最大和最大内存,因此硬件物理内存的大小。 :设置最大内存的永久保存区域
 
tomcat线程优化
目的:提高并发能力
 
修改tomcat配置文件server.xml
 
 
maxThreads =“ 600”#最大线程数minSpareThreads =“ 100”#初始化时创建的线程数maxSpareThreads =“ 500”#重新创建的线程超过这个值,Tomcat就会关闭不再需要的套接字线程。acceptCount =“ 700 “#指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理一体中的请求数,超过这个数的请求将不予处理
 
设置会话过期时间
conf \ web.xml中通过参数指定:
 
180 单位为分钟。
 


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容