大纲:
前言
LANMT是什么?
实验拓扑图
实验环境
实验步骤
Tomcat配置
MySQL配置
jspxcms安装
Apache Httpd配置并测试
Nginx配置并测试
总结
上篇文章我们介绍了
tomcat
的基础使用, 这篇文章我们介绍LANMT
架构并用其实现jspxcms 6.0
我们之前了解了
LAMP
,LNMP
, 为什么会出现LANMT的架构呢?以前我们解决单台
LAMP
架构不能承受高并发的问题时, 首先想到的不应该将其做成负载均衡集群, 而是先要将其各组件进行分离, 例如:MySQL
单独出来,php-fpm
运行在单台主机等解决方式. 在生产环境中tomcat
一般来说不会直接面向用户, 前端一般会使用Nginx
或Apache Httpd
进行反向代理, 用户只需要和Nginx
或者Apache Httpd
保持连接, 可以减缓Tomcat
连接器的负担可能又有朋友会有疑问了, 我们使用一个
web
服务器进行反代就行了, 为什么要使用Nginx
和Apache Httpd
一起呢?
因为Nginx
对静态请求的响应速度是无语伦比的, 我们可以在前端对其进行动静分离, 将图片和CSS等请求通过Nginx
响应, 而Apache Httpd
因为同属于ASF
,Apache Httpd
有很多种反代tomcat
的方法, 例如: 我们可以通过proxy_http_module
,proxy_ajp_module
,proxy_ajp_module
等模块反向代理tomcat
, 因为ajp
协议通过二进制格式传输, 而http
协议通过文本格式从传输, 所以效率会更高, 我们可以将Apache Httpd
和Tomcat
安装在一台主机上实现整套架构
主机 | IP | 功用 |
---|---|---|
node1.anyisalin.com | 172.16.1.2 | Nginx |
node2.anyisalin.com | 172.16.1.3 | Apache, Tomcat, MySQL |
我们首先配置
Tomcat
,安装过程这里不做叙述,不明白的可以看我上篇博客: tomcat基础进阶
安装Tomcat
[root @node1 ~] # [root@node1 ~]# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz [root @node1 ~] # tar xf apache-tomcat-8.0.33.tar.gz -C /usr/local/ [root @node1 ~] # cd /usr/local ; ln -sv apache-tomcat-8.0.33 tomcat ; cd ~ [root @node1 ~] # wget http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm #如果下载出错,使用浏览器下载 [root @node1 ~] # rpm -ivh jdk-8u77-linux-x64.rpm #安装JDK [root @node1 ~] # vim /etc/profile.d/java.sh #定义JAVA_HOME export JAVA_HOME = /usr /java /latest export PATH=$JAVA_HOME/bin : $PATH [root @node1 ~] # vim /etc/profile.d/tomcat.sh #配置tomcat的环境变量 export CATALINA_BASE = /usr/local /tomcat export PATH= $CATALINA_BASE/bin : $PATH [root @node1 ~] # source /etc/profile.d/tomcat.sh [root @node1 ~] # source /etc/profile.d/java.sh
配置虚拟主机
[root@node2 ~]# vim /usr/local/tomcat/conf/server.xml #设置默认虚拟主机为web1.anyisalin.com <Engine name="Catalina" defaultHost="web1.anyisalin.com" jvmRoute="TomcatA"> #添加虚拟主机 <Host name="web1.anyisalin.com" appBase="/data/webapps/" unpackWARS="true" autoDeploy="true"> <Context path="" docBase="/data/webapps/ROOT" reloadable="true" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs" prefix="web1_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> [root@node2 ~]# mkdir -PV /data/webapps/ #创建目录 [root@node2 ~]# cd /data/webapps/ [root@node2 webapps]# wget http://www.jspxcms.com/uploads/jspxcms-6.0.1-release.zip #下载jspxcms [root@node2 webapps]# unzip jspxcms-6.0.1-release.zip #解压到当前目录 [root@node2 webapps]# catalina.sh start #启动tomcat
安装MySQL
[root @node2 webapps] # yum install mysql-server -y [root @node2 webapps] # service mysqld start
创建数据库和用户
[root@node2 webapps]# mysql mysql> GRANT ALL ON jspxcms.* TO jsp@'%' IDENTIFIED BY 'passwd'; Query OK, 0 rows affected (0.01 sec) mysql> CREATE DATABASE jspxcms; Query OK, 1 row affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
安装步骤
访问172.16.1.2:8080安装
jspxcms
重启tomcat
并测试
[root @node2 webapps] # catalina.sh stop [root @node2 webapps] # catalina.sh start
再次访问172.16.1.3:8080 , 第一次访问可能有点慢
安装httpd
[root @node2 ~] # yum install httpd -y
配置httpd
[root@node2 ~]# cd /etc/httpd/conf.d/ [root@node2 ~]# vim virt.conf <VirtualHost *:80> ServerName www.anyisalin.com ProxyRequests Off ProxyPass / ajp://172.16.1.3:8009/ ProxyPassReverse / ajp://172.16.1.3:8009/ </VirtualHost> [root@node2 ~] service httpd start
测试反向代理
我们直接通过
80
端口访问httpd
,能够显示jspxcms
页面
安装nginx
在node1上安装配置 [root@node1 ~]# yum install nginx -y #确保有epel源
配置nginx
[root@node1 ~]# vim /etc/nginx/conf.d/default.conf #修改以下字段 location / { proxy_pass http://172.16.1.3; } [root@node1 ~]# service nginx start #启动nginx
测试nginx
我们通过访问
nginx
就能够访问隐藏在后端的Tomcat
中的jspxcms
了
我们这样就实现了一个
LANMT
架构的jspxcms
站点,是不是很Easy
呢?我们实现了一个LANMT
架构,按照我们以前的套路,下篇我们应该实现后端多个Tomcat
实例负载均衡了~,~作者水平很低,如果有错误及时指出,如果你觉得本文写的好请点一波赞~(���)/~
作者: AnyISaIln QQ: 1449472454
感谢: MageEdu