项目实现分布式部署。
系统规划
域名
- zheyi-manager : manager.zheyi.com
- zheyi-portal : www.zheyi.com
- zheyi-rest : rest.zheyi.com
- zheyi-sso : sso.zheyi.com
- zheyi-search : search.zheyi.com
所有的域名都配置指向代理服务器(Nginx)。
- 192.168.22.138 : manager.zheyi.com
- 192.168.22.138 : www.zheyi.com
- 192.168.22.138 : rest.zheyi.com
- 192.168.22.138 : sso.zheyi.com
- 192.168.22.138 : search.zheyi.com
服务器
- 图片Server
- Redis集群
- Solr集群
- DB Server
- Nginx Server
- zheyi-manager
- zheyi-portal
- zheyi-sso
- zheyi-search
- zheyi-rest
至少要10台VM。
Nginx
用Nginx来实现反向代理服务器。
虚拟主机
nginx支持三种类型的虚拟主机配置:
- 基于ip的虚拟主机
- 基于域名的虚拟主机
- 基于端口的虚拟主机
一般都用第3种方式来实现。反向代理
而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
配置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83upstream manager.zheyi.com {
server 192.168.22.135:8080;
}
upstream rest.zheyi.com {
server 192.168.22.136:8080;
}
upstream search.zheyi.com {
server 192.168.22.136:8081;
}
upstream sso.zheyi.com {
server 192.168.22.136:8082;
}
upstream order.zheyi.com {
server 192.168.22.136:8083;
}
upstream www.zheyi.com {
server 192.168.22.137:8080;
}
server {
listen 80;
server_name manager.zheyi.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://manager.zheyi.com;
index index.html index.htm;
}
}
server {
listen 80;
server_name rest.zheyi.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://rest.zheyi.com;
index index.html index.htm;
}
}
server {
listen 80;
server_name search.zheyi.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://search.zheyi.com;
index index.html index.htm;
}
}
server {
listen 80;
server_name sso.zheyi.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://sso.zheyi.com;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.zheyi.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://www.zheyi.com;
index index.html index.htm;
}
}
负载均衡
根据不同策略来实现。
Tomcat热部署
使用maven实现tomcat的热部署。
在Tomcat中配置用户权限(conf/tomcat-user.xml)
1
2
3<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>修改工程pom文件(build)
1
2
3<url>http://${deploy server ip}:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>执行Maven Build,即可实现热部署。
整个POC到此完工,明白了基本的开发流程和中间应用到的框架和工具。