# 项目部署
# 打包代码
你可以执行以下命令或直接通过IDEA Maven页签的clean install快捷执行方式来打包代码。代码打包后在您的maven仓库中。
mvn clean package
1
# 上传代码和配置文件
上传jar包和application.yml
,application-config.yml
文件到您的服务器中。组织成下面这样的目录结构。
app
| application.yml
| application-config.yml
| webapp.jar
| files
1
2
3
4
5
2
3
4
5
提示:本地文件存放路径默认情况下项目/files
,所以部署目录中还需存在files目录。
# 启动服务
通过nohup
命令启动服务,使服务在后台运行。
nohup java -jar webapp.jar &
1
执行成功后使用Ctrl + C
关闭nohup进程(此时服务依然运行在后台)。服务启动日志将输出到nohup.out
文件中。
为什么不采用springboot官网推荐的active方式进行生产环境配置
无论是测试环境还是生产环境,Eva并不推荐您将各个环境的配置文件放置在项目中,因为这样将暴露各个环境的配置信息,其中也会包含一些敏感信息,如数据库密码,缓存密码,加密密钥等。这无疑增加了项目的运营风险。所以,Eva将各个环境的配置信息放置在不同环境的服务器上,可以尽可能的减少这类风险。
# 配置Nginx
server {
listen 80;
server_name www.yourdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 接口代理
location ^~ /api/ {
proxy_pass http://localhost:10010/;
}
# 资源配置(可选)
location ^~ /api/ {
proxy_pass http://localhost:10010/resource;
}
# 前端配置
location / {
# 如前端路由模式为History,则还需添加try_files配置
try_files $uri $uri/ /index.html;
root /xxx/xxx/dist;
index index.html;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 负载均衡
为了提供服务的稳定性,我们可能需要为服务部署多台机器。这样某一台服务宕机时其它服务可以继续顶上。此时需要nginx的upstream介入完成负载均衡。
注意
开源版本默认情况下为本地缓存,存在会话不共享的问题,需要切换成Redis缓存会话才能共享,您可以在GoldPanKit中安装Redis缓存插件来切换为Redis缓存。
upstream servers {
server 172.17.230.1:10010; # 服务1
server 172.17.230.2:10010; # 服务2
}
server {
listen 80;
server_name www.yourdomain.com;
add_header Access-Control-Allow-Credentials true;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 接口代理
location /api {
proxy_pass http://servers/;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16