来客推java部署文档-tomcat版
1. 准备
1.1. 本文档使用对象
产品、研发、运维人员,请仔细阅读。
1.2. 相关说明
1、当前文档介绍的是在同一台云服务器上的部署:
部分模块统一部署:网关模块、移动后台模块、管理后台模块、用户模块、订单模块、店铺模块、优惠券、商品模块
部分模块单独部署:支付模块
说明:
1、如果有模块laike-seckill 秒杀、laike-plugin-integral 积分商城、laike-plugin-presell商品预售、laike-plugin-aution竞拍、laike-memeber会员制、laike-diy插件的需要单独部署到apache-tomcat-plugins中
2、laike-plugin-distribution 分销插件、laike-coupon 优惠券插件模块、laike-store-pc pc商城接口、laike-admin-mch pc店铺接口 可以和其他模块一起部署到 apache-tomcat-9.0.55
3、系统架构支持分布式部署:即可将系统的各个模块单独分别部署到不同的服务器上,目前需要修改代码的配置文件。数据库可使用集群部署,目前需要修改数据库配置信息。
1.3 需要启动的服务
1、laike-gateway 必须启动
2、laike-admin-store 管理后台必须启动的服务
3、laike-app 移动端必须启动的服务
2. 环境配置信息
名称 | 配置值 | 是否必须 |
---|---|---|
Linux | Centos7 | 推荐 |
Cpu/内存 | 4核/16G | 是 |
硬盘 | 100g | 推荐 |
网络 | 3m | 推荐 |
Mysql | 5.5-5.6 | 是 |
Jdk | 1.8.121 | 是 |
Tomcat | 9+ | 是 |
Zookeeper | 3.5.9[dubbo2] 、3.7.1[dubbo3] | 是 |
Redis | 6.2.5 | 推荐 |
OSS | 阿里云oss服务 | 是 |
短信服务 | 阿里云国内短信服务 | 是 |
支付配置 | 微信手机支付(v2)、jsapi支付(v2)、支付宝wap支付 | 推荐 |
Nginx | 最新版本 | 是 |
3. 环境安装
3.1. jdk安装
3.1.1. 首先去官网下载jdk
3.1.2.检查当前系统是否已经安装openJDK,如果已经安装进行卸载
3.1.3.检查openJDK是否安装命令:
$ rpm -qa|grep jdk
(如果有安装openJDK 那么除了copy-jdk-configs-3.3-2.el7.noarch文件可以不用删除。其他的openJdk全部要卸载)
$ yum -y remove xxxx
3.1.4.进入目录
$ cd /usr/local
3.1.5.创建java安装目录:
$ mkdir /usr/local/java
3.1.6.解压安装包到 /usr/local/java目录:
$ tar -zxvf jdk-8u162-linux-x64.tar.gz /usr/local/java
3.1.7.配置jdk环境变量:
编辑/etc/下的profile文件: vi /etc/profile在文件末尾添加如下配置:
#jdk解压路径,根据实际情况配置 export JAVA_HOME=/usr/local/java/jdk1.8.0_121 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
保存配置文件退出(vi编辑器使用自备)
3.1.8.使/etc/profile生效 :source /etc/profile
$ source /etc/profile
3.1.9.测试jdk安装是否成功
$ java -version
3.2.zookeeper安装 [注意版本] dubbo3的请安装 zookeeper 3.7.1
3.2.1. 预备
安装java环境,并配置好java相关的环境变量$JAVA_HOME
3.2.2.下载最新的稳定版并解压—若无法下载请移步官网下载
$ wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz $ tar -zxvf zookeeper-3.5.9.tar.gz
可执行文件都在bin/目录下,配置都在conf/目录下
3.2.3.配置
conf/目录下有个zoo_sample.cfg,是样板配置文件
复制一份成zoo.cfg
里面有两个比较重要的配置:
# 数据存放位置,可根据需要修改 dataDir=/var/lib/zookeeper # 服务监听端口,可根据需要修改 clientPort=2181
3.2.4.启动服务
$ bin/zkServer.sh start
如果未启动成功,一个检查JAVA_HOME是否正确设置,二个看端口是否冲突
【注】
1、可能需要新增一个配置项 避免和tomcat 的8080端口冲突起不动zk服务
admin.serverPort=18100【配置一个未使用的端口】2、电脑重启后zk启动需要删掉这两个文件夹下面的version-2
dataDir=/tmp/zookeeper/data dataLogDir=/tmp/zookeeper/log3.3.宝塔安装(方便运维,非必须安装,建议安装)需开放端口:888、8888、80、443 部署后可以关闭
3.3.1.注册宝塔账户
注册地址:https://www.bt.cn/register.html 且需要实名认证,已经有则忽略
3.3.2.安装宝塔
登录linux 服务器系统:
Ip: 47.xxx.x.32
用户名/密码:root/laiketui.com建议使用root权限的用户
登录成功后在控制台输入:
$ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
出现以下信息表示安装成功宝塔。
云服务器安全组和宝塔开通以下端口
$ iptables -I INPUT -p tcp --dport 8888 -j ACCEPT $ iptables -I INPUT -p tcp --dport 888 -j ACCEPT $ iptables -I INPUT -p tcp --dport 80 -j ACCEPT $ iptables -I INPUT -p tcp --dport 443 -j ACCEPT $ iptables -I INPUT -p tcp --dport 3366 -j ACCEPT # tomcat1用的端口 $ iptables -I INPUT -p tcp --dport 18001 -j ACCEPT # tomcat2用的端口 laike-seckill laike-intergral $ iptables -I INPUT -p tcp --dport 18080 -j ACCEPT3.4.tomcat安装
部署文档会安装两个tomcat 步骤相同。启动的时候需要修改下第二个tomcat的conf/server.xml 文件中的端口。8080/8005/443这几个需要修改,两个tomcat在同一台服务器上面的端口不能使用相同的。
3.4.1.下载tomcat—若无法下载请移步官网
切换到 /usr/local/ 目录,执行wget命令:
$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz3.4.2.解压tomcat
执行命令:
# -C 可以自定义解压后文件夹名,如:tomcat1、tomcat2 tar -zxvf apache-tomcat-9.0.10.tar.gz⚠️第二次和第一次安装的时候文件夹名不要相同。
3.4.3. 启动tomcat
进入apache-tomcat-9.0.1文件夹下的bin目录执行命令:
./start.sh3.4.4. 修改tomcat/conf/server.xml
<Service name="Catalina"> <Connector port="端口1" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="16443" />3.4.5. 修改tomcat/conf/catalina.properties
# Default list of JAR files that should not be scanned using the JarScanner # functionality. This is typically used to scan JARs for configuration # information. JARs that do not contain such information may be excluded from # the scan to speed up the scanning process. This is the default list. JARs on # this list are excluded from all scans. The list must be a comma separated list # of JAR file names. # The list of JARs to skip may be over-ridden at a Context level for individual # scan types by configuring a JarScanner with a nested JarScanFilter. # The JARs listed below include: # - Tomcat Bootstrap JARs # - Tomcat API JARs # - Catalina JARs # - Jasper JARs # - Tomcat JARs # - Common non-Tomcat JARs # - Test JARs (JUnit, Cobertura and dependencies) tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar启动后访问 http://ip:8080 出现tomcat初始化页面说明 tomcat安装成功。
重复3.4.1、3.4.2、3.4.3 、3.4.4、3.4.5 再安装一个tomcat文件。
3.5.安装mysql数据库
lkt.sql 是主库数据库脚本
xxl_job.sql 是分布式数据库脚本
3.5.1.方式一:宝塔安装mysql【推荐】
直接在宝塔的软件商店中搜索mysql 安装5.6版本,界面操作方便快捷。
3.5.2.方式二:手动安装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_ZERO3.5.2.1. 查看CentOS是否自带的MySQL,如果已经安装需要卸载。如果没有找到,则表示没有安装。
$ rpm -qa | grep mysql3.5.2.2. 在线获取CentOS7的mysql的rpm的安装文件,直接执行如下命
$ wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm3.5.2.3. 执行安装命令
$ rpm -ivh mysql80-community-release-el7-1.noarch.rpm3.5.2.4. 得到两个配置文件,在/etc/yum.repos.d目录下
mysql-community.repo用于指定下载哪个版本的安装包
mysql-community-source.repo用于指定下载哪个版本的源码
3.5.2.5. 修改MySQL的下载配置文件
1、进入目录命令:
$ cd /etc/yum.repos.d2、编辑配置文件命令:
3、把MySQL8的下载关闭,将enabled设置为0
保存修改退出。
3.5.2.6. 在当前目录/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
3.5.2.7. 启动MySQL服务并登录
1、启动mysql的服务
$ systemctl start mysqld2、将mysql加到系统服务中并设置开机启动
$ systemctl enable mysqld3、登录mysql,root用户默认没有密码
$ mysql -uroot
4、在mysql中修改自己的密码
3.5.2.8. 设置远程访问权限、开放端口号
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
3.6.安装redis
3.6.1.方式一:宝塔安装redis【推荐】
在宝塔软件商店搜索redis 点击列表操作项的安装进行安装,等待安装结束。下图是已经安装的出现更新、设置、卸载
3.6.2.方式二:手动安装redis
准备:https://redis.io/download 下载redis稳定版本
一、安装redis-6.2.5.tar.gz:
1、上传附件redis资源
redis-6.2.5.tar.gz
2、解压
$ tar xzvf redis-6.2.5.tar.gz3、安装
$ cd redis-6.2.5 $ make $ cd src $ make install PREFIX=/usr/local/redis4、移动配置文件到安装目录下
$ cd ../ $ mkdir /usr/local/redis/etc $ mv redis.conf /usr/local/redis/etc5、配置redis为后台运行
# 将daemonize no 改成daemonize yes $ vi /usr/local/redis/etc/redis.conf6、将redis加入到开机启动
# 在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令) $ vi /etc/rc.local7、开启redis 服务
# 启动redis $ ./redis-server /usr/local/redis/etc/redis.conf3.7.配置信息
3.7.1.配置端口信息
整体配置信息修改示意图 没有购买的模块请忽略【需要启动的模块也在图里】
laike-xxxx #模块名 ├── laike-xxxx.iml ├── mvnw ├── mvnw.cmd ├── pom.xml #maven构建文件 ├── src #源码文件 │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── laiketui │ │ │ └── xxxx #模块名 │ │ │ ├── LaikeXxxxApplication.java #模块启动类 │ │ │ ├── common #模块内通用文件夹 │ │ │ │ ├── consts #模块内常量文件夹 │ │ │ │ └── uitls #模块帮助类文件夹 │ │ │ ├── controller #控制层代码 │ │ │ └── service #服务层代码 │ │ └── resources │ │ ├── application.yml #模块配置文件 │ │ ├── logback-spring.xml #日志配置文件 │ │ ├── static #静态资源 │ │ └── templates #静态模版 │ └── test #测试代码 └── target #模块编译后文件存放文件夹3.7.2.通用配置-数据库配置
开发环境:laike-core: ../resource/application-dev.yml
生产环境:laike-core: ../resource/application-prod.ymldruid: allow: ip: 127.0.0.1 login: user_name: root password: laiketui18 spring: devtools: restart: enabled: false jmx: enabled: false http: encoding: force: true charset: UTF-8 enabled: true #数据库配置开始 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&autoReconnect=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false username: root password: xxxxx #数据库配置结束 type: com.alibaba.druid.pool.DruidDataSource initialSize: 1 minIdle: 1 maxIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true filters: stat,wall maxPoolPreparedStatementPerConnectionSize: 20 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 #redis配置开始 redis: database: 0 host: 127.0.0.1 port: 6379 password: 123456 # 数据库配置结束 lettuce: pool: #连接池中的最大空闲连接 默认8 max-idle: 100 # 连接池中的最小空闲连接 默认0 min-idle: 0 # 连接池最大连接数 默认8 ,负数表示没有限制 max-active: 20 # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认-1 max-wait: -1 timeout: 30000 logging: level: com: laiketui: debug3.7.3.网关配置
laike-gateway:网关配置
../resources/application.yml
../resources/application-dev.yml #开发环境
../resources/application-pord.yml #生产环境laike-gateway #模块名 ├── src #源码文件 │ ├── main │ │ ├── java │ │ └── resources │ │ ├── application.yml #模块配置文件 │ │ ├── application-dev.yml #模块配置文件 │ │ ├── application-prod.yml #模块配置文件修改:
server: # 【修改】http服务注册端口;若独立部署时需要与tomcat的配置server.xml中的对外访问端口一致;如果被占用则需要 修改成其他端口!! port: 18001 # 【修改】 tomcat: uri-encoding: UTF-8 ssl: enabled: false druid: allow: ip: 127.0.0.1 login: user_name: root password: 1234321 dubbo: application: name: laike-gateway registry: id: zookeeper-registry protocol: zookeeper address: 127.0.0.1:2181 protocol: name: dubbo # 【修改】dubbo服务端口,如果被占用则需要修改成其他端口!! port: 20888 # 【修改】 accesslog: dubbo-access.log provider: retries: 2 timeout: 3000 monitor: protocol: registry spring: jmx: enabled: false application: name: laike-gateway resources: static-locations: classpath:/static/ devtools: restart: enabled: false mvc: static-path-pattern: /gw/images/** multipart: max-file-size: 10MB max-request-size: 30MB file-size-threshold: 1 # 上传文件的临时目录 location: /upload http: encoding: force: true charset: UTF-8 enabled: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver # 【修改】网关链接的数据配置信息开始!! url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&zeroDateTimeBehavior=convertToNull username: root password: xxxxxxxxxx # 【修改】网关链接的数据配置信息结束!! type: com.alibaba.druid.pool.DruidDataSource initialSize: 1 minIdle: 1 maxIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: true testOnReturn: false poolPreparedStatements: false filters: stat,wall maxPoolPreparedStatementPerConnectionSize: 20 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 redis: database: 0 # 【修改】网关redis配置开始!! host: 127.0.0.1 port: 6379 password: 1234567 # 【修改】网关redis配置结束!! connTimeout: 10000 CachingTime: 900 # 每次释放连接的最大数目,默认3 numTestsPerEvictionRun: 1024 lettuce: pool: # 连接池中的最大空闲连接 默认8 max-idle: 1000 # 连接池中的最小空闲连接 默认0 min-idle: 10 # 连接池最大连接数 默认8 ,负数表示没有限制 max-active: 100 # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认-1 max-wait: -1 messages: fallbackToSystemLocale: false basename: i18n/tips encoding: utf-8 messages: basenames: i18n/tips encoding: UTF-8 logging: config: classpath:logback-spring.xml level: com: laike: debug日志配置:
laike-xxxx #模块名 ├── src #源码文件 │ ├── main │ │ ├── java │ │ └── resources │ │ ├── logback-spring.xml #日志配置文件修改:<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <!-- 【修改】日志文件记录位置 --> <property name="logBase" value="/var/log/laike/gateway/logs/" /> <!-- 定义日志存储的路径,不要配置相对路径 --> <property name="FILE_PATH" value="${logBase}gw.%d{yyyy-MM-dd}.%i.log" /> <!-- 控制台输出日志 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 按照上面配置的LOG_PATTERN来打印日志 --> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!--每天生成一个日志文件,保存10天的日志文件。rollingFile是用来切分文件的 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${FILE_PATH}</fileNamePattern> <!-- 修改 配置保留最近多少天的日志 --> <maxHistory>10</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- 日志文件的最大大小 --> <!-- 【修改】配置日志文件大小 --> <maxFileSize>2MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- project default level --> <logger name="src" level="INFO" /> <!-- 日志输出级别 常用的日志级别按照从高到低依次为:ERROR、WARN、INFO、DEBUG。 --> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> </configuration>3.7.4. 其他模块配置
其他模块包括:用户、商品、订单、店铺、优惠券、支付、移动端、管理后台、分销、秒杀
签到等
配置文件位置如下:
laike-xxxx #模块名 ├── src #源码文件 │ ├── main │ │ ├── java │ │ └── resources │ │ ├── application.yml #模块配置文件 │ │ ├── application-dev.yml #开发环境配置文件 │ │ ├── application-prod.yml #生产环境配置文件server: #配置成和tomcat端口一致(war部署) #【修改】http服务注册端口需要和所在tomcat的server.xml 对外端口配置一致!! # port: 18002 port: 18001 ssl: enabled: false tomcat: uri-encoding: UTF-8 servlet: # 当部署到同一个tomcat中的webapp 里面的时候 context-path 需要修改成跟webapp中的文件名同名; # 如果没有修改则默认取tomcat中的文件夹名称 作为contextpath的默认值 context-path: /user #http服务所在的内网/或外网节点ip node: #【修改】http服务所在IP地址,默认本机!! ip: 127.0.0.1 dubbo: application: name: laike-user registry: id: zookeeper-registryapplication.yml protocol: zookeeper address: 127.0.0.1:2181 protocol: name: dubbo #【修改】dubbo服务服务的端口,若被占用需要更换!! port: 20889 accesslog: dubbo-access.log provider: retries: 0 # 远程服务调用重试次数, 不包括第一次调用, 不需要重试请设为0 timeout: 600000 # 远程服务调用超时时间(毫秒) delay: -1 # 延迟注册服务时间(毫秒)- , 设为-1时, 表示延迟到Spring容器初始化完成时暴露服务 filter: -exception,dubboExceptionFilter # 服务提供方远程调用过程拦截器名称, 多个名称用逗号分隔 monitor: protocol: registry spring: profiles: active: common jmx: enabled: false redis: # 【修改】redis配置!! database: 0 host: 127.0.0.1 port: 6379 password: 123456 # 【修改】redis配置结束!! lettuce: pool: # 连接池中的最大空闲连接 默认8 max-idle: 8 # 连接池中的最小空闲连接 默认0 min-idle: 0 # 连接池最大连接数 默认8 ,负数表示没有限制 max-active: 8 # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认-1 max-wait: -1 timeout: 30000 logging: config: classpath:logback-spring.xml level: com: laiketui: info日志配置:
位置
laike-xxxx #模块名 ├── src #源码文件 │ ├── main │ │ ├── java │ │ └── resources │ │ ├── logback-spring.xml #日志配置文件<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <!-- 【修改】日志文件记录位置,必须要存在否则启动tomcat会报错 --> <property name="logBase" value="/var/log/laike/user/logs/" /> <!-- 定义日志存储的路径,不要配置相对路径 --> <property name="FILE_PATH" value="${logBase}user.%d{yyyy-MM-dd}.%i.log" /> <!-- 控制台输出日志 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 按照上面配置的LOG_PATTERN来打印日志 --> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!--每天生成一个日志文件,保存10天的日志文件。rollingFile是用来切分文件的 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${FILE_PATH}</fileNamePattern> <!-- keep 10 days' worth of history --> <maxHistory>10</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- 日志文件的最大大小 --> <maxFileSize>2MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- project default level --> <logger name="src" level="INFO" /> <!-- 日志输出级别 常用的日志级别按照从高到低依次为:ERROR、WARN、INFO、DEBUG。 --> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> </configuration>3.8. 上传war包
修改完代码中的配置信息后,使用开发工具将java代码打包成war包,【推荐】使用宝塔直接上传war包到tomcat1和tomcat2的webapps目录下面;或者使用其他ssh工具上传war包。然后分别启动tomcat1、2;
注意*:**tomcat的启动需要等待一段时间**;**关闭后如果发现有java进程需要手动 kill -9 java 进程ID**。**请区分好进程别kill错了**。*
3.9. nginx设置
tomcat内网IP访问;nginx代理映射请求:
3.9.1. 网关接口映射
#网关映射 不要用127.0.0.1 location /gw { # 网关实际访问地址 proxy_pass http://ip:端口/gateway/gw; proxy_set_header host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }3.9.2.H5图片访问映射
#图片映射 location /pic { # 移动端图片都放在laike-app模块里面 proxy_pass http://ip:端口/app; 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 /app { proxy_pass http://ip:port/app; proxy_set_header host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #静态资源库 - 没有购买pc商城的可以不用配这个 location /pc_images { alias /usr/local/imgs/; }3.9.3.微信回调v2
location /wx_notify { proxy_pass http://ip:端口2/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; }3.9.4. 支付宝回调
location /zfb_notify { proxy_pass http://ip:端口2/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; }3.9.5 若图片无法访问则注释掉以下配置
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ # { # # root "/usr/local/apache-tomcat-9.0.50/webapps/gateway/WEB-INF/classes/static"; # # alias /usr/local/apache-tomcat-9.0.50/webapps/gateway/WEB-INF/classes/static; # expires 30d; # error_log /dev/null; # access_log /dev/null; # }3.9.6. tomcat启动报错处理
修改:conf/catanila.properties 108行
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar3.9.7. tomcat的关闭需要注意:shutdown.sh 不会关闭进程 需要kill一下进程ID
3.9.8. 若启动后访问有linkageError错误则注释掉 ,删掉项目中的所有devtools
3.9.9. 访问网关出现以下提示说明网关部署成功!
http://domain|IP:port/gw、 https://domain|IP:port/gw
{"code":"5003","message":"异常请求","data":null}