灵悉 - 服务端部署手册

关于灵悉服务端部署的问题,可能有很多同学会有疑问,在此我简单说明一下。

1 软件环境

首先需要提前准备好软件环境,包括java、git、maven、nginx、mysql、eclipse或着idea,本人开发工具为idea。
本项目基于java8环境开发,建议不要低于java8;git版本为2.13.3,maven版本为3.2.5,nginx版本1.10.3,mysql版本5.7.x。
这些软件版本并不需要和我的保持高度一致,但需要注意的是mysql版本,如果安装的版本为5.7.x,那么直接使用就行,如果你的版本为8.x,那么需要对工程做相应的配置,祥见Springboot连接MySQL8.0

2 环境配置

环境安装过程不过多介绍,大家自行网上学习,这里默认大家环境都已具备,然后开始灵悉服务端部署。
虽然默认大家环境ok,还是有几点要说明的,首先maven配置,众所周知国外源在国内访问缓慢,所以我们将maven源配置为阿里云。
找到C:\Users\{your username}\.m2\settings.xml{mavne home}\conf\settings.xml
修改节点如下:

  
       
        alimaven  
        aliyun maven  
        http://maven.aliyun.com/nexus/content/groups/public/  
        central          
     
  

如果想改变本地库路径找到localRepository节点修改即可:


D:\Develop\repository

其他maven不建议随便修改,保持默认即可,本文不做详细解读。

3 获取源码

至此,正式开始我们的部署之旅,首先获取源代码。
方法一:从页面直接获取zip包,打开lingxi-server,找到Clone or download 点击Download ZIP,下载后解压即可。
方法二:在工作目录运行CMD,执行git clone https://github.com/happycao/lingxi-server.git即可下载源码。
此时切换到项目目录执行mvn install即可安装maven依赖,注:切换目录和运行命令行不需要我教了吧。

4 导入工程

如果你习惯eclipse,那么导入maven工程即可,具体操作File > Import > Maven > Existing Maven Projects,然后选择项目目录即可。
本人默认使用Idea,直接File > Open,打开项目目录即可。

5 导入数据库

数据脚本位于项目\src\main\resources\lingxi-server.sql,在mysql新建数据库lingxi-server,执行数据库脚本即可。
注:如果要开启数据库对emoji的支持,需要将数据库字符集设置为utf8mb4,这方面需要大家自行学习。

6 项目配置

本项目以Spring Boot作为核心框架,配置文件为\src\main\resources\application.yml
接下来对配置做个详细的说明:

spring:
  datasource:
    # mysql连接url,8.x也有所不同
    url: jdbc:mysql://localhost:3306/lingxi-server?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull
    username: root
    password:
    # mysql 驱动类,8.x会有所不一样,文章开始有说明
    driver-class-name: com.mysql.jdbc.Driver
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  # 静态资源
  resources:
    static-locations: classpath:web/
  application:
    name: lingxi

mybatis:
  type-aliases-package: me.happycao.lingxi.model
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml

server:
  # 服务端口
  port: 8090
  # 服务根目录
  servlet-path: /lingxi

logging:
  level:
    root: info
  path: log
  # 日志配置文件
  config: classpath:logback-spring.xml

# 此地址由nginx代理,即前端访问http://localhost/rss/ 指向 rss-path,下一小节详细说明
rss-path:
  windowsPath: D:/Temp/lingxi/upload/rss/
  linuxPath: /usr/local/lingxi/upload/rss/

了解完配置文件,怎么启动项目呢,因为Spring Boot内置Web容器,那我们找到类me.happycao.lingxi.Application.java,eclipse右键Run As > Java Application,ieda右键Run Application即可启动项目,如果你想单独在tomcat运作,需要单独配置,详见Spring-Boot项目部署到tomcat

7 服务测试

这个时候你的服务已经启动,需要做接口测试,可以借助第三方工具,如PostMan等。
为了更方便的做接口测试,以及输出接口文档,本项目集成了swagger2,静态文件配置见me.happycao.lingxi.config.WebConfiguration.java
启动项目访问http://localhost:8090/lingxi/swagger-ui.html
也可直接访问本人测试环境swagger-ui

8 客户端访问

客户端使用flavor做多版本控制,目前配置了三个版本alphalocalonline,见build.gradle和Api.java
如何切换在开发的时候切换版本,在android-studio的左下角有个按钮选择Build Variants,就可以切换Build Variant,还是很便捷的,打包的时候选择对应版本即可。
说了这么的,接口地址怎么配置,如下:

    /**
     * 收束gradle的flavor控制,将url变量在此接管,此处为默认值
     */
    private static String baseUrl = "http://47.100.245.128/lingxi";
    public static String rssUrl = "http://47.100.245.128/rss/lingxi";

    static {
        String flavor = BuildConfig.FLAVOR;
        switch (flavor) {
            case "alpha":
                baseUrl = "http://47.100.245.128/lingxi-test";
                rssUrl = "http://47.100.245.128/rss/lingxi-test";
                break;
            case "local":
                // 如果选择local作为开发版本, 把此处IP换成你的IP
                baseUrl = "http://192.168.21.103:8090/lingxi";
                rssUrl = "http://192.168.21.103/rss/lingxi-test";
                break;
            case "online":
                baseUrl = "http://47.100.245.128/lingxi";
                rssUrl = "http://47.100.245.128/rss/lingxi";
                break;
        }
    }

9 资源代理

完成以上操作,同学们可能发现了,自己发布的动态是带有图片的,在客户端却不显示,为什么?因为找不到图片,那么要怎么才能访问图片,答案是nginx。
nginx是什么,百科说nginx是一个高性能的HTTP和反向代理web服务器,既然nginx是web服务器,那么我们的图片可以部署到nginx,以便客户端访问。
怎么做?从官网下载nginx,windows环境通过双击nginx.exe启动,便可以从80端口访问,如果端口占用请更换端口。
灵悉的图片配置如下:

    # 找到server节点
    server {
        listen       81;
        server_name  localhost;

        # 省略一部分

        location / {
            root   html;
            index  index.html index.htm;
        }

        # 这里的配置非常讲究,/rss目录需要在磁盘上实际存在,通过localhost:81/rss/lingxi/feed/xx.png访问的时候
        # 实际访问的是D:/Temp/lingxi/upload/rss/lingxi/feed/xx.png这张图片,望理解
        location /rss/ {
            # 需要对应到第6节的rss-path配置
            root   D:/Temp/lingxi/upload/;
        }

        # 再次省略一部分
    }

10 反馈与建议

以上就是灵悉服务端部署的全部过程,以及需要注意点,如果还是有疑问,欢迎通过github和我联系。

感谢阅读这份文档,如果觉得对你有帮助,可以分享关注。

你可能感兴趣的:(灵悉 - 服务端部署手册)