Py学习  »  NGINX

Nginx和tomcat整合

Dragon-wei • 4 年前 • 243 次点击  

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= J A V A H O M E / b i n : JAVA_HOME/jre/bin:$PATH

export CLASSPATH=. C L A S S P A T H : JAVA_HOME/lib: J A V A H O M E / j r e / l i b : 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服务器组!
}
1568422756401

启动nginx并测试

/ usr / local / nginx / sbin / nginx -t
/ usr / local / nginx / sbin / nginx -s stop
/ usr / local / nginx / sbin / nginx
1568423352203

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 单位为分钟。
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52156
 
243 次点击