澳门新葡萄京官网首页 5

澳门新葡萄京官网首页Tomcat与Nginx的整合

本文将介绍如何在有mysql、php、apache、nginx环境的Linux系统集成tomcat服务,使系统可以支持java程序的运行。

一.安装Tomcat和jdk
 
1.安装jdk
# tar xvf jdk1.6.0_11.tar
# mv jdk1.6.0_11 /usr/local/
配置环境变量
# vim /etc/profile 添加
JAVA_HOME=/usr/local/jdk1.6.0_11
export JAVA_HOME
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
下面的可能更全面一些
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib:$JAVA_HOME/jre/bin
 
export CLASSPATH
PATH=$JAVA_HOME/bin:$PATH
export PATH

安装前准备: 

先来看下我系统的环境:

# sourse /etc/profile
# echo $JAVA_HOME
/usr/local/jdk1.6.0_11
 
二、设置jdk环境变量

    在安装Tomcat之前必须先安装JDK,JDK全称是 Java Development
Kit,是SUN公司免费提供的java语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。

使用Centos 6.6
32位操作系统,并已经配置有mysql、php、apache、nginx环境,如下图1-图6所示:

vi /etc/profile
 
export JAVA_HOME=/usr/java/jdk1.6.0_45
export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
 
然后保存退出,使环境变量生效
source /etc/profile
java -version 
 
2.安装tomcat
# tar zxvf apache-tomcat-6.0.29.tar.gz
# mv apache-tomcat-6.0.29 /usr/local/tomcat6
 
3.启动tomcat
# /usr/local/tomcat6/bin/startup.sh
Using CATALINA_BASE:  /usr/local/tomcat6
Using CATALINA_HOME:  /usr/local/tomcat6
Using CATALINA_TMPDIR: /usr/local/tomcat6/temp
Using JRE_HOME:      /usr/local/jdk1.6.0_11
# ps aux | grep tomcat
root    12717  0.5 12.3 220452 31588 pts/0    Sl  19:24  0:02
/usr/local/jdk1.6.0_11/bin/java
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties
-Djava.endorsed.dirs=/usr/local/tomcat6/endorsed -classpath
:/usr/local/tomcat6/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat6
-Dcatalina.home=/usr/local/tomcat6
-Djava.io.tmpdir=/usr/local/tomcat6/temp
org.apache.catalina.startup.Bootstrap start
root    13187  0.0  0.2  5072  708 pts/0    R+  19:31  0:00 grep
tomcat
启动成功!
 
4.访问测试

会看到tomcat的主页
 
5.修改配置文件
# pwd
/usr/local/tomcat6/conf
# vim server.xml
 <Connector port=”8080″ protocol=”HTTP/1.1″  端口设置
 <Host name=”localhost”  appBase=”webapps”   
家目录,页面文件要放在webapps/ROOT下面
将家目录改成/www/web/
 <Host name=”localhost”  appBase=”/www/web”
# mkdir -p /www/web/ROOT
# vim /www/web/ROOT/index.jsp
Hello,tomcat home!
重启tomcat,再次访问
改变访问
改变家目录的访问默认文件
# vim web.xml
 <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
二.nginx安装配置
 
1.安装支持正则的pcre模块
# rpm -ivh  pcre-devel-6.6-2.el5_1.7.i386.rpm
yum –y install pcre*
yum -y install zlib*
yum -y install openssl*
 
2.安装nginx
# tar zxvf nginx-0.7.62.tar.gz
# cd nginx-0.7.62
# ./configure –prefix=/usr/local/nginx
–with-http_stub_status_module –with-http_ssl_module
# make
# make install
 
3.启动nginx
# /usr/local/nginx/sbin/nginx
 
4.访问nginx(默认为80端口)

 
三.nginx与tomcat整合
 

 

