sql alwayson群集 registerallprovidersip改为0_群集06Nginx+Tomcat负载均衡群集

群集06-Nginx+Tomcat负载均衡群集

、Tomcat介绍

       Tomcat是一个免费的开源Web应用服务器,属于轻量级应用服务器软件,是Apache软件基金会的一项核心项目。

       在中小型系统和并发访问用户不是很多的场合下,被普遍使用,是开发和调试JSP程序的首选。Tomcat处理静态HTML的能力不Apache或Nginx,通常作为一个Servlet和JSP容器单独运行在后端。

bab2a8818e052d500a97b227bb2e3754.png

、Tomcat配置文件说明

1、tomcat的各目录说明

tomcat主目录为/usr/local/tomcat7

       bin/              存放Windows或Linux平台上启动和关闭tomcat的脚本文件

       conf/       tomcat服务器的各种全局配置文件,其中最重要的是server.cml和web.xml

       lib/              存放tomcat运行所需的库文件

       logs/       存放tomcat执行时的log文件

       webapps/       tomcat的主要web发布目录

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

2、tomcat的各配置文件说明

       catalina.policy              权限控制配置文件

       catalina.properties       Tomcat的属性配置文件

       context.xml              上下文配置文件

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

       server.xml              主配置文件

       Tomcat-users.xml       manager-gui管理用户配置文件

       web.xml                     tomcat的servlet、servlet-mapping、filter、MIME等相关配置

3、Tomcat主配置文件解读

       server.xml为Tomcat的主配置文件,可配置Tomcat的启动端口、网站目录、虚拟主机、开启https等重要功能。

server:元素代表了整个servlet容器

service:由一个或多个Connector、一个Engine组成,负责处理Connector获得的客户请求

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

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

Context:一个Context对应一个Web Application

、部署Nginx+Tomcat负载均衡群集

实验环境:

Nginx负载均衡:192.168.1.51/24              nginx

Tomcat1:192.168.1.52/24                     apache-tomcat  jdk

Tomcat2:192.168.1.53/24                     apache-tomcat  jdk

配置第一台Tomcat

1、关闭iptables防火墙、selinux机制,略

2、安装JDK,配置Java环境

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

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

[root@tomcat1 ~]# vim /etc/profile.d/java.sh

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

export PATH=$PATH:$JAVA_HOME/bin              //在PATH环境变量中添加JAVA根目录下的子目录

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

[root@tomcat1 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin

[root@tomcat1 ~]# java -version

java version "1.7.0_65"

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

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

3、安装配置Tomcat

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

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

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

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

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

如果关闭tomcat的话,可以执行下面命令:

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

4、建立Java的Web站点

[root@tomcat1 ~]# mkdir -p /web/webapp1

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

                 out.println("Welcome to test1 site,http://www.test1.com");%>

修改tomcat的server.xml文件,定义一个虚拟主机

[root@tomcat1 ~]# cd /usr/local/tomcat7/conf/

[root@tomcat1 conf]# cp -p server.xml server.xml.origin

[root@tomcat1 conf]# vim server.xml

124         appBase="webapps"

125             unpackWARs="true" autoDeploy="true">

126        

127       

docBase:web应用的文档基准目录

reloadable:设置监视类是否变化

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

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

测试:

a0841a2d85ddbf9d30e774f3c3d7d643.png

5、Tomcat2配置与Tomcat1相同,测试页中的内容的1都改为2

[root@tomcat2 ~]# mkdir -p /web/webapp2

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

                 out.println("Welcome to test2 site,http://www.test2.com");%>

server.xml配置文件内容:

124         appBase="webapps"

125             unpackWARs="true" autoDeploy="true">

126      

127      

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

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

测试:

29b6a88260f5bcb80b7fc2b04d71250c.png

6、Nginx负载均衡

(1)关闭iptables防火墙,selinux机制,略

(2)编译安装nginx

[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

[root@nginx ~]# tar xf nginx-1.6.0.tar.gz -C /usr/src/

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

[root@nginx ~]# cd /usr/src/nginx-1.6.0/

[root@nginx 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 && make && make install

(3)修改配置文件nginx.conf

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

user  nginx nginx;

worker_processes  2;

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  1024;

}

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;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

    upstream tomcat_server {

        server 192.168.1.52:8080 weight=1;

        server 192.168.1.53:8080 weight=1;

}

    server {

        listen       80;

        server_name  localhost;

        charset utf-8;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

            proxy_pass http://tomcat_server;              //与前面设置upstream的名字相同

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

[root@nginx ~]# /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 ~]# /usr/local/nginx/sbin/nginx

[root@nginx ~]# netstat -anpt |grep nginx

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

测试:

ed06b333fc89043b6b14ceaa77c21541.png

b69baf2baf71b3f918c6c4e84d7dc04a.png

课外补充:server.xml 主配置文件详解

server.xml是Tomcat的主配置文件,主要完成如下两个目标:

        提供Tomcat组件的初始配置;

        说明Tomcat的结构,含义,使得Tomcat通过实例化组件完成起动及构建自身。

观察server.xml,可以发现其中有如下的一些元素。

(1)Server元素:

Server元素是server.xml文件的最高级别的元素, Server元素描述一个Tomcat服务器,一般来说用户不用关心这个元素。一个Server元素一般会包括Logger和ContextManager两个元素

        Logger:Logger元素定义了一个日志对象,一个日志对象包含有如下属性:

1) name:表示这个日志对象的名称。

2) path:表示这个日志对象包含的日志内容要输出到哪一个日志文件。

3) verbosityLevel:表示这个日志文件记录的日志的级别。

一般来说,Logger对象是对Java Servlet、JSP和Tomcat运行期事件的记录

         ContextManager:ContextManager定义了一组ContextInterceptors(ContextManager的事件监听器) , RequestInterceptors(的事件监听器)、Contexts(Web应用程序的上下文目录)和它们的Connectors(连接器)的结构和配置。ContextManager包含如下一些属性:

1) debug:记录日志记录调试信息的等级。

2) home:webapps /、conf /、logs /和所有Context的根目录信息。这个属性的作用是从一个不同于TOMCAT _ HOME的目录启动Tomcat。

3) workDir:Tomcat工作目录。

ContextInterceptor 和RequestInterceptors两者都是监听ContextManager的特定事件的拦截器。ContextInterceptor监听Tomcat的启动和结束事件信息。而RequestInterceptors监听用户对服务器发出的请求信息。一般用户无需关心这些拦截器,对于开发人员需要了解这就是全局性的操作得以实现的方法

(2)Connector元素:

Connector(连接器)元素描述了一个到用户的连接,不管是直接由Tomcat到用户的浏览器还是通过一个Web服务器。Tomcat的工作进程和由不同的用户建立的连接传来的读/写信息和请求/答复信息都是由连接器对象管理的。对连接器对象的配置中应当包含管理类、TCP/IP端口等内容。

(3)Context元素:

每一个Context都描述了一个Tomcat的Web应用程序的目录。这个对象包含以下属性:

1)docBase。这是Context的目录。可以是绝对目录也可以是基于ContextManage的根目录的相对目录。

2)path。这是Context在Web服务时的虚拟目录位置和目录名。

3)debug。日志记录的调试信息记录等级。

4)reloadable。这是为了方便Servlet的开发人员而设置的,当这个属性开关打开的时候,Tomcat将检查Servlet是否被更新而决定是否自动重新载入它

本文来源:http://www.benet.wang/%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA/121.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值