# 项目部署

# 打包代码

你可以执行以下命令或直接通过IDEA Maven页签的clean install快捷执行方式来打包代码。代码打包后在您的maven仓库中。

mvn clean package
1

# 上传代码和配置文件

上传jar包和application.ymlapplication-config.yml文件到您的服务器中。组织成下面这样的目录结构。

app
|  application.yml
|  application-config.yml
|  webapp.jar
|  files
1
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

# 负载均衡

为了提供服务的稳定性,我们可能需要为服务部署多台机器。这样某一台服务宕机时其它服务可以继续顶上。此时需要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