LANMT架构搭建jspxcms

                LANMT架构搭建jspxcms


前言

上篇文章我们介绍了tomcat的基础使用, 这篇文章我们介绍LANMT架构并用其实现jspxcms 6.0

LANMT是什么?

我们之前了解了LAMP,LNMP, 为什么会出现LANMT的架构呢?

以前我们解决单台LAMP架构不能承受高并发的问题时, 首先想到的不应该将其做成负载均衡集群, 而是先要将其各组件进行分离, 例如:MySQL单独出来,php-fpm运行在单台主机等解决方式. 在生产环境中tomcat一般来说不会直接面向用户, 前端一般会使用NginxApache Httpd进行反向代理, 用户只需要和Nginx或者Apache Httpd保持连接, 可以减缓Tomcat连接器的负担

可能又有朋友会有疑问了, 我们使用一个web服务器进行反代就行了, 为什么要使用NginxApache Httpd一起呢? 
因为
Nginx对静态请求的响应速度是无语伦比的, 我们可以在前端对其进行动静分离, 将图片和CSS等请求通过Nginx响应, 而Apache Httpd因为同属于ASFApache Httpd有很多种反代tomcat的方法, 例如: 我们可以通过proxy_http_module,proxy_ajp_module,proxy_ajp_module等模块反向代理tomcat, 因为ajp协议通过二进制格式传输, 而http协议通过文本格式从传输, 所以效率会更高, 我们可以将Apache HttpdTomcat安装在一台主机上实现整套架构

实验拓扑图

blob.png

实验环境

主机 IP 功用
node1.anyisalin.com 172.16.1.2 Nginx
node2.anyisalin.com 172.16.1.3 Apache, Tomcat, MySQL

实验步骤

Tomcat配置

我们首先配置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 &quot;%r&quot; %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配置

安装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)

jspxcms安装

安装步骤

访问172.16.1.2:8080 安装jspxcms

blob.png

blob.png

blob.png

重启tomcat并测试

[root@node2 webapps]# catalina.sh stop 
[root@node2 webapps]# catalina.sh start

再次访问172.16.1.3:8080 , 第一次访问可能有点慢

blob.png

Apache Httpd配置并测试

安装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页面

blob.png

Nginx配置并测试

安装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

blob.png

总结

我们这样就实现了一个LANMT架构的jspxcms站点, 是不是很Easy呢? 我们实现了一个LANMT架构, 按照我们以前的套路, 下篇我们应该实现后端多个Tomcat实例负载均衡了~,~

作者水平很低, 如果有错误及时指出, 如果你觉得本文写的好请点一波赞~(≧▽≦)/~ 
作者: AnyISaIln QQ: 1449472454 
感谢: MageEdu

原创文章,作者:Net18-AnyISalIn,如若转载,请注明出处:http://www.178linux.com/15197

(0)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-04-22 12:39
下一篇 2016-04-22 13:45

相关推荐

  • 第八周作业

    shell脚本简用

    Linux干货 2017-11-27
  • Linux-文件基本权限及特殊权限详解

    Linux文件基本权限及特殊权限详解 背景 Linux文件基本权限和特殊权限对于初学者很少烦恼,各种无法理解,所以在学到这一节时,将自己学到的以及自己的理解写出来以检查自己对这个部分的掌握情况。 什么是权限 在Linux里一切皆文件,所谓的权限就是用户对文件(目录也是以个文件)的操作范围,对文件的操作包括读、写和执行,用户对文件有不同的权限就能做相应的操作。…

    Linux干货 2017-07-22
  • http加速器varnish

    一、web缓存概述       缓存,又称加速器,用于加速运行速度较快的设备与较慢设备之间的通信。基于程序的运行具有局部性特征其能实现加速的功能:       时间局部性:一个数据被访问之后,在随后较短的时间内有可能被访问。   &nbsp…

    2016-11-18
  • SDCC 2017互联网运维开发实战峰会上海站

    3月17日-19日,由CSDN重磅打造的互联网运维开发实战峰会、数据库核心技术与应用实战峰会和互联网应用 架构实战峰会将在上海举行。 作为SDCC 2017(中国软件开发者大会)系列技术峰会的一部分,秉承干货实料(案例)的内容原则。 这三场峰会将邀请业内顶尖的架构师和技术专家,共同探讨运维工具研发与实践、运维自动化系统的构建、大数据与运维…

    Linux干货 2017-02-11
  • 文件查找与解压缩

    文件查找 脚本文件名的查询 which(寻找执行文件) which [-a] command -a :将所有由PATH目录中可以找到的命令均列出,而不只是第一个被找到的命令名称 文件名的查找 文件查找:实时查找:遍历所有文件进行条件匹配;(find)非实时查找:根据索引查找;(whereis、locate) whereis whereis [-bmsu] […

    Linux干货 2017-04-08
  • 程序包管理rpm&yum&编译安装

    centos6.6程序包管理 二进制应用程序的组成部分: 二进制文件,库文件,配置文件和帮助文件 程序包管理器:rpm rpm包管理器的前端工具:yum 程序包之间存在依赖关系 rpm的命名方式: name_VERSION_release.arch.rpm     VERSION: major.minor.r…

    Linux干货 2016-07-07