设为首页 收藏本站
查看: 1006|回复: 0

[经验分享] Linux深入篇之四:配置Nginx+Tomcat动静分离架构

[复制链接]

尚未签到

发表于 2018-12-7 06:01:46 | 显示全部楼层 |阅读模式
Linux深入篇之四:配置Nginx+Tomcat动静分离架构

  Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是:动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat、Resin处理动态页面
  动静分离从目前实现角度来讲大致分为两种:
  一种方法是:纯粹的把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案
  另一种方法:就是动态跟静态文件混合在一起发布,通过nginx来分开。

  通过expires参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体Expires定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。
  此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用Expires来缓存),我这里设置3d,表示在这3天之内访问这个URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,则直接从服务器重新下载,返回状态码200。
  安装tomcat之前需要安装jdk (Java Development Kit) 是 Java 语言的软件开发工具包(SDK))。
  一:安装JDK
  1、解压jdk文件并移动到指定的目录

  2、配置java环境变量,在vim /etc/profile 文件(开机检查文件)添加如下语句:
  export  JAVA_HOME=/usr/java/jdk1.7.0_25/
  export  CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  export  PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
  3、使环境变量立刻生效:source   /etc/profile
  查看java版本:java   -version
  http://s3.运维网.com/wyfs02/M01/72/51/wKioL1Xgk5jDThaDAAClxeOEr8E985.jpg
  显示版本为1.7.0_25,证明安装成功!
  Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,Tomcat本身也是一个HTTP服务器,可以单独使用,apache是一个以C语言编写的HTTP服务器。Tomcat主要用来解析JSP语言。目前最新版本为8.0。
  二、配置tomcat
  1、下载并解压到指定的目录:tar xzf apache-tomcat-7.0.63.tar.gz
  2、重命名文件名:mv apache-tomcat-7.0.63  tomcat
  3、并将该文件移动到:mv /soft/tomcat  /usr/local/
  4、启动tomcat,命令为:/usr/local/tomcat/bin/startup.sh
  查看ps  -ef |grep tomcat 进程及端口是否存在:

  5、通过页面访问可以看到tomcat默认测试页面:

  6、tomcat常用目录
  tomcat默认的发布目录:/usr/local/tomcat/webapps/ROOT/
  主配置文件:/usr/local/tomcat/conf/server.xml
  tomcat默认http端口:8080
  三、测试单台tomcat的访问页面
  1、移除默认发布目录的所有内容到另一个目录中,


  2、自定义一个发布目录的jsp测试页面:

  

tomcat_1 JSP page

%
%

  3、打开这个测试页面:

这个画面是默认网站,怎么来创建一个自己的网站页面呢,定义自己的发布目录,方法如下:在server.xml配置文件末尾加入如下行:
  
  http://s3.运维网.com/wyfs02/M01/72/56/wKioL1XhZrSgAm-OAAHSRkgVDsA590.jpg
  在/data/webapps/www目录下,创建自己的jsp代码,重启tomcat即可访问。

  http://s3.运维网.com/wyfs02/M00/72/59/wKiom1XhZcXTpKaaAAGmc9oB8GE587.jpg
  
  四、tomcat默认端口
  tomcat默认端口有3个:
  http:8080
  shutdown:8005
  AJP:8009



  2、分别编辑以下配置文件,并修改默认的端口
  vi /usr/local/tomcat1/conf/server.xml
  vi /usr/local/tomcat2/conf/server.xml
  3、分别启动3个tomat,

  4、查看端口

  五、配置Nginx-tomcat动静分离架构
在2台tomcat上配置发布目录,用于测试多个tomcat效果
  1、查看两台tomcat的本地测试页面:


  2、配置nginx来负载均衡2台tomcat
nginx.conf的配置文件:
http://s3.运维网.com/wyfs02/M00/72/C4/wKiom1Xs-2axNXR2AAOEQ7mUNWI675.jpg
调用vhosts.conf文件,
http://s3.运维网.com/wyfs02/M02/72/C1/wKioL1Xs_avTuXXCAARSsfRk3xg577.jpg
打开ngixn测试页面,测试效果:轮训后端的jsp测试页面!


如果要访问前端Nginx的静态页面,
http://s3.运维网.com/wyfs02/M02/72/C2/wKioL1XtChaSbgjTAAGCtlH8u8o946.jpg
  测试结果:
  1、apache、nginx都用来处理html、css、js等静态页面请求的内容!
  2、php处理php语言!
  3、tomcat、java处理jsp!
  实时动静分离、静态页面走前段、动态页面走后端、提升页面的处理效率!
  六、Tomcat优化
  线上环境使用默认tomcat配置文件,性能很一般,为了满足大量用户的访问,需要对tomcat进行参数性能优化,具体优化的地方如下:
Linux内核的优化
服务器资源配置的优化
Tomcat参数优化
配置负载集群优化
这里着重讲解tomcat参数的优化:server.xml文件,关闭DNS查询、配置最大并发等参数。
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
  当然这些值都不是越大越好,需要根据实际情况来设定。可以基于测试的基础上来不断的调优分析。

Catalina.sh JVM参数优化,添加如下内容:
CATALINA_OPTS="$CATALINA_OPTS –Xms4000M –Xmx4000M –Xmn1000M -XX:SurvivorRatio=4-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=82-DLOCALE=UTF-16LE  -DRAMDISK=/-DUSE_RAM_DISK=ture -DRAM_DISK=true"
把以上参数添加进来:vim /usr/local/tomcat1/bin/catalina.sh
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin; then
  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`
  [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
  [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
  CATALINA_OPTS="$CATALINA_OPTS –Xs500M –Xx1000M –Xmn100M -XX:SurvivorRatio=4-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=82-DLOCALE=UTF-16LE  -DRAMDISK=/-DUSE_RAM_DISK=ture -DRAM_DISK=true"
为了提升整个网站性能,还需要在tomcat前面架设nginx web反向代理服务器,用以提高用户高速访问。
http://s5.运维网.com/wyfs02/M00/77/0A/wKioL1ZhXDORbOyRAAFwWP7dFJU815.png
http://s5.运维网.com/wyfs02/M01/77/0B/wKioL1ZhXZSDhjIiAAEp8scnlA0746.png

  [root@Cacti ~]# ab -c 1000 -n 1000 http://www.jfedu.net/index.php
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
  Benchmarking www.jfedu.net (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
  
Server Software:        
Server Hostname:        www.jfedu.net
Server Port:            80
  Document Path:          /index.php
Document Length:        235 bytes

  Concurrency Level:      1000
Time taken for tests:   1.579 seconds
Complete requests:      1000
Failed requests:        995
   (Connect: 0, Receive: 0, Length: 995, Exceptions: 0)
Write errors:           0
Non-2xx responses:      1025
Total transferred:      585599 bytes
HTML transferred:       415993 bytes
Requests per second:    633.25 [#/sec] (mean)
Time per request:       1579.156 [ms] (mean)
Time per request:       1.579 [ms] (mean, across all concurrent requests)
Transfer rate:          362.14 [Kbytes/sec] received
  Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        6   33  19.4     44      59
Processing:    38  514 342.6    338    1328
Waiting:       38  379 313.2    294    1328
Total:         79  547 347.7    394    1380
  Percentage of the requests served within a certain time (ms)
  50%    394
  66%    686
  75%    874
  80%    878
  90%   1039
  95%   1189
  98%   1197
  99%   1341
100%   1380 (longest request)




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-644066-1-1.html 上篇帖子: Nginx+tomcat+session复制负载均衡群集 下篇帖子: Linux之部署Tomcat及其负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表