LNAMT: Client --> http -->nginx--> httpd --> reverse_proxy_module (http) --> tomcat (http connector) LNAMT拓扑图: 一、安装与配置tomcat

1.yum install tomcat,直接用yum仓库安装tomcat。
2.rpm -ql tomcat 查看安装目录,主配置文件在/etc/tomcat中。
3.tomcat的配置文件介绍:
		server.xml:主配置文件;
		context.xml:每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp
												程序目录下的WEB-INF目录中,用于定义会话管理顺、JDBC等 ;
													conf/context.xml是为各webapp提供默认配置;
		web.xml:每个webapp只有在“部署”之后才能够被访问;此文件则用于为各webapps
										定义默认的部署操作方式; 
		tomcat-users.xml:用户认证的账号和密码配置文件;
		catalina.policy:当使用-security选项来启动tomcat实例时会读取此配置文件来实现基
															于安全策略的运行方式;
		catalina.properties:Java属性的定义文件,用于设定类加载器路径等 ,以及一些与
																		JVM性能相关的调优参数;
		logging.properties:日志系统相关的配置;
		4./etc/tomcat/server.xml 主配置文件结构。
		<server>
			<service>
				<connector/> 配置连接器
				<engine>
					<host/>相当于httpd虚拟机配置选项
					<host>
						<context/>相当于httpd的location配置url的选项
					</host>
				</engine>
			</service>
		</server>
		 5.其他配置基本不用修改,定义一个新的tomcat虚拟机,另外一台机的配置见图片。
		 </Host>
    <Host name="web1.magedu.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="false">
    <Context path="" docBase="/data/webapps" reloadable="true" />
    <Context path="/root" docBase="ROOT" reloadable="true" >
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
            deny="192\.168\.130\.130"/>
    </Context>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="web1_access_log." suffix=".txt"
           pattern="%h %l %u %t "%r" %s %b" />
    </Host>

	6.配置完之后开启tomcat功能记得清空防火墙iptables -F,关闭SElinux用setenforce 0,
	尤其是nginx必须地关闭SElinux,否则将代理不到tomcat。
	7.配置完文件后需要创建/data/webapps/两文件夹,除此之外要想tomcat能正常访问
	还需要在每个tomcat的被访问目录下创建如下空目录(见图)。
	classes   lib  META-INF  WEB-INF

	8.在webapps下创建一个index.jsp文件,用于被访问,内容见下面,另外一台机内容见图片
<%@page language="java" %>
<html>
	<head><title>TomcatA</title></head>
	<body>
<font color="blue">TomcatA.magedu.com</font>
<table align="centre" border="1">
  <tr>
    <td>Session ID</td>
<% session.setAttribute("magedu.com","magedu.com"); %>
    <td><%= session.getId() %></td>
			</tr>
			<tr>
				<td>Created on</td>
				<td><%= session.getCreationTime() %></td>
		 </tr>
		</table>
	</body>
</html>

二、配置httpd做为本机的tomcat做反代

	1.只需在httpd的配置文件/etc/httpd/conf/httpd.conf(在centos6下编辑的虚拟机规则)下
	编写一个虚拟机便可反代到tomcat,另外一个主机(为centos7虚拟机不在主配置下编写,
	二十在conf.d创建一个新文件 如vim /etc/httpd/conf.d/vhost.conf)的配置见图
	<VirtualHost *:80>
    ServerName web1.magedu.com   名称应该起跟tomcat域名不一样的,这里只是懒改
    ProxyVia on   
    ProxyRequests off                     下面启用proxy_pass后必须将其关闭
    ProxyPreserveHost off   是否将对此虚拟机的请求(比如说域名)直接交给后端主机
    <Proxy *>
						order allow,deny           注意此处定义允许谁来代理与centos7 是不一样的
          allow from all
    </Proxy>
			ProxyPass / http://web1.magedu.com:8080/    
    ProxyPa***everse / http://web1.magedu.com:8080/
    <Location />
            order allow,deny
            allow from all
    </Location>
</VirtualHost>

2.配置完httpd后,因为tomcat中的host是基于域名的,当本机httpd做反代是
用tomcat域名定义的,因此httpd要想能访问到tomcat需先解析域名因此需要
在两台主机/etc/hosts中分别添加
192.168.130.130 web2.magedu.com
192.168.130.128 web1.magedu.com
3.定义完之后可以启动tomcat与httpd服务,请求服务是否可正常访问,效果见图。

三、配置nginx服务

1.为不与原来nginx的默认注意冲突,nginx的虚拟机仍然是用192.168.130.100
的ip地址,但是监听的端口改为是8080,配置如下
	 upstream tomcat {
			ip_hash;                                            基于ip的 session sticky
			server 192.168.130.128:80;              TomcatA
			server 192.168.130.130:80;              TomcatB
}
server {
    listen          192.168.130.100:8080;
    server_name     www.luomaozhang.com;
    root            /var/www/html;
    location / {
            proxy_pass http://tomcat;
    }
}

2.启动nginx服务,记得关闭防火墙,SElinux,测试效果见图。

3.就此LNAMT搭建完成,另外会话保持还可以用httpd结合tomcat做成tomcat lb cluster。