部署项目

本项目可以使用 tomcat 或者 ngnix 部署,在这里分享下 使用 nginx 部署前后端的步骤

后端部署

1、修改配置文件

按需修改我们的 application-prod.yml

#配置数据源
spring:
  datasource:
    druid:
      db-type: com.alibaba.druid.pool.DruidDataSource
      driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
      url: jdbc:log4jdbc:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
      username: root
      password: 123456

      # 初始化配置
      initial-size: 3
      # 最小连接数
      min-idle: 3
      # 最大连接数
      max-active: 15
      # 获取连接超时时间
      max-wait: 5000
      # 连接有效性检测时间
      time-between-eviction-runs-millis: 90000
      # 最大空闲时间
      min-evictable-idle-time-millis: 1800000
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      validation-query: select 1
      # 配置监控统计拦截的filters
      filters: stat

      stat-view-servlet:
        url-pattern: /druid/*
        reset-enable: false
        login-username: admin
        login-password: 123456

      web-stat-filter:
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"

  #配置 Jpa
  jpa:
    hibernate:
      # 生产环境设置成 none,避免程序运行时自动更新数据库结构
      ddl-auto: none

#jwt
jwt:
  header: Authorization
  # 令牌前缀
  token-start-with: Bearer
  # 必须使用最少88位的Base64对该令牌进行编码
  base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
  # 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
  token-validity-in-seconds: 7200000
  # 在线用户key
  online-key: online-token
  # 验证码
  code-key: code-key

#是否允许生成代码,生产环境设置为false
generator:
  enabled: false

#如果生产环境要开启swagger,需要配置请求地址
#springfox:
#  documentation:
#    swagger:
#      v2:
#        host: # 接口域名或外网ip

#是否开启 swagger-ui
swagger:
  enabled: false

# 文件存储路径
file:
  path: /home/eladmin/file/
  avatar: /home/eladmin/avatar/
  # 文件大小 /M
  maxSize: 100
  avatarMaxSize: 5
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

2、打包项目

我们需要将项目打包并且上传到服务器

第一步 第二步
QQ截图20191222132345.png

3、编写脚本

编写脚步操作 java 服务

(1) 启动脚本 start.sh

nohup java -jar eladmin-system-2.4.jar --spring.profiles.active=prod &
1

(2) 停止脚本 stop.sh

PID=$(ps -ef | grep eladmin-system-2.4.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
1
2
3
4
5
6
7
8

(3) 新建空白Log文件,保存日志 nohup.out

touch nohup.out
1

(4) 查看日志 log.sh

tail -f nohup.out
1

(5) 完整目录如下图

QQ截图20191224120620.png

4、操作java服务:脚本创建完成后就可以操作 java 服务了

# 启动java
./start.sh
# 停止java服务
./stop.sh
# 查看日志
./log.sh
1
2
3
4
5
6

4、配置 ngnix

我们可以使用 ngnix 代理 java服务,添加配置

server {
    listen 80;
    server_name 域名/当前服务器外网IP;
    location / {
        proxy_pass http://127.0.0.1:8000; #这里的端口记得改成项目对应的哦
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12

前端部署

1、修改接口地址

QQ截图20191222132516.png

注意:如果是IP需设置外网IP

2、打包项目

不管是将项目部署到 ngnix 还是其他服务器,都需要先将项目打包

npm run build
1

3、上传文件

打包完成后会在根目录生成 dist 文件夹,我们需要将他上传到服务器中,可使用工具

BvSshClient

4、配置 ngnix

nginx/conf/nginx.conf 添加配置

server
    {
        listen 80;
        server_name 域名/外网IP;
        index index.html;
        root  /www/server/dist;  #dist上传的路径
        # 避免访问出现 404 错误
        location / {
          try_files $uri $uri/ @router;
          index  index.html;
        }
        location @router {
          rewrite ^.*$ /index.html last;
        }  
    } 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

重载 nginx 配置后,访问你的域名或者IP地址即可