# 项目部署
# 打包代码
你可以执行以下命令或直接通过IDEA Maven页签的clean install快捷执行方式来打包代码。代码打包后在您的maven仓库中。
mvn clean install
1
# 上传代码和配置文件
上传jar包和application.yml文件到您的服务器中。组织成下面这样的目录结构。
app
| application.yml
| myapp.jar
| files
1
2
3
4
2
3
4
本地文件存放路径默认情况下项目/files
,所以部署目录中还需存在files目录。
# 启动服务
通过nohup
命令启动服务,使服务在后台运行。
nohup java -jar myapp.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/;
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 负载均衡
为了提供服务的稳定性,我们可能需要为服务部署多台机器。这样某一台服务宕机时其它服务可以继续顶上。此时需要nginx的upstream介入完成负载均衡。
注意
由于多台服务存在会话不共享的问题,所以只有在构建框架时,缓存策略选配了Redis才可以进行负载。如果您使用的是Eva内置的内存式缓存,可以通过升级来使用其他缓存策略。详见自动升级
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