架构示意图:
环境部署版本 IP信息
NGINX+NFS: 10.10.10.15
mariadb-1 :10.10.10.15
mariadb-2 :10.10.1.128
TOMCAT-1 TOMCAT-2 TOMCAT-3 TOMCAT-4: 10.10.10.128
数据库版本:5.5.64-MariaDB
tomcat版本:apache-tomcat-8.5.40.tar.gz
nginx版本:nginx/1.17.4
java版本:1.8
一、JAVA 二进制文件部署
一、安装java
1、解压
tar -xvf jdk1.8.0_131.tar.gz
2、拷贝到安装目录
cp -a jdk1.8.0_131 /usr/java/
3、配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/java
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
4、 执行
source /etc/profile
二、部署tomcat 多实例(tomcat端口不重叠即可)
二、安装tomcat ,并部署多实例
1、解压tomcat
tar -xvf apache-tomcat-8.5.40.tar.gz
2、拷贝到安装目录
cp -a apache-tomcat-8.5.40 /usr/local/tomcat-1/
cp -a apache-tomcat-8.5.40 /usr/local/tomcat-2/
cp -a apache-tomcat-8.5.40 /usr/local/tomcat-3/
cp -a apache-tomcat-8.5.40 /usr/local/tomcat-4/
3、修改tomcat端口, 并启动tomcat,启动后查看端口如下
[root@bogon ~]# cp -a jdk1.8.0_131 /usr/java/
[root@bogon ~]# ss -anltp | grep java
LISTEN 0 1 ::ffff:127.0.0.1:6001 :::* users:(("java",pid=21448,fd=71))
LISTEN 0 1 ::ffff:127.0.0.1:6002 :::* users:(("java",pid=26722,fd=69))
LISTEN 0 1 ::ffff:127.0.0.1:6003 :::* users:(("java",pid=25359,fd=69))
LISTEN 0 1 ::ffff:127.0.0.1:6004 :::* users:(("java",pid=21516,fd=71))
LISTEN 0 100 :::7001 :::* users:(("java",pid=21448,fd=51))
LISTEN 0 100 :::7002 :::* users:(("java",pid=26722,fd=51))
LISTEN 0 100 :::7003 :::* users:(("java",pid=25359,fd=51))
LISTEN 0 100 :::7004 :::* users:(("java",pid=21516,fd=51))
LISTEN 0 100 :::8001 :::* users:(("java",pid=21448,fd=56))
LISTEN 0 100 :::8002 :::* users:(("java",pid=26722,fd=56))
LISTEN 0 100 :::8003 :::* users:(("java",pid=25359,fd=56))
LISTEN 0 100 :::8004 :::* users:(("java",pid=21516,fd=56))
四、部署NFS(可以用其他存储方式这里以NFS为例)
yum -y install nfs*
修改NFS 配置文件
vim /etc/exports 1,1 全部
/data/tomcat_root/ *(rw,no_root_squash,no_all_squash,sync)
挂载
mount -t nfs 10.10.10.15:/data/tomcat_root /data/tomcat_root
五、下载对应jforum论坛代码 下载下来是war包 防止在tomcat
在目录创建对应的程序目录如下所示:
并下载iforum
拷贝解压到创建的目录中
wget https://jaist.dl.sourceforge.net/project/jforum2/jforum-2.5.0.war
/usr/local/jdk1.8.0_131/bin/jar -xf jforum-2.5.0.war
[root@v1 ~]# cd /data/tomcat_root/
[root@v1 tomcat_root]# ll
总用量 16
drwxrwxr-x 11 root root 4096 10月 13 14:41 v1-1.jf.com
drwxrwxr-x 11 root root 4096 10月 13 15:13 v1-2.jf.com
drwxrwxr-x 11 root root 4096 10月 13 14:43 v2-1.jf.com
drwxrwxr-x 11 root root 4096 10月 13 14:43 v2-2.jf.com
六、修改tomcat配置文件,由于配置了NFS 可以将网站代码存放在一个目录下面
修改tomcat server.xml配置文件如下所示,下面的配置相当于不同tomcat对应了不同网站:
tomcat-1 配置文件
tomcat-2 配置文件
tomcat-3 配置文件
tomcat-4 配置文件
-------------------------------------------------------------------------------------
下面是完整的tomcat 配置文件以tomcat-1 为实例
unpackWARs="true" autoDeploy="true">
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
七、部署数据库(主主模式)
步骤可以参考前面的文档
八、通过浏览器访问论坛的安装部署进行安装
九、部署NGINX
十、安装nginx,nginx 配置文件如下 部署NGINX的目的实现多个论坛的均衡 ,或者通过NGINX实现动静分离 NGINX配置文件的示例如下,如果有不懂配置NGINX的可以先不看此部分,后面会发关于NGINX的相关配置学习文档。
#user nobody;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
upstream tomcat_web_1 {
server 10.10.10.15:7001 weight=100 max_fails=2 fail_timeout=15;
server 10.10.10.128:7002 weight=100 max_fails=2 fail_timeout=15;
}
upstream tomcat_web_2 {
server 10.10.10.15:7002 weight=100 max_fails=2 fail_timeout=15;
server 10.10.10.128:7003 weight=100 max_fails=2 fail_timeout=15;
}
#gzip on;
include /usr/local/nginx/conf/vhost/*;
}~
VHOST 配置文件
"/usr/local/nginx/conf/vhost/v1.jf.com" 22L, 305C 9,3-17 全部
server {
listen 80;
server_name v1.jf.com;
location / {
proxy_pass http://tomcat_web_1;
proxy_set_header host $host;
}
location ~ .*.(html|htm|js|css|png|jpeg|txt|jpg)$ {
root html;
expires 100;
}
}
"/usr/local/nginx/conf/vhost/v2.jf.com" 19L, 296C 14,9 全部
server {
listen 80;
server_name v2.jf.com;
location / {
proxy_pass http://tomcat_web_2;
proxy_set_header host $host;
}
location ~.*.(html|jpg|js|css|htm|jpeg|png|txt|doc)$ {
root html;
expires 100;
}
}