Java项目实战 - 项目部署

项目实现分布式部署。

系统规划

域名

  • 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支持三种类型的虚拟主机配置:

  1. 基于ip的虚拟主机
  2. 基于域名的虚拟主机
  3. 基于端口的虚拟主机
    一般都用第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
83
upstream 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的热部署。

  1. 在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"/>
  2. 修改工程pom文件(build)

    1
    2
    3
    <url>http://${deploy server ip}:8080/manager/text</url>
    <username>tomcat</username>
    <password>tomcat</password>
  3. 执行Maven Build,即可实现热部署。

整个POC到此完工,明白了基本的开发流程和中间应用到的框架和工具。

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!