您的位置:首页 > 运维架构 > Tomcat

Nginx+Tomcat+pcre 安装过程和出现的问题以及解决方案

2012-11-14 16:15 671 查看
整合过程以及问题解决方案

一:前提准备条件

1、  apache-tomcat-6.0.29

2、  nginx-0.8.38

3、  pcre-8.02

4、  nginx-upstream-jvm-route-0.1

5、  jdk-6u6-linux-i586-rpm.bin
二:安装JDK安装

命令:./ jdk-6u6-linux-i586-rpm.bin进行安装

 

然后将下面的几句话放到/etc/profile文件的最下方即可

export JAVA_HOME=/usr/java/jdk1.6.0_11

export JAVA_BIN=/usr/java/jdk1.6.0_11/bin

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH
Tomat 安装

将tomcat解压放入到指定的目录下即可

 

然后将 tomcat/conf/server.xml 中的内容替换成右侧链接内容 

里面需要改一些启动、访问以及停止的端口号,还需要改

jvmRoute 以及 engine 的prot 。然后编译tomcat/conf/web.xml,

在</web-app>之前加入<distributable/>,保存即可

这是为作负载均衡做准备的,每一个tomcat下的端口只不能重复

 
Pcre 安装

进入到 Pcre 目录下,执行

# ./configure

# make

# make install

如果在执行编译的时候提示缺少gcc或 gcc-c++ 包的时候,需要重新进行编译gcc包,

命令 yum -y install gcc+ gcc-c++ 可进行gcc包的编译 或yum -y update gcc 命令进行更新gcc包,如果在编译或更新的时候提示‘缺少包’ 或 ‘Thissystem is not registered with RHN’ 等原因的时候,说明 不能使用它自身的源进行编译或更新,那么就需要手动下载源来进行更新(下载地址:http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo),将用下载的文件替换掉/etc/yum.repos.d/目录下的文件(将之前的文件备份,被后续的服务器安全做准备),然后重新执行yum
-y install gcc+ gcc-c++即可
Nginx 安装

进入 nginx 目录下,执行如下命令

./configure--with-pcre=/usr/include/pcre --with-http_stub_status_module--prefix=/usr/local/nginx

备注:--with-pcre 是 pcre 的源文件,非安装后的文件,prefix 是需要将 nginx 安装到的目录

然后执行 make

最后执行make install

 
配置普通配置一对一

将 nginx/conf 下的 nginx.conf 中的内容替换成如下内容即可

#user nobody;

worker_processes  5;

#error_log logs/error.log;

#error_log logs/error.log  notice;

#error_log logs/error.log  info;

#pid       logs/nginx.pid;

events {

   use epoll;

   worker_connections  2048;

}

http {

#    upstream backend { # 负载均衡的时候用到

#       server localhost:8088 srun_id=tomcatweb1; #负载均衡的时候用到:访问的路径:端口  srun_id = tomcat已经配好的用于负载均衡的jvm

#       server localhost:8087 srun_id=tomcatweb2;  #负载均衡的时候用到:访问的路径:端口  srun_id =tomcat已经配好的用于负载均衡的jvm

#       jvm_route $cookie_JSESSIONID|sessionid reverse; #用于session共享

#  }

   include       mime.types;

   default_type application/octet-stream;

   charset UTF-8;

   server_names_hash_bucket_size 128;

   client_header_buffer_size 32k;

   large_client_header_buffers 4 32k;

   client_max_body_size 20m;

   limit_rate  1024k;

   sendfile on;<
4000
/p>

   tcp_nopush     on;

   keepalive_timeout 60;

   tcp_nodelay on;

   fastcgi_connect_timeout 300;

   fastcgi_send_timeout 300;

   fastcgi_read_timeout 300;

   fastcgi_buffer_size 64k;

   fastcgi_buffers 4 64k;

   fastcgi_busy_buffers_size 128k;

   fastcgi_temp_file_write_size 128k;

   gzip on;

   gzip_min_length  1k;

   gzip_buffers     4 16k;

   gzip_http_version 1.0;

   gzip_comp_level 2;

   gzip_types       text/plainapplication/x-javascript text/css application/xml;

   gzip_vary on;

   #limit_zone  crawler  $binary_remote_addr  10m;

   server {

       listen       80;

       server_name localhost;#需要访问的外网域名,如果直接写localhost可直接用ip访问

         indexindex.jsp index.htm index.html;

       root /usr/local/program/web/xhqm_web;#需要接管的web服务路径地址

       #access_log logs/host.access.log  main;

       location / {

           proxy_pass http://localhost:8088;#本机访问地址,如果配置了负载均衡则直接将localhost:8088改为backend即可

           proxy_redirect    off;

           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

           proxy_set_header  X-Real-IP  $remote_addr;

           proxy_set_header  Host $http_host;

       }

         location~ .*\.(htm|html|ico|gif|jpg|jpeg|png|bmp|swf)$

         {

           expires      30d;

       }

         location~ .*\.(js|css)?$

       {

           expires      1h;

       }

         location/Nginxstatus {

           stub_status on;

           access_log   off;

       }

         log_format  access '$remote_addr - $remote_user [$time_local] "$request" '

            '$status $body_bytes_sent "$http_referer" '

            '"$http_user_agent" $http_x_forwarded_for';

         #access_log  off;

    }

}
一对多

只需要将一对一关系的配置文件中增加一段与之前server并列关系的如下代码即可

   server {

       listen       80;

       server_name cms.xhqm.com; #需要访问的外网域名,如果直接写localhost可直接用ip访问

 

       index index.jsp index.htm index.html;

       root /usr/local/program/web/xhqm_admin; #需要接管的web服务路径地址

 

       #access_log logs/host.access.log  main;

 

       location / {

           proxy_pass http://localhost:8099; #本机访问地址

           proxy_redirect    off;

           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

           proxy_set_header  X-Real-IP $remote_addr;

           proxy_set_header  Host $http_host;

       }

    }
负载均衡

配置负载均衡的时候需要添加一个nginx-upstream-jvm-route-0.1组件

添加方法:

首先要进入nginx 源文件主目录下

 

首先执行:patch-p0 < /usr/local/ nginx-upstream-jvm-route-0.1/jvm_route.patch  #  jvm源文件存放目录加上jvm_route.patch 文件

 

然后执行:./configure--add-module= /usr/local/nginx-upstream-jvm-route-0.1/   # jvm源文件存放目录

 

在然后执行 make  à make install  即可

 

 

只需要将一对一关联中的upstream {}的注释去掉,然后将红色字体部分根据备注将其修改即可是想负载均衡

 
测试

执行 /usr/local/nginx/sbin/nginx–t

显示:

the configuration file/usr/local/nginx/conf/nginx.conf syntax is ok 

the configuration file/usr/local/nginx/conf/nginx.conf was tested successfully

则表示配置正确

 
启动与停止方式

启动:/usr/local/nginx/sbin/nginx

停止:/usr/local/nginx/sbin/nginx–s stop

 

如有问题联系我 lsh.li.arvin@gmail.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: