后端接口
环境搭建
Xsheel安装配置
下载
根据自身需求选择购买、试用或免费版
下载到自行指定的路径
安装
双击下载好的exe文件
进行安装
选择接受,点击下一步
设置安装路径
点击安装
点击完成,安装成功
运行
运行xsheel,输入名字邮箱,点击提交,或直接点击后来
点击新建
输入主机号
输入用户名和密码,点击连接
点击接受并保存
连接成功
宝塔安装配置
(方便运维,非必须安装,建议安装)需开放端口:888、8888[目前这个端口可能会变是个动态的]、80、443 部署后可以关闭
注册宝塔账户
注册地址:https://www.bt.cn/register.html 且需要实名认证,已经有则忽略
安装
使用xsheel连接服务器
连接成功后在控制台输入:
$ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
输入y,回车
出现以下信息表示安装成功宝塔。
云服务器安全组和宝塔开通以下端口
运行
使用面板地址,用户名和密码登录宝塔
绑定账号
一键安装部分环境
JDK安装配置
下载
我们提供的代码中带有jdk安装包,路径为laiketui-app\docs\soft
安装
检查当前系统是否已经安装openJDK,如果已经安装进行卸载
检查openJDK是否安装命令:
$ rpm -qa|grep jdk
(如果有安装openJDK 那么除了copy-jdk-configs-3.3-2.el7.noarch文件可以不用删除。其他的openJdk全部要卸载)
$ yum -y remove xxxx
进入目录
$ cd /usr/local
创建java安装目录:
$ mkdir /usr/local/java
上传jdk安装包到/usr/local/java
解压安装包到 /usr/local/java目录:
$ tar -zxvf jdk-8u211-linux-x64.tar.gz /usr/local/java
配置
配置jdk环境变量:
编辑/etc/下的profile文件:
vi /etc/profile在文件末尾添加如下配置:
#jdk解压路径,根据实际情况配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存配置文件退出(vi编辑器使用自备)
使/etc/profile生效 :source /etc/profile
$ source /etc/profile
验证
测试jdk安装是否成功,输出版本即为成功
$ java -version
redis安装配置
方式一:宝塔安装
在宝塔面板的软件商店
redis配置
重载配置,重启redis
方式二:手动安装redis
准备:https://redis.io/download 下载redis稳定版本
一、安装redis-6.2.5.tar.gz:
上传附件redis资源
redis-6.2.5.tar.gz
解压
$ tar xzvf redis-6.2.5.tar.gz
安装
$ cd redis-6.2.5
$ make
$ cd src
$ make install PREFIX=/usr/local/redis
移动配置文件到安装目录下
$ cd ../
$ mkdir /usr/local/redis/etc
$ mv redis.conf /usr/local/redis/etc
配置redis
# 将daemonize no 改成daemonize yes
$ vi /usr/local/redis/etc/redis.conf
将redis加入到开机启动
# 在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
$ vi /etc/rc.local
开启redis 服务
# 启动redis
$ ./redis-server /usr/local/redis/etc/redis.conf
MySQL安装配置
lkt.sql 是主库数据库脚本
xxl_job.sql 是分布式数据库脚本
安装完MySQL请分别新建数据库并导入脚本
方式一:宝塔安装mysql【推荐】
直接在宝塔的软件商店中搜索mysql 安装5.6版本。
方式二:手动安装MySQL
8.0/5.7 需要修改配置兼容 ,修改后需要重启mysql服务 (建议使用MySQL 5.5-5.6)。
# 修改my.ini 或者my.conf 修改保存 然后重启mysql 服务
# 需要试一下其中之一只有一个可以
sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE
# 或
sql_mode = NO_AUTO_VALUE_ON_ZERO
查看CentOS是否自带的MySQL,如果已经安装需要卸载。如果没有找到,则表示没有安装。\
$ rpm -qa | grep mysql
在线获取CentOS7的mysql的rpm的安装文件,直接执行如下命
$ wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
执行安装命令
$ rpm -ivh mysql80-community-release-el7-1.noarch.rpm
得到两个配置文件,在/etc/yum.repos.d目录下
mysql-community.repo用于指定下载哪个版本的安装包
mysql-community-source.repo用于指定下载哪个版本的源码
修改MySQL的下载配置文件
1、进入目录命令:
$ cd /etc/yum.repos.d
2、编辑配置文件命令:
3、把MySQL8的下载关闭,将enabled设置为0
保存修改退出。
在当前目录/etc/yum.repos.d下执行下面的命令,开始在线下载:客户端,服务器端,开发的工具包。
在线下载安装命令介绍:yum(全称为 Yellow dog Updater, Modified)作用:用于自动从服务器上下载相应的软件包,自动安装,并且自动下载它的依赖包。
1、进行在线下载安装mysql命令
$ yum -y install mysql-community-client mysql-community-server mysql-community-devel
2、使用rpm命令,可以查询到mysql已经安装好的包
$ rpm -qa |grep mysql
启动MySQL服务并登录
1、启动mysql的服务
$ systemctl start mysqld
2、将mysql加到系统服务中并设置开机启动
$ systemctl enable mysqld
3、登录mysql,root用户默认没有密码
$ mysql -uroot
4、在mysql中修改自己的密码
设置远程访问权限、开放端口号
1、开启mysql的远程登录权限,默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启,并且刷新权限缓存。远程登录mysql的权限登录mysql后输入如下命令:
grant all privileges on . to ‘root’@’%’ identified by ‘root’;
flush privileges;
2、开放Linux的对外访问的端口3306
#开放的端口永久保存到防火墙
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重启防火墙
$ systemctl restart firewalld
Nacos 部署安装 【独立版】
目前是用的nacos 配置信息存储在mysql数据库中。
安装
项目docs目录下面的soft文件夹中有Nacos 2.1.1文件夹,上传到服务器,解压target。
配置
1、在mysql数据库中新建 nacos_db 数据库,并导入脚本nacos_db.sql(邮件附带)。
2、修改Nacos配置文件 application.properties,主要修改数据库密码
#**************************************************************#
# 主要是修改这段配置 开始
#**************************************************************#
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Include message field
server.error.include-message=ON_PARAM
### Default web server port:
server.port=8848
#*************** Network Related Configurations ***************#
#*************** Config Module Related Configurations 配置数据库链接信息 ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://localhost:3306/nacos_db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=51bbec4bcde2ef40
#**************************************************************#
# 主要是修改这段配置 结束
#**************************************************************#
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000
#*************** Metrics Related Configurations ***************#
### Metrics for prometheus
#management.endpoints.web.exposure.include=*
### Metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
### Metrics for influx
management.metrics.export.influx.enabled=false
#*************** Access Log Related Configurations ***************#
### If turn on the access log:
server.tomcat.accesslog.enabled=true
### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
### The directory of access log:
server.tomcat.basedir=file:.
#*************** Access Control Related Configurations ***************#
### If enable spring security, this option is deprecated in 1.2.0:
#spring.security.enabled=false
### The ignore urls of auth, is deprecated in 1.2.0:
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=nacos
### If turn on auth system:
nacos.core.auth.enabled=false
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=true
### Since 1.4.1, Turn on/off white auth for user-agent: nacos-server, only for upgrade from old version.
nacos.core.auth.enable.userAgentAuthWhite=false
### Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
### worked when nacos.core.auth.system.type=ldap,{0} is Placeholder,replace login username
#*************** Istio Related Configurations ***************#
### If turn on the MCP server:
nacos.istio.mcp.server.enabled=false
#*************** Core Related Configurations ***************#
修改启动脚本
Linux、MacOS 修改startup.sh 152行:集群模式 154行:单机模式
#!/bin/bash
# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
error_exit ()
{
echo "ERROR: $1 !!"
exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
if [ -z "$JAVA_HOME" ]; then
if $darwin; then
if [ -x '/usr/libexec/java_home' ] ; then
export JAVA_HOME=`/usr/libexec/java_home`
elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
fi
else
JAVA_PATH=`dirname $(readlink -f $(which javac))`
if [ "x$JAVA_PATH" != "x" ]; then
export JAVA_HOME=`dirname $JAVA_PATH 2>/dev/null`
fi
fi
if [ -z "$JAVA_HOME" ]; then
error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!"
fi
fi
export SERVER="nacos-server"
# 集群模式
# export MODE="cluster"
# 独立模式
export MODE="standalone"
export FUNCTION_MODE="all"
export MEMBER_LIST=""
export EMBEDDED_STORAGE=""
while getopts ":m:f:s:c:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
s)
SERVER=$OPTARG;;
c)
MEMBER_LIST=$OPTARG;;
p)
EMBEDDED_STORAGE=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=`cd $(dirname $0)/..; pwd`
export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/
#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then
JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true"
fi
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
fi
if [[ "${FUNCTION_MODE}" == "config" ]]; then
JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=config"
elif [[ "${FUNCTION_MODE}" == "naming" ]]; then
JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=naming"
fi
JAVA_OPT="${JAVA_OPT} -Dnacos.member.list=${MEMBER_LIST}"
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400"
else
JAVA_OPT_EXT_FIX="-Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext"
JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
fi
JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins/health,${BASE_DIR}/plugins/cmdb,${BASE_DIR}/plugins/selector"
JAVA_OPT="${JAVA_OPT} -Dnacos.home=${BASE_DIR}"
JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${SERVER}.jar"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} --spring.config.additional-location=${CUSTOM_SEARCH_LOCATIONS}"
JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/nacos-logback.xml"
JAVA_OPT="${JAVA_OPT} --server.max-http-header-size=524288"
if [ ! -d "${BASE_DIR}/logs" ]; then
mkdir ${BASE_DIR}/logs
fi
echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}"
if [[ "${MODE}" == "standalone" ]]; then
echo "nacos is starting with standalone"
else
echo "nacos is starting with cluster"
fi
# check the start.out log output file
if [ ! -f "${BASE_DIR}/logs/start.out" ]; then
touch "${BASE_DIR}/logs/start.out"
fi
# start
echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
if [[ "$JAVA_OPT_EXT_FIX" == "" ]]; then
nohup "$JAVA" ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
else
nohup "$JAVA" "$JAVA_OPT_EXT_FIX" ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
fi
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
启动
Linux/MacOS
# 进入nacos的bin目录
cd {nacos_home}/bin
./startup.sh
# 可以查看nacos 启动日志
tail -f {nacos_home}/logs/start.out
访问
打开浏览器输入,http://localhost:8848/nacos/ 默认账户密码:nacos/laike
Seata安装部署
目前是用的nacos 配置信息存储在mysql数据库中。
安装
项目docs目录下面的soft文件夹中有seata1.6.1文件夹,上传到服务器,解压target。
配置
1、在mysql数据库中新建 seata_db 数据库,并导入脚本 seata_db.sql(邮件附带)。
2、修改Seata配置文件 application.yml.
在Nacos中配置SeataServer的配置信息 data-id名称要和{seata_home}/conf/application.yml中的一致
在nacos的public命名空间加入 配置 seataServer-dev.properties 文件如下配置 需要修改数据库配置
#For details about configuration items, see https://seata.io/zh-cn/docs/user/configurations.html
#Transport configuration, for client and server
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
transport.serialization=seata
transport.compressor=none
#Transaction routing rules configuration, only for the client
# 此处的mygroup名字可以自定义,只修改这个值即可
service.vgroupMapping.mygroup=default
#If you use a registry, you can ignore it
#service.default.grouplist=127.0.0.1:8091
#service.enableDegrade=false
#service.disableGlobalTransaction=false
#Transaction rule configuration, only for the client
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=true
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
#For TCC transaction mode
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h
#Log rule configuration, for client and server
log.exceptionRate=100
#Transaction storage configuration, only for the server. The file, db, and redis configuration values are optional.
# 默认为file,一定要改为db,我们自己的服务启动会连接不到seata
store.mode=db
store.lock.mode=db
store.session.mode=db
#Used for password encryption
#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
# 修改mysql的配置
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 指定seata的数据库,下面会提
store.db.url=jdbc:mysql://localhost:3306/seata_db?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=root
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=50000
#Transaction rule configuration, only for the server
server.recovery.committingRetryPeriod=600000
server.recovery.asynCommittingRetryPeriod=600000
server.recovery.rollbackingRetryPeriod=600000
server.recovery.timeoutRetryPeriod=600000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.distributedLockExpireTime=600000
server.xaerNotaRetryTimeout=600000
server.session.branchAsyncQueueSize=50000
server.session.enableBranchAsyncRemove=false
server.enableParallelRequestHandle=false
#Metrics configuration, only for the server
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898
{seata_home}/conf/application.yml 中的 注册中心 配置中心 和seata的数据存储配置
server:
# 访问端口 可以修改
port: 7091
spring:
application:
# 应用名称 可以修改
name: seata-server
logging:
config: classpath:logback-spring.xml
file:
path: ${user.home}/logs/seata
extend:
logstash-appender:
destination: 127.0.0.1:4560
kafka-appender:
bootstrap-servers: 127.0.0.1:9092
topic: logback_to_logstash
## 修改配置文件开始
# 控制台
console:
user:
username: seata
password: seata
seata:
# 配置中心
config:
type: nacos
nacos:
# nacos 访问地址 [可修改]
server-addr: localhost:8848
# nacos 命名空间 [可修改]
namespace: da8f7d37-960a-4c94-9691-9c77711d995c
# nacos 分组 [可修改]
group: DEFAULT_GROUP
# nacos 账户密码 [可修改]
username: nacos
password: laike
# seata配置 先配好nacos 把seataServer-dev.properties 复制到nacos里面
# 这个可以直接放在nacos的public 命令空间里面 [可修改,一定要跟上面的seata-server.properties文件名一致]
data-id: seataServer-dev.properties
# 注册中心
registry:
type: nacos
nacos:
# 应用名
application: seata-server
# nacos 访问地址
server-addr: localhost:8848
# nacos 分组
group: DEFAULT_GROUP
# nacos 命名空间
namespace: da8f7d37-960a-4c94-9691-9c77711d995c
cluster: default
# 账户密码
username: nacos
password: laike
## 修改配置文件结束
security:
secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
tokenValidityInMilliseconds: 1800000
ignore:
urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login
启动
Linux、MacOS 启动
# 切换到seata的bin目录
cd {seata_home}/bin/
./seata-server.sh
# 查看日志
tail -f ../logs/start.out
访问
打开浏览器输入,访问地址:http://localhost:7091/#/ 账户密码:seata/seata
Nginx配置
安装
在软件商店搜索安装nginx
配置
nginx配置文件所在路径,建议收藏
/www/server/panel/vhost/nginx
打开站点配置文件
删除红框部分
添加如下配置,根据实际情况调整
# websocket 配置
location /wss/ {
#通过配置端口指向部署websocker的项目
proxy_pass http://localhost:18180/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
#网关1
location /gw {
proxy_pass http://localhost:18001/gw;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#图片配置开始
location /pic {
alias /usr/local/imgs;
add_header Access-Control-Allow-Origin https://h5.think.laiketui.net;
}
location /app {
alias /usr/local/imgs/;
}
#图片分享-店铺目录
location /share/mch {
alias /usr/local/imgs/share/mch;
}
#静态资源库
location /images {
alias /usr/local/imgs/;
add_header Access-Control-Allow-Origin https://h5.think.laiketui.net;
}
#验证码
location /pc_images {
alias /usr/local/imgs/;
}
# 分享路径
location /image/share {
alias /usr/local/imgs/image/share;
}
#图片配置结束
#微信回调
location /wx_notify {
proxy_pass http://localhost:18001/payment/v2/weChatNotify;
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 /zfb_notify {
proxy_pass http://localhost:18001/payment/alipayNotify;
proxy_set_header host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#minio配置
#绑定域名
location /minio {
proxy_pass http://localhost:9090/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Origin '';
chunked_transfer_encoding off;
}
#域名图片访问
location /laikeds {
proxy_pass http://localhost:9018/laikeds;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
#minio配置结束
验证
使用网址+/gw,出现如下信息表示nginx配置成功
项目部署
jar包部署
使用idea导入项目,设置jdk版本使用1.8
设置maven版本为3.6.3
手动导入依赖到本地仓库
修改每个模块的pom文件,改war为jar,开放注释代码
使用maven打包
上传jar包到服务器
启动
方式一:使用nacos配置节点,在nacos中配置每个模块的IP和端口号(不支持多节点部署)
使用启动命令运行
nohup java -jar ./file.jar
方式二:启动脚本传参
注释掉nacos的IP和端口配置
使用启动命令指定端口和IP
同ip不同端口:
nohup java -jar ./file.jar --server.port=18001 --server.address=localhost &
nohup java -jar ./file.jar --server.port=18002 --server.address=localhost &
nohup java -jar ./file.jar --server.port=18003 --server.address=localhost &
nohup java -jar ./file.jar --server.port=18004 --server.address=localhost &
同端口不同ip:
nohup java -jar ./file.jar --server.port=18001 --server.address=192.168.0.3 &
nohup java -jar ./file.jar --server.port=18001--server.address=192.168.0.4 &
nohup java -jar ./file.jar --server.port=18001 --server.address=192.168.0.5 &
举例:
使用方法一启动gateway.jar
nohup java -jar gateway.jar
查看启动日志
tail -f nohup.out
测试启动是否成功
curl http://localhost:18001/gw
新建网站ssl证书配置
创建新站点
ssl配置
开启强制HTTPS并保存
图片资源上传
新建/usr/local/imgs文件夹,权限设置为777
上传图片资源
解压到当前文件夹