灵悉|灵悉 - 服务端部署手册
关于灵悉服务端部署的问题,可能有很多同学会有疑问,在此我简单说明一下。
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项目部署到tomcat7 服务测试
这个时候你的服务已经启动,需要做接口测试,可以借助第三方工具,如PostMan等。
为了更方便的做接口测试,以及输出接口文档,本项目集成了swagger2,静态文件配置见
me.happycao.lingxi.config.WebConfiguration.java
。启动项目访问
http://localhost:8090/lingxi/swagger-ui.html
。也可直接访问本人测试环境swagger-ui
8 客户端访问
客户端使用flavor做多版本控制,目前配置了三个版本
alpha
、local
和online
,见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和我联系。
感谢阅读这份文档,如果觉得对你有帮助,可以分享关注。
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 社保代缴公司服务费包含哪些
- Node.js中readline模块实现终端输入
- django-前后端交互
- 移动端h5调试方法
- “沉溺”疫情
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Jsr303做前端数据校验
- 探索免费开源服务器tomcat的魅力
- 40under40|40under40|思想会-那什么拯救你,我的"高端"甲方"爸爸"