准备
- 四台虚拟机(Ubuntu14.04)
- 建议后台服务器与数据库服务器用server版加winSCP或Xshell辅助就ok,没必要上desktop版的
- 负载均衡器 * 1
- 搭载apache
- 后台服务器 * 2
- 搭载tomcat并部署项目(建议通过官网安装包下载,不建议apt-get安装)
- 安装java8 (后文有提及)
- 安装mysql
- 数据库服务器 * 1
- 安装mysql服务器
具体方法
-
winSCP访问ubuntu方法
ssh localhost ssh
试一下装了没,没装就apt-get install openssh-server
装一下
然后查看安装目录,我的是在/usr/lib/openssh/sftp-server
接下来参见此文
-
ubuntu14.04安装java8
-
第一步:去掉系统中已安装的OpenJDK
sudo apt-get purge openjdk*
-
第二步: 安装
sudo apt-get install software-properties-common
-
第三步: 添加信赖的软件源:
sudo add-apt-repository ppa:webupd8team/java
第四步,更新
sudo apt-get update
-
-
开启apache的反向代理和负载均衡模块
两种方式:通过ln -s软链接或a2enmod方式,这里只写ln -s方式,注意绝对路径
ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load
ln -s /etc/apache2/mods-available/proxy_balancer.load /etc/apache2/mods-enabled/proxy_banancer.load
service apache2 restart
-
建立虚拟主机处理反向代理请求
在/etc/apache2/sites-available下建立新文件reverse-proxy.conf
,编辑内容如下:
<VirtualHost *:80> #监听本机80端口
ProxyRequests Off
ProxyMaxForwards 100
ProxyPreserveHost On
ProxyPass / http://192.168.134.155:8080 #将所有请求转发到对应IP
ProxyPassReverse / http://192.168.134.155:8080 #
<Proxy *>
Order Deny,Allow
Allow from all
</Proxy>
</VirtualHost>
然后建立软链接启动该虚拟主机并重启apache
ln -s /etc/apache2/sites_available/reverse-proxy.conf /etc/apache2/sites_enabled/reverse-proxy.conf
service apache2 restart
-
建立负载均衡
同样在/etc/apache2/sites-available下建立新文件balance.conf,并添加内容如下:
<VirtualHost *:80>
#ServerAdmin caterpillarous@gmail.com
ProxyRequests Off
Proxypass / balancer://proxy/ #注意此处proxy是协议名,可自定义,只要跟下面一样即可
<Proxy balancer://proxy> # 就跟这里的第二个proxy一样即可
Order Deny,Allow
Allow from all
BalancerMember http://192.168.134.155:8080 loadfactor=1
BalancerMember http://192.168.134.156:8080 loadfactor=1
</Proxy>
</VirtualHost>
上面两个IP分别是后台两个web服务器的虚拟机,loadfactor=1代表采用的是最简单的算法,两台服务器权重一样,当访问负载均衡器的时候,转发到任意一台服务器的几率是相等的。
同样的,建立软链接激活该虚拟主机并重启apache
ln -s /etc/apache2/sites_available/balancer.conf /etc/apache2/sites_enabled/balancer.conf
service apache2 restart
-
远程访问mysql
具体参见此处
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意替换username,将其变成自己的username
在其他服务器上尝试连接
mysql -u root -h 'any ip address here' -p
-
部署javaWeb项目至Tomcat(以IDEA为例)
首先在ubuntu上搞个IDEA,不要在Windows上
IDEA连数据库:View -> Tool Window -> Database,但是这是不够的。
还需要 Project Structure -> Library -> 添加mysql connnetor的jar包
然后Build -> Build Artifact 注意要是war-exploded版本的
在tomcat根目录下建立一个新文件夹,这里我建的是javaWeb,将生成的war-exploded文件放在javaWeb文件夹中。
-
将Tomcat的ROOT目录下东西删光,进入conf -> Catalina -> localhost ,新建ROOT.xml文件
<?xml version='1.0' encoding='utf-8'?>
<Context path="/" docBase="/usr/apache-tomcat-8.5.6/javaWeb" debug="0" privileged="true" reloadable="true"/> 尝试访问即可
-
session的共享问题
太懒没弄