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.www58058.com/15197

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

相關推薦

  • RAID詳解

    1、什么是RAID RAID:獨立硬盤冗余陣列,舊稱廉價磁盤冗余陣列,簡稱磁盤陣列。其基本思想就是將多個相對便宜的硬盤結合起來,成為一個磁盤陣列,是性能達到甚至超過一個昂貴、容量巨大的硬盤,根據選擇的版本不同,RAID比單顆硬盤有以下一個或多個方面的好處:增強數據集成度,增強容錯功能,增加處理量或容量。目前應用較多的有RAID0,RAID1,RAID4,RA…

    Linux干貨 2017-01-03
  • 主從DNS 子域授權 基于域的轉發和DNS視圖的配置

    先把軟件包的安裝: yum install bind yum install bind-utils(DNS的查詢工具,dig nslookup host) 事先我已經安裝好了。 主從DNS的網絡拓撲圖: 主從DNS配置: 主從DNS服務器的同步可以有:完全區域同步(AXFR)和增量區域同步(IXFR),配置過程中要注意,增量備份時,需要調整區域文件中的SOA…

    Linux干貨 2015-08-24
  • gitlab-ce白名單設置杜絕并發數過大引起的封ip故障

    gitlab-ce 7.9安裝手札以及上篇文章的問題解決 鳴謝 感謝ruby大神===》章魚的一路指點,才能撥開迷霧見云天! 章魚大人:     國內Ansible部落原創翻譯之一!     資深運維!     ROR大神!  &…

    Linux干貨 2015-09-06
  • N25-第五周

    一.顯示當前系統上root、fedora或user1用戶的默認shell;    [root@localhost ~]# useradd fedora && useradd user1 && grep "^\(root\|fedora\|user1\)" /etc/passwd | cu…

    Linux干貨 2017-01-09
  • bash編程初體驗(三)

    bash編程初體驗之for for while until 概述 本文將介紹以for為代表的循環語句在shell 腳本中的應用,常見的循環語句有for, while,until,作為循環語句,顧名思義,它就是重復地做一件事,直到滿足某一條件而退出;另外,還有兩個循環控制語句continue與break來配合循環語句,以實現臨時中斷或跳出循環的功能;以下為fo…

    Linux干貨 2016-08-24
  • vim編輯器

    vim編輯器: 文本編輯器:文本,純文本,ASCII text;Unicode; 文本編輯種類:                 行編輯器:sed                全屏編輯器:…

    2017-04-17
欧美性久久久久