LANMT架構搭建jspxcms
前言
上篇文章我們介紹了
tomcat
的基礎使用, 這篇文章我們介紹LANMT
架構并用其實現jspxcms 6.0
LANMT是什么?
我們之前了解了
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基礎進階
安裝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配置
安裝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
重啟tomcat
并測試
[root@node2 webapps]# catalina.sh stop
[root@node2 webapps]# catalina.sh start
再次訪問172.16.1.3:8080 , 第一次訪問可能有點慢
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
頁面
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
了
總結
我們這樣就實現了一個
LANMT
架構的jspxcms
站點, 是不是很Easy
呢? 我們實現了一個LANMT
架構, 按照我們以前的套路, 下篇我們應該實現后端多個Tomcat
實例負載均衡了~,~作者水平很低, 如果有錯誤及時指出, 如果你覺得本文寫的好請點一波贊~(≧▽≦)/~
作者: AnyISaIln QQ: 1449472454
感謝: MageEdu
原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/15197