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

[经验分享] nginx+tomcat+memcached网页动态请求分配的安装与配置

[复制链接]

尚未签到

发表于 2018-12-4 08:35:59 | 显示全部楼层 |阅读模式
         Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。   
      Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
      当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
  http://s5.运维网.com/wyfs02/M00/81/FB/wKiom1dGp4nRW7Z3AAHSsj1eFtg849.png
  

      在这里我们以nginx作为http服务器,当发现外部的请求为jsp格式的动态页面请求时,Nginx服务器将请求连接至tomcat上面进行执行响应,这里的memached作为内存中的缓存系统在这里进行调用,通过使用memached系统来减小服务器访问数据库的次数,并增加读取速度。

  

  这里nginx主服务器的IP为:172.25.9.1   主机名为:pt1.example.com
  两个tomcat子服务器的IP为:172.25.9.3   主机名为:pt3.example.com

                                172.25.9.4   主机名为:pt4.example.com
  
  一、主服务器的配置:
  这里不再介绍nginx的源码安装以及配置,如有需要,请参照http://ptallrights.blog.运维网.com/11151122/1775242
  

  下面直接进行配置文件nginx.conf 的修改:
  http {
  upstream    pt {            #指定自定义模块名字为pt
  sticky;                    #使用的算法为sticky
  server 172.25.9.3:8080;        #一个子服务器为172.25.9.3,监听的是8080端口
  server 172.25.9.4:8080;        #一个子服务器为172.25.9.4,监听的是8080端口
  }
  include       mime.types;
  default_type application/octet-stream;
  

  sendfile        on;
  keepalive_timeout  65;
  server {
  listen       80;
  server_name  localhost;
  location / {
  root   html;
  index  index.php index.htmlindex.htm;
  }
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  root   html;
  }
  location/status {
  stub_status on;
  access_log off;
  }
  location ~ \.jsp$ {
  proxy_pass   http://pt;        #当请求是jsp格式时,调用pt这个模块
  }
  location ~ \.php$ {
  root           html;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  #fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
  include        fastcgi.conf;
  }
  }
  server {
  listen       443 ssl;
  server_name  localhost;
  ssl_certificate      cert.pem;
  ssl_certificate_key  cert.pem;
  ssl_session_cache   shared:SSL:1m;
  ssl_session_timeout  5m;
  ssl_ciphers  HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers  on;
  location / {
  root   html;
  index  index.html index.htm;
  }
  }
  server{
  listen       80;
  server_name  wwwNaN.com alias  pt.com;        #虚拟主机
  location / {
  proxy_pass http://pt;
  }
  }
  server{
  listen       80;
  server_name  wwwNaN1.com;        #虚拟主机
  location / {
  root   /virualhost/wwwNaN1.com;
  index  index.html index.htm;
  }
  }
  }
  

  大部分默认的参数是不需要改动的,主要修改的部分如下:


  [root@pt1 conf]# nginx -t
  nginx: the configuration file/usr/local/lnmp/nginx/conf/nginx.conf syntax is ok
  nginx: configuration file/usr/local/lnmp/nginx/conf/nginx.conf test is successful
  [root@pt1 conf]# nginx -s reload
  [root@pt1 conf]# nginx
  二、下面对两台tomcat服务器进行配置(步骤一样):
  对tomcat进行配置,步骤如下:
  1、安装jdk
  sh jdk-6u26-linux-x64.bin        #安装jdk
  mv jdk1.6.0_26/ /usr/local/lnmp/        #生成的jdk目录移动至/usr/local/lnmp/
  Ln -s jdk1.6.0_2 java            #做一个软连接
  

  2、安装tomcat服务器:
  tar zxf apache-tomcat-7.0.37.tar.gz
  tar zxf apache-tomcat-7.0.37.tar.gz -C/usr/local/lnmp/
  ln -s apache-tomcat-7.0.37/ tomcat
  3、配置环境变量
  vim /etc/profile
  export JAVA_HOME=/usr/local/lnmp/java
  exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  export PATH=$PATH:$JAVA_HOME/bin
  source /etc/profile
  

  session 的序列化方案官方推荐的有 4 种:
  1. java serialization
  2. msm-kryo-serializer
  3. msm-javolution-serializer
  4. msm-xstream-serializer
  

  其中性能最好的序列化方案是Kryo,此文中我们采用 kryo 方式
  把如下软件包放置到/usr/local/lnmp/tomcat/lib目录中
  kryo-1.03.jar
  kryo-serializers-0.8.jar
  memcached-2.5.jar
  memcached-session-manager-1.5.1.jarmemcached-session-manager-tc7-1.5.1.jar
  minlog-1.2.jar
  msm-kryo-serializer-1.5.1.jar
  reflectasm-0.9.jar
  vim  /usr/local/lnmp/tomcat/conf/context.xml
  
  ......
  
  
  tail -f logs/catalina.out          #查看信息

  

  启动 tomcat
  #/usr/local/lnmp/tomcat/bin/startup.sh          #启动tomcat服务
  # /usr/local/lnmp/tomcat/bin/shutdown.sh    #关闭 tomcat服务
  

  三、安装memcached
  yum install memcached -y
  /etc/init.d/memcached start
  这里只是简单地使用memcached服务,不过多介绍具体使用。
  

  四、测试页面以及测试
  以下为测试页面,保存到/usr/local/lnmp/tomcat/webapps/ROOT/test.jsp
  
  ClusterApp Test
  
  Server Info:
  
   0) {
  String dataValue =request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
  }
  out.print("Sessionlist");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
  String name = (String)e.nextElement();
  String value =session.getAttribute(name).toString();
  out.println( name + " = " +value+"");
  System.out.println( name + " = "+ value);
  }
  %>
  
  name:
  
  key:
  
  
  
  
  
  

  访问http://pt1.example.com/test.jsp,不同的主机访问时会调度到不同的 tomcat 实例上处理
  来自同一主机的请求会交给同一个 tomcat 实例处理,此时你 down 掉当前正在响应的 tomcat 实
  例,nginx 会自动把用户的请求调度到另一个 tomcat 实例上,同时 session 也没有丢掉。
  





运维网声明 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-643052-1-1.html 上篇帖子: nginx+tomcat+memcached网页动态请求分配的安装与配置 下篇帖子: TOMCAT7.0利用memcached
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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