图1

  1. 在/usr/local/nginx/conf下面添加文件proxy.conf
    # cat /usr/local/nginx/confg/proxy.conf
    proxy_redirect          off;
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr; #获取真实IP
    #proxy_set_header      X-Forwarded-For 
    $proxy_add_x_forwarded_for; #获取代理者的真实ip
    client_max_body_size    10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout  90;
    proxy_send_timeout      90;
    proxy_read_timeout      90;
    proxy_buffer_size      4k;
    proxy_buffers          4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
     
    2.配置nginx.conf
    # cat /usr/local/nginx/confg/nginx.conf
    #user  www www;
    worker_processes  1;
    pid    /usr/local/nginx/logs/nginx.pid;
    events {
        use epoll;
        worker_connections  1024;
    }
    http {
        include      mime.types;
        default_type  application/octet-stream;
        include    /usr/local/nginx/conf/proxy.conf;  #一定要指向代理文件
        sendfile        on;
        tcp_nopush      on;
        keepalive_timeout  65;
        server {
            listen      80;
            server_name  localhost;
            charset gb2312;
            location / {
                root /www/web/ROOT;
                index  index.html index.htm;
            }
            location ~ .*.jsp$ {   
    #匹配以jsp结尾的,tomcat的网页文件是以jsp结尾       
                    index  index.jsp;
                    proxy_pass      ;
    #主要在这里,设置一个代理
            }
            location /nginxstatus {
                    stub_status on;
                    access_log on;
                    auth_basic “nginxstatus”;
                    auth_basic_user_file
    /usr/local/nagois/etc/htpasswd.users;
            }
            # redirect server error pages to the static page /50x.html
            error_page  500 502 503 504  /50x.html;
            location = /50x.html {
                root  html;
            }
        }
    }
     
    3.测试
    在/www/web/ROOT下添加文件index.html
    # cat index.html
    the port:80
    重启nginx
    /usr/local/nginx/sbin/nginx -s reload
    检测配置
    /usr/local/nginx/sbin/nginx -t

  
在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,所以需要预先下载好JDK和Tomcat

图2

更多Tomcat相关教程见以下内容

JDK下载地址:

图3

CentOS
6.6下安装配置Tomcat环境
 
http://www.linuxidc.com/Linux/2015-08/122234.htm

tomcat下载地址:

图4

RedHat Linux
5.5安装JDK+Tomcat并部署Java项目 
http://www.linuxidc.com/Linux/2015-02/113528.htm 

 

图5

Tomcat权威指南(第二版)(中英高清PDF版+带书签) 
http://www.linuxidc.com/Linux/2015-02/113062.htm 

[root@tomcat1 ~]# service iptables stop

图6

Tomcat 安全配置与性能优化
http://www.linuxidc.com/Linux/2015-02/113060.htm 

[root@tomcat1 ~]# setenforce 0

下面进入安装和配置:

Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案
http://www.linuxidc.com/Linux/2015-01/112395.htm 

 

1、下载和配置jdk、tomcat

CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤
http://www.linuxidc.com/Linux/2015-01/111485.htm 

将jdk-7u65-linux-x64.tar.gz解压

这里下载32位的jdk,下载地址:

CentOS 6.5下安装Tomcat 
http://www.linuxidc.com/Linux/2015-01/111415.htm 

[root@tomcat1 ~]# tar xf jdk-7u65-linux-x64.tar.gz

下载完成后,使用 tar -xzvfjdk-7u79-linux-i586.tar.gz
命令解压并把解压后的目录复制到/usr/local目录下,如下图所示

Tomcat中session的管理机制 
http://www.linuxidc.com/Linux/2016-09/135072.htm

 

下载tomcat,下载地址:

Tomcat
的详细介绍
:请点这里
Tomcat
的下载地址
:请点这里

解压后会生成jdk1.7.0_65文件夹,将文件夹移动到/usr/local下并重命名为java

下载完成后,使用 tar -xzvf
apache-tomcat-7.0.69.tar.gz命令解压并把解压后的目录复制到/usr/local目录下,如下图所示

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143020.htm

[root@tomcat1 ~]# mv jdk1.7.0_65/ /usr/local/java

现在开始配置java及tomcat环境变量,使用vi /etc/profile
命令打开环境变量配置文件,在文件最后面加入如下几行:

澳门新葡萄京官网首页 1

 

export JAVA_HOME=/usr/local/jdk1.7.0_79

在/etc/profile.d/ 下建立java.sh脚本

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

[root@tomcat1 ~]# vim /etc/profile

export CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME=/usr/local/java       #设置java根目录

