热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx+Resin实现高性能JAVA平台搭建

现在流行的JavaEE容器有很多:Tomcat、Resin、JBoss、Glassfish等,我们常用的主要是前三种,那这个java容器性能方面到底谁更稳定,并发能力更强呢?那当属resin了,resin官方发布了最新版本4.0.33版,号称并发超越apache,不仅支持jsp语言,还能支持php。我们以前大多用过tomcat,知道tomcat如果要在一台机器配置多个服务,只需

现在流行JavaEE容器有很多:TomcatResinJBossGlassfish等,我们常用的主要是前三种,那这个java容器性能方面到底谁更稳定,并发能力更强呢?那当属resin了,resin官方发布了最新版本4.0.33版,号称并发超越apache,不仅支持jsp语言,还能支持php

  我们以前大多用过tomcat,知道tomcat如果要在一台机器配置多个服务,只需要拷贝不同的配置文件,然后配置不同的端口就ok,相比较而言,resin要想在一台机器配置多个服务,就比较麻烦了,那今天我们一起来研究一下。

一、系统环境

  1. 系统环境:CentOS6.0x86_64

  2. Nginx版本:Nginx-1.2.6

  3. Resin版本:Resin-4.0.33

  4. JDK版本: JDK-1.6.0_18

二、Nginx安装

  1. #首先下载需要安装的软件:【JDK可以去java官网下载并安装】  

  2. wget http://nginx.org/download/nginx-1.2.6.tar.gz  

  3. wget http://www.caucho.com/download/resin-4.0.33.tar.gz  

  4. tar zxvf nginx-1.2.6.tar.gz    

  5. cd nginx-1.2.6/    

  6. ./configure--user=www --group=www --add-module=../ngx_cache_purge-1.4

  7. \--prefix=/usr/local/nginx\--with-http_stub_status_module --with-http_ssl_module

  8. make && make install  

三、Resin安装

  1. tar ?xzvf  resin-4.0.33.tar.gz

  2. cd resin-4.0.33 &&./configure  --prefix=/usr/local/resin

  3. \--with-resin-log=/data/logs/resin/ --with-java-home=/usr/java/jdk1.6.0_18/

  4. make &&make install

四、配置Resin

  1. #cd /usr/local/resin/conf/下

  2. #添加如下代码,在本机配置两个实例端口为8080、8081

  3. <clusterid="app1">

  4. <server-multiid-prefix="app1"address-list="${app1_servers}"port="6800"/>

  5. <hostid=""root-directory=".">

  6. <web-appid="/"root-directory="/var/www/html/app1"/>

  7. host>

  8. cluster>

  9. <clusterid="app2">

  10. <server-multiid-prefix="app2"address-list="${app2_servers}"port="6801"/>

  11. <hostid=""root-directory=".">

  12. <web-appid="/"root-directory="/var/www/html/app2"/>

  13. host>

  14. cluster>

修改当前目录vi  resin.properties 修改如下内容:

  1. # app-tier Triad servers: app-0 app-1 app-2

  2. app1_servers      : 127.0.0.1:6800

  3. app2_servers      : 127.0.0.1:6801

  4. # Use overrides for individual server control, for example: app-0.http : 8081

  5. app1.http          : 8080

  6. app2.http          : 8081

配置不同的端口,然后启动resin服务:

  1. /usr/local/resin/bin/resinctl start 即可

  2. 然后查看resin 端口 netstat ?tnl 我们会看到8080、8081端口

五、配置Nginx

随着Nginx高性能Web服务器大量被使用,目前Nginx最新稳定版为1.2.6,张宴兄在实际应用中大量使用Nginx,并分享Nginx高性能Web服务器知识,使得Nginx在国内也是飞速的发展。那今天咱们再来温习一下Nginx 动静分离知识,这里仅供参考。

一、实践环境:

  1. 系统版本:CentOS6.0 X86_64

  2. Nginx版本:Nginx-1.2.6

  3. Tomcat版本:Tomcat-6.0.18

