灵悉|灵悉 - 服务端部署手册

关于灵悉服务端部署的问题,可能有很多同学会有疑问,在此我简单说明一下。
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: lingximybatis: type-aliases-package: me.happycao.lingxi.model config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath:mybatis/mapper/*.xmlserver: # 服务端口 port: 8090 # 服务根目录 servlet-path: /lingxilogging: 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 { listen81; server_namelocalhost; # 省略一部分location / { roothtml; indexindex.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配置 rootD:/Temp/lingxi/upload/; }# 再次省略一部分 }

10 反馈与建议
以上就是灵悉服务端部署的全部过程,以及需要注意点,如果还是有疑问,欢迎通过github和我联系。
感谢阅读这份文档,如果觉得对你有帮助,可以分享关注。

    推荐阅读