export CATALINA_BASE=/usr/local/tomcat

export PATH=$PATH:$JAVA_HOME/bin
  #在PATH环境变量中添加java跟目录的bin子目录

export PATH=$JAVA_HOME/bin:$PATH

 

添加完成后保存并退出,紧接着执行 source /etc/profile
使环境变量配置生效,并使用java -version 和
/usr/local/tomcat/bin/version.sh
检查配置是否正确,如下图所示,代表java和tomcat安装正确。

将java.sh 脚本导入到环境变量,使其生效

2、配置nginx和tomcat参数

[root@tomcat1 ~]# source /etc/profile

在nginx虚拟主机配置目录,添加一个配置文件,比如这里添加的配置文件为abjni.com.conf,如下图:

 

文件内容为:

运行 java -version 或者 javac -version 命令查看java版本

server {

[root@tomcat1 ~]# java -version

listen 80;

java version “1.7.0_65”

server_name dnjishu.com ;

Java(TM) SE Runtime Environment (build 1.7.0_65-b17)

index index.html index.jsp index.htm;

Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

error_page 400 /errpage/400.html;

 

error_page 403 /errpage/403.html;

[root@tomcat1 ~]# javac -version

error_page 404 /errpage/404.html;

javac 1.7.0_65

limit_conn one 50;

 

location ~ .jsp$ {

安装配置Tomcat

proxy_pass ;

解压apache-tomcat-7.0.54.tar.gz 包

include naproxy.conf;

[root@tomcat1 ~]# tar xf apache-tomcat-7.0.54.tar.gz

}

 

location / {

解压后生成apache-tomcat-7.0.54文件夹,将该文件夹移动到/usr/local下,并改名为tomcat

try_files $uri @tomcat;

[root@tomcat1 ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat

}

 

location @tomcat {

启动Tomcat

proxy_pass ;

[root@tomcat1 ~]# /usr/local/tomcat/bin/startup.sh

include naproxy.conf;

Using CATALINA_BASE:   /usr/local/tomcat

}

Using CATALINA_HOME:   /usr/local/tomcat

}

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

紧接着配置tomcat服务,使用命令vi /usr/local/tomcat/conf/server.xml
编辑配置文件,修改和增加如下几个位置:

Using JRE_HOME:        /usr/local/java

在尾部/Host下面增加如下参数

Using CLASSPATH:      
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

!–dnjishu.com host config–

Tomcat started.

Host name= appBase=webapps

 

unpackWARs=true autoDeploy=true

Tomcat 默认运行在8080端口

xmlValidation=false xmlNamespaceAware=false

 

Context path=/ reloadable=true docBase=dnjishu.com/

[root@tomcat1 ~]# netstat -anpt |grep :8080

Aliasdnjishu.com/Alias

tcp        0      0 :::8080                    
:::*                        LISTEN      3318/java  

/Host

 

如图所示:

浏览器访问测试

保存配置并退出。

 

删除/usr/local/tomcat/webapps目录下的所有目录及文件,使用mkdir
dnjishu.com 在webapps目录下创建dnjishu.com目录

 

最后,启动tomcat及nginx服务,配置完成。

澳门新葡萄京官网首页 2

/usr/local/tomcat/bin/startup.sh 启动tomcat服务

 

service nginxd start 启动nginx服务

 

最后把java程序放在dnjishu.com目录下,访问时,使用或dnjishu.com访问即可

 

关闭Tomcat

[root@tomcat1 ~]# /usr/local/tomcat/bin/shutdown.sh

  

Tomcat 配置相关说明

 

/usr/local/tomcat                      主目录(安装目录)

bin                                              
存放windows或linux平台上启动或关闭的Tomcat的脚本文件

conf                                   
   存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml

lib                                              
存放Tomcat运行需要的库文件(JARS)

logs                                       存放Tomcat执行时的LOG文件

webapps                                     
Tomcat的主要Web发布目录(包括应用程序事例)htdocs(html php)

work                                          
存放jsp编译后产生的class文件

 

 

[root@tomcat1 ~]# ls /usr/local/tomcat/conf/

catalina.policy                   权限控制配置文件

catalina.properties           Tomcat属性配置文件

context.xml                          上下文配置文件(selinux)

logging.properties            日志log相关配置文件

server.xml                          主配置文件

tomcat-users.xml                 
manager-gui管理用户配置文件(Tomcat安装后生成的管理界面,该文件可开启访问)

web.xml                              
Tomcat的servlet,servlet-mapping,filter,MIME等相关配置

 

 

server.xml 
主要配置文件,可修改启动端口,设置网站根目录,虚拟主机,开启https等功能。

 

server.xml的结构构成

<Server>

         <Service>

                  <Connector />

                  <Engine>

                          <Host>

                                   <Context> </Context>

                          </Host>

                  </Engine>

         </Service>

</Server>

 

<!–   –>        内的内容是注视信息

 

Server

Server元素代表了整个Catalina的Servlet容器

 

Service

Service是这样一个集合;它由一个或多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求。

 

Connector

一个Connector在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户。

 

Tomcat
Engine有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其他webserver的请求

Coyote Http/1.1
Connector在端口8009处侦听来自其他wenserver(Apache)的servlet/jsp代理请求。

 

Engine

Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名

当Engine获得一个请求时,它把该请求匹配到某一个Host上,然后把该请求交给该Host来处理,

Engine有一个默认的虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理

 

Host

代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain
Name相匹配

每个虚拟主机下都可以部署(deploy)一个或者多个Web app,每个web app
对应一个Context,有一个Context path。

 

当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理,匹配的方法是最长匹配,所以一个path==“”的Context将成为该Host的默认Context匹配。

 

Context

一个Context对应一个 Web application,一个 Web
application由一个或者多个Servlet组成。

 

 

 

建立java的web站点

 

首先在跟目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件

 

[root@tomcat1 ~]# mkdir /webapp

 

在webapp1目录下建立一个index.jsp的测试页面

[root@tomcat1 ~]# vim /webapp/index.jsp

<%@ page language=”java” import=”java.util.*”
pageEncoding=”UTF-8″%>

<html>

         <head>

                  <title>JSP test page</title>

         </head>

         <body>

                  <% out.println(“Welcome to test
site,;

         </body>

</html>

                           

 

修改Tomcat的server.xml文件

 

定义一个虚拟主机,并将网站文件路径指向已经建立的/webapp,在host段增加context段

 

[root@tomcat1 ~]# cp /usr/local/tomcat/conf/server.xml{,.bak}

[root@tomcat1 ~]# vim /usr/local/tomcat/conf/server.xml

 

124       <Host name=”localhost”  appBase=”webapps”

125             unpackWARs=”true” autoDeploy=”true”>

126             <Context docBase=”/webapp” path=”” reloadable=”flase”
>

127             </Context>

 

docBase=”/webapp”         web应用的文档基准目录

path=””                             设置默认”类”

reloadable=”flase”          设置监视”类”是否变化

 

关闭tomcat,在重新启动

[root@tomcat1 ~]# /usr/local/tomcat/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:      
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

 

[root@tomcat1 ~]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:      
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

 

浏览器访问测试

 澳门新葡萄京官网首页 3

 

 

一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套可靠的解决方案来完善web站点架构

 

   Nginx
是一款非常优秀的WEB服务器软件,他能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存,CPU等系统资源消耗非常低,目前很多大型网站都用Nginx服务器做后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

 

Nginx 服务器                 Centos 6.5 x86_64
192.168.200.254            nginx

Tomcat服务器1             Centos 6.5 x86_64 192.168.200.200            
jdk tomcat

Tomcat服务器2             Centos 6.5 x86_64 192.168.200.201            
jdk tomcat

 

Tomcat 2 配置方法基本与Tomcat 1 相同

关闭防火墙,selinux

安装JDK,配置Java环境,版本与Tomcat 1 保持一致

安装Tomcat,版本与Tomcat 1 保持一致

建立一个web目录,并在里面建立一个webapp目录,用于存放网站文件

在webapp1目录下建立一个index.jsp的测试页面

[root@tomcat2 ~]# vim /webapp/index.jsp

<%@ page language=”java” import=”java.util.*”
pageEncoding=”UTF-8″%>

<html>

         <head>

                  <title>JSP test2 page</title>

         </head>

         <body>

                  <% out.println(“Welcome to test
site,;

         </body>

</html>

 

[root@tomcat2 ~]# cp /usr/local/tomcat/conf/server.xml{,.bak}

[root@tomcat2 ~]# vim /usr/local/tomcat/conf/server.xml

 

124       <Host name=”localhost”  appBase=”webapps”

125             unpackWARs=”true” autoDeploy=”true”>

126             <Context docBase=”/webapp” path=”” reloadable=”flase”
>

127             </Context>

 

[root@tomcat2 ~]# /usr/local/tomcat/bin/shutdown.sh

[root@tomcat2 ~]# /usr/local/tomcat/bin/startup.sh

 

浏览器访问测试

 澳门新葡萄京官网首页 4

 

 

Nginx 服务器配置

[root@nginx ~]# service iptables stop

[root@nginx ~]# setenforce 0 

[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel
lrzsz

[root@nginx ~]# useradd -M -s /sbin/nologin nginx

[root@nginx ~]# tar xf nginx-1.6.2.tar.gz

[root@nginx ~]# cd nginx-1.6.2

[root@nginx nginx-1.6.2]# ./configure –prefix=/usr/local/nginx
–user=nginx –group=nginx –with-file-aio
–with-http_stub_status_module –with-http_ssl_module
–with-http_flv_module –with-http_gzip_static_module && make &&
make install

 

 

–prefix=/usr/local/nginx                          指定安装目录

–user=nginx –group=nginx                        指定运行的用户和组

–with-file-aio                                            
启用文件修改支持

–with-http_stub_status_module                  启用状态统计

–with-http_ssl_module                               启用ssl模块

–with-http_flv_module                              
启用flv模块,提供寻求内存使用基于时间的偏移量文件

–with-http_gzip_static_module                   启用gzip静态压缩

 

 

配置nginx.conf

[root@nginx nginx-1.6.2]# cp /usr/local/nginx/conf/nginx.conf{,.bak}

[root@nginx nginx-1.6.2]# vim /usr/local/nginx/conf/nginx.conf


user  nginx;

worker_processes  1;

error_log  logs/error.log;

pid        logs/nginx.pid;

 

events {

         use epoll;

    worker_connections  10240;

}

 

http {

    include       mime.types;

    default_type  application/octet-stream;

 

    log_format  main  ‘$remote_addr – $remote_user [$time_local]
“$request” ‘

                      ‘$status $body_bytes_sent “$http_referer” ‘

                      ‘”$http_user_agent” “$http_x_forwarded_for”‘;

    access_log  logs/access.log  main;

 

    sendfile        on;

    keepalive_timeout  65;

    upstream tomcat_server {

         server 192.168.200.200:8080 weight=1;

         server 192.168.200.201:8080 weight=1;

    }

 

    server {

        listen       80;

        server_name  localhost;

 

        location / {

            root   html;

            index  index.html index.htm;

                          proxy_pass ;

        }

 

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}


 

[root@nginx nginx-1.6.2]# /usr/local/nginx/sbin/nginx -t

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

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is
successful

[root@nginx nginx-1.6.2]# /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf

[root@nginx nginx-1.6.2]# netstat -anpt |grep :80

tcp        0      0 0.0.0.0:80                 
0.0.0.0:*                   LISTEN      7184/nginx         

 

[root@nginx nginx-1.6.2]# ps aux |grep nginx

root      7184  0.0  0.2  45000  1052 ?        Ss   01:18   0:00 nginx:
master process /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf

www       7185  0.0  1.1  49256  5452 ?        S    01:18   0:00 nginx:
worker process                                          

root      7193  0.0  0.1 103256   848 pts/1    S+   01:18   0:00 grep
nginx

 

 

客户端测试:

打开浏览器访问:

不断刷新可看到由于权重相同,页面会反复切换

 

 澳门新葡萄京官网首页 5

 

 

在多个应用程序间提供负载均衡是一种常用的提高资源利用率的技术,提高服务器的吞吐量,减少延迟,确保应用程序容错。Nginx可以做为一个高效的http负载均衡器来将负载分发到多个应用程序上以提高性能,它也是一种可靠地,可伸缩的web应用程序服务器。

发表评论

电子邮件地址不会被公开。 必填项已用*标注