二、Nginx安装:

  实际环境中安装Nginx,首先需要安装pcre库,然后再安装Nginx:

  1. #安装pcre支持rewrite库,也可以安装源码,注*安装源码时,指定pcre路径为解压源码的路径,而不是编译后的路径,否则会报错。

  2. yum install pcre-devel pcre -y


  3. #下载Nginx源码包

  4. cd /usr/src ;wget -c http://nginx.org/download/nginx-1.2.6.tar.gz


  5. #解压Nginx源码包

  6. tar -xzf nginx-1.2.6.tar.gz


  7. #进入解压目录,然后sed修改Nginx版本信息为TDTWS

  8. cd nginx-1.2.6 ; sed -i -e &#39;s/1.2.6//g&#39; -e &#39;s/nginx\//TDTWS/g&#39; -e &#39;s/"NGINX"/"TDTWS"/g&#39; src/core/nginx.h


  9. #预编译Nginx

  10. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

  11. #.configure预编译成功后,执行make命令进行编译


  12. make

  13. #make执行成功后,执行make install 正式安装

  14. make install

  15. #自此Nginx安装完毕!!!

三、配置Nginx:

  这里鉴于我的51CTO博客已经有Tomcat安装和配置了,这里忽略,只配置Nginx。

  1. #进入Nginx应用目录

  2. cd /usr/local/nginx/conf

  3. #备份原nginx.conf文件

  4. mv  nginx.conf  nginx.bak  

  创建 vi nginx.conf ,并写入如下内容:

  1. user www www;

  2. worker_processes 8;

  3. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

  4. pid /usr/local/nginx/nginx.pid;

  5. worker_rlimit_nofile 102400;

  6. events

  7. {

  8. use epoll;

  9. worker_connections 102400;

  10. }

  11. http

  12. {

  13.  include       mime.types;

  14.  default_type  application/octet-stream;

  15.  fastcgi_intercept_errors on;

  16.  charset  utf-8;

  17.  server_names_hash_bucket_size 128;

  18.  client_header_buffer_size 4k;

  19.  large_client_header_buffers 4 32k;

  20.  client_max_body_size 300m;

  21.  sendfile on;

  22.  tcp_nopush     on;

  23.  keepalive_timeout 60;

  24.  tcp_nodelay on;

  25.  client_body_buffer_size  512k;

  26.  proxy_connect_timeout    5;

  27.  proxy_read_timeout       60;

  28.  proxy_send_timeout       5;

  29.  proxy_buffer_size        16k;

  30.  proxy_buffers            4 64k;

  31.  proxy_busy_buffers_size 128k;

  32.  proxy_temp_file_write_size 128k;

  33.  gzip on;

  34.  gzip_min_length  1k;

  35.  gzip_buffers     4 16k;

  36.  gzip_http_version 1.1;

  37.  gzip_comp_level 2;

  38.  gzip_types       text/plain application/x-Javascript text/css application/xml;

  39.  gzip_vary on;

  40. ###2012-12-19 change nginx logs

  41. log_format  main  &#39;$http_x_forwarded_for - $remote_user [$time_local] "$request" &#39;

  42.              &#39;$status $body_bytes_sent "$http_referer" &#39;

  43.              &#39;"$http_user_agent"  $request_time $remote_addr&#39;;


  44. #这里为后端服务器wugk应用集群配置,根据后端实际情况修改即可,tdt_wugk为负载均衡名称,可以任意指定

  45. #但必须跟vhosts.conf虚拟主机的pass段一致,否则不能转发后端的请求。

  46. upstream tdt_wugk {

  47.    server   10.10.141.30:8080 weight=1max_fails=2fail_timeout=30s;

  48.    server   10.10.141.30:8081 weight=1max_fails=2fail_timeout=30s;

  49.    server   10.10.141.31:8080 weight=1max_fails=2fail_timeout=30s;

  50.    server   10.10.141.31:8081 weight=1max_fails=2fail_timeout=30s;

  51.    server   10.10.141.32:8080 weight=1max_fails=2fail_timeout=30s;

  52.    server   10.10.141.32:8081 weight=1max_fails=2fail_timeout=30s;

  53. }

  54. #这里为后端APP应用负载均衡配置,根据后端实际情况修改即可。tdt_app为负载均衡名称,可以任意指定

  55. upstream tdt_app {

  56.    server   10.10.141.40:8080 weight=1max_fails=2fail_timeout=30s;

  57.    server   10.10.141.40:8081 weight=1max_fails=2fail_timeout=30s;

  58.    server   10.10.141.41:8080 weight=1max_fails=2fail_timeout=30s;

  59.    server   10.10.141.41:8081 weight=1max_fails=2fail_timeout=30s;

  60.    server   10.10.141.42:8080 weight=1max_fails=2fail_timeout=30s;

  61.    server   10.10.141.42:8081 weight=1max_fails=2fail_timeout

推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
手机用户2502905647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有