`

部署Nginx+Tomcat及其负载均衡

 
阅读更多

如果哪儿有错,请留言帮我提出来,我也好修改,谢谢!!!

软件包在文章后面可以下载。JDK软件包太大,没法上传,要的给我留言留下邮箱地址就行,我发给你们!!!

转载本文章请留下原文地址,谢谢!!! 

 

实验环境:

操作系统:CentOS 6.5

Nginx服务器:192.168.1.210

Tomcat服务器1192.168.1.211

Tomcat服务器2192.168.1.212

主要软件:

jdk-7u65-linux-x64.gz

apache-tomcat-7.0.54.tar.gz

安装准备:

如果是在虚拟机里测试,那就必须关闭防火墙:

server iptables stop

 

 如果是在真实服务器上,那只需要在防火墙策略里添加允许端口即可:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8080-j ACCEPT

 

 

一、Tomcat服务器1配置

1Tomcat服务器1192.168.1.211配置如下:

[root@test2 ~]# tar zxvf jdk-7u65-linux-x64.gz
[root@test2 ~]# mv jdk1.7.0_65/ /usr/local/java

 

2、设置环境变量:

[root@test2 ~]# vim /etc/profile.d/java.sh
#设置JAVA的根目录
export JAVA_HOME=/usr/local/java
#在PATH环境变量中添加java根目录下的bin/子目录

export PATH=$PATH:$JAVA_HOME/bin

3、把脚本导入到环境变量,使其生效

[root@test2 ~]# source /etc/profile.d/java.sh

4、查看安装版本是否一致 

[root@test2 ~]# java –versio 

5、安装配置Tomcat 

[root@test2 ~]#tar zxvf apache-tomcat-7.0.54.tar.gz
[root@test2 ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat7

6、启动Tomcat

[root@test2 ~]# /usr/local/tomcat7/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat7
Using CATALINA_HOME:   /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.

 7、关闭Tomcat

 

[root@test2 ~]# /usr/local/tomcat7/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat7
Using CATALINA_HOME:   /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar

 

8Tomcat默认运行的端口是8080,运行netstat命令来查看它的监听信息

 

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

 

 9、打开浏览器测试:http://192.168.1.211:8080/如果出现Apache tomcat/7.0.54就算成功了

 

 10Tomcat 主要目录说明:

 

[root@test2 ~]# cd /usr/local/tomcat7/
[root@test2 ~]#ls
--bin/ :存放windows或linux平台上启动和关闭tomcat的脚本文件
--conf/:存放tomcat服务器的各种全局配置文件,其中最重要的就是server.xml和web.xml
--lib/:存放tomcat运行需要的库文件
--logs/:存放tomcat执行时的log文件
--webapps/:tomcat的主要web发布目录
--work/:存放jsp编译后产生的class文件

 

11Tomcat主配置文件说明

 

Server.xmltomcat的主要配置文件,通过这个配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等重要功能。  

 
[root@test2 ~]# vim /usr/local/tomcat7/conf/server.xml

<?xml version='1.0' encoding='utf-8'?>
… …		//省略部分内容
<Server port="8005" shutdown="SHUTDOWN">
//Tomcat关闭端口,默认只对本机地址开放,可以在本机通过telnet 127.0.0.1 8005该端口,
//对tomcat进行关闭操作
… …		//省略部分内容

	<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
//Tomcat 启动的默认端口号8080,可以根据需要进行更改
…….    //省略部分内容
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
//Tomcat 启动AJP 1.3 连接器时默认的端口号,可以根据需要进行更改
……     //省略部分内容

//下面是为Tomcat定义虚拟主机时的配置及日志配置
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>

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

[root@test2 ~]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"

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

[root@test2 ~]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<h1>
<% out.println ("welcom to test site,http://www.test1.com");%>
</h1>
</body>
</html>

14、修改Tomcatserver.xml文件

[root@test2 ~]# vim /usr/local/tomcat7/conf/server.xml
//找到以下内容,添加红色部分
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" reloadable="false">
            </Context>
//docBase:web应用的文档基准目录
//reloadable:设置监视“类”是否变化
//path=””设置默认“类”

 15、关闭Tomcat再重新启动

[root@test2 ~]# /usr/local/tomcat7/bin/shutdown.sh
[root@test2 ~]# /usr/local/tomcat7/bin/startup.sh

 16、通过浏览器访问http://192.168.1.211:8080/出现welcom to test site,http://www.test1.com内容表示tomcat配置成功,并且能够运行jsp了。

 

二、Tomcat服务器2配置

1、  Tomcat2 配置方法跟Tomcat1是一样的

2、  创建/web/webapp1目录,修改Tomcat配置文件server.xml把网站文件目录更改到/web/webapp1/路径下

 

 
[root@test3 ~]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@test3 ~]# vim /usr/local/tomcat7/conf/server.xml
//一样找到以下内容,添加红色部分
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" reloadable="false">
            </Context>

 

3、一样在tomcat2服务器里创建测试页面,修改下页面内容就行了

[root@test2 ~]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<h1>
<% out.println ("welcom to test site,http://www.test2.com");%>
</h1>
</body>
</html>

4、重新启动Tomcat,用浏览器访问Tomcat2 server 测试http://192.168.1.212:8080

 

三、Nginx服务器配置

1、安装支持包

[root@test1 ~]# yum install pcre-devel zlib-devel openssl-devel

2、  这儿有两种方法安装Nginx

(1)       源码编译安装:

[root@test1 ~]# groupadd nginx
[root@test1 ~]# useradd -g nginx nginx -s /bin/false

 我这儿是已经把Nginx安装包下载好了,直接解压安装就行

[root@test1 ~]#tar zxvf nginx-1.6.0.tar.gz
[root@test1 ~]# cd nginx-1.6.0
[root@test1 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module
编译参数解释如下:
//--user=  --group=				是指定用户和组的
//--with-file-aio					是启用文件修改支持的
//--with-http_stub_status_module 	是启用的状态
//--with-http_gzip_static_module		是启用gzip静态压缩
//--with-http_flv_module			是启用flv模块
//--with-http_ssl_module			是启用ssl模块

[root@test1 nginx-1.6.0]# make
[root@test1 nginx-1.6.0]# make install

 

(2)       直接yum安装nginx

 

[root@test1 ~]# cd /etc/yum.repos.d/
[root@test1 ~]#wget http://www.atomicorp.com/installers/atomic
[root@test1 ~]#sh ./atomic
[root@test1 ~]#yum check-update
[root@test1 ~]#yum install nginx
[root@test1 ~]#service nginx start
[root@test1 ~]#chkconfig nginx on

3、  修改Nginx配置文件

[root@test1 ~]# vim /usr/local/nginx/conf/nginx.conf
在http{ …..}中加入以下代码,这是设定负载均衡的服务器列表,weight里的参数值表示权值,权值越高,被分配到的概率就越大,在企业中,如某服务器性能比其他好,那就可以把他设置得最高。这儿为了测试效果,所以就把权值设置成一样了。
红色部分为新添加内容:
http {
    include       mime.types;
    default_type  application/octet-stream;
upstream tomcat_server {
        server 192.168.1.211:8080 weight=10;
        server 192.168.1.212:8080 weight=10;
        }
#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

然后在location /里添加内容:
location / {
   root   html;
   index  index.html index.htm;
   proxy_pass http://tomcat_server;   
}
修改的内容解释:
把Nginx默认的站点通过proxy_pass的方式来代理到设定好的tomcat_server负载均衡服务器组上。

4、 测试Nginx配置文件是否正确。提示以下信息为配置正确,如报错,根据报错提示修改。

 

[root@test1 ~]# /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

  5、启动Nginx

执行后无错误提示即正确

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

 当然,这儿我们可以自己写一个脚本直接使用server来启动。

6、测试负载均衡

在浏览器中访问192.168.1.210,也就是访问Nginx服务器的IP,来回刷新,我们就可以看到显示的不同页面,也就是服务器Tomcat1和服务器Tomcat2的页面信息。这就是负载均衡群集

如果出现网页内容报错,最好的解决方案就是查看日志,根据日志文件提示去解决问题,这也是一个运维工程师必须习惯的一种解决方案

假如我这儿的Nginx服务器报错了,我就可以使用命令查看日志报错信息

 

[root@test1 ~]# tail -f /usr/local/nginx/logs/access.log

 如果出现问题,我们访问网站然后在日志里面就可以看到报错信息,这时候我们就可以根据报错去找到错误并修改

 

 

 

分享到:
评论

相关推荐

    Nginx+tomcat配置集群负载均衡实例

    配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多台服务器上部署Tomcat,形成一个集群,确保服务的高可用性。每台服务器上的Tomcat实例都需要配置相同的应用,以处理相同类型的请求。 接...

    Nginx+Tomcat搭建负载均衡,实现网站请求的分发

    Nginx+Tomcat搭建负载均衡,实现网站请求的分发 Nginx+Tomcat搭建负载均衡是实现网站请求的分发的常见解决方案。以下是该解决方案的详细知识点说明: 一、负载均衡的概念 负载均衡是指将网络请求分配到多个服务器...

    nginx+tomcat7负载均衡+redis缓存session

    在构建高性能、高可用性的Web应用系统时,"nginx+tomcat7负载均衡+redis缓存session"是一种常见的架构模式。这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于...

    Nginx++Keepalived+Tomcat负载均衡&动静分离

    Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...

    Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo

    最后,这个Demo可能包含了qdksDemo这个项目的配置文件、源代码以及部署脚本,帮助我们理解如何在Windows环境中配置Nginx和Tomcat,以及如何实现负载均衡和session共享的详细步骤。用户可以通过解压qdksDemo文件,...

    Nginx + Tomcat 负载均衡配置详解

    **Nginx + Tomcat 负载均衡配置详解** 在现代互联网应用中,服务器的高可用性和性能优化是至关重要的。Nginx 和 Tomcat 的组合常常被用来实现这样的目标,其中Nginx作为反向代理和负载均衡器,而Tomcat作为Java应用...

    Nginx+Tomcat+Redis实现负载均衡过程中session所需架包

    本篇将详细讲解如何在Nginx+Tomcat+Redis环境中实现负载均衡,并讨论session管理的关键知识点。 首先,Nginx是一个强大的HTTP和反向代理服务器,它能够通过分发请求到多个后端服务器来实现负载均衡。Nginx支持多种...

    Nginx+keepalived+tomcat实现性负载均衡(包含需要的包)

    在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...

    Nginx+tomcat+redis

    - **负载均衡**:Nginx可以基于多种策略(如轮询、最少连接、IP哈希等)分配请求到不同的Tomcat实例,从而实现负载均衡,提高系统的可用性和响应速度。 - **静态资源处理**:Nginx对静态文件(如CSS、JavaScript、...

    nginx+tomcat实现负载均衡2

    接下来,"第四节(使用nginx+tomcat负载均衡)"则可能涉及负载均衡的配置。Nginx支持多种负载均衡策略,如轮询(round-robin)、最少连接数(least connections)、IP哈希(ip_hash)等。轮询是最基础的策略,每个请求...

    linux nginx+redis+tomcat分布式负载均衡生产环境部署完成

    技术:reids集群 nginx部署 tomcat负载均衡 说明包含: nginx+redis+tomcat分布式负载均衡文档 session共享资料 安装程序 nginx+redis+tomcat分布式负载均衡部署帮助文档 nginx+redis+tomcat分布式负载均衡...

    win7+nginx+tomcat均衡负载配置

    win7环境下nginx+tomcat均衡负载配置,减轻服务器的负担,提高服务器性能

    nginx+tomcat7+memcached session会话保持

    本文将详细介绍如何在Nginx、Tomcat7和Memcached的环境下实现会话保持,确保用户在多台服务器之间切换时仍能保持其会话状态。 首先,我们要理解会话保持的重要性。在分布式系统中,用户可能与集群中的任何一台...

    Windows+Nginx+Tomcat搭建负载均衡和集群的tomcat压缩包

    本教程将探讨如何在Windows环境中利用Nginx作为反向代理服务器,与多个Tomcat实例配合,搭建一个负载均衡和集群的系统。这个压缩包包含多个版本的Tomcat,即qdky-tomcat-6.0.44.6、qdky-tomcat-6.0.44.5、qdks-...

    Nginx+Tomcat+Redis搭建均衡负载集群

    这个架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用作缓存系统以提升数据访问速度。下面我们将详细探讨这些组件的作用及其在集群环境中的配置与协同工作。 **Nginx** ...

    nginx+tomcat搭建负载均衡

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"nginx+tomcat搭建负载均衡"就是一种常见的解决方案。这个主题涉及到两个主要组件:Nginx和Tomcat,以及如何利用它们来实现负载均衡。 Nginx是一款高性能的...

    真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session

    真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session共享同步问题等等,直接把 Web 应用的 war 包,放进Tomcat的 webapps ...

    nginx+redis+tomcat分布式负载均衡遇到问题解决文档

    nginx+redis+tomcat分布式负载均衡遇到问题解决文档;部署nginx、redis、tomcat时出现的一些常见问题解决方式 ex:Nginx启动错误:error while loading shared libraries: libpcre.so.1

Global site tag (gtag.js) - Google Analytics