一、安装jdk环境(1.8)
1、以Linux系统部署为主,我这边用的系统是ubuntu。
2、准备好一个JDK的压缩包,可以去官网下载,常用版本JDK8
3、将压缩包可以存放于 /opt 或者 /usr/local 目录下,然后进行解压,如果是.zip压缩文件,可以使用unzip 命令来解压缩。
// 解压命令
tar -xvf jdk-8u341-linux-x64.tar.gz
4、配置环境变量
// 进入编辑配置状态
vim /etc/profile
// 添加JAVA_HOME 路径一定要和自己解压后的文件路径一致
export JAVA_HOME=/opt/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5、重新加载配置,将第四步修改的环境变量进行重新加载生效。
// 重新加载配置文件
source /etc/profile
6、进行测试
java -version
如果此时显示了Java的版本好说明已经完成了
二、安装Nacos
1、下载好压缩包存放于/home/data/cgt/nacos (没有目录文件可以自行创建,根据自己的需求放在自己所在的文件夹中)
// 下载nacos的地址
https://github.com/alibaba/nacos/releases/tag/2.0.4
// 创建目录
mkdier 目录名
2、解压后进入bin目录,单线程独立启动nacos,这个一定要注意,比较重要。
sh startup.sh -m standalone
【注意】:
nacos独立启动,如未配置集群,需要下线集群管理里面的其它节点,否则线上部署独立启动后会报错。
三、服务bootstrap.yml配置
# Tomcat
server:
port: 9205
# Spring
spring:
application:
# 应用名称
name: qzd-merchant
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
password: nacos
username: nacos
namespace: fefe5014-446c-4129-ac64-2c14335ade23
config:
namespace: fefe5014-446c-4129-ac64-2c14335ade23
password: nacos
username: nacos
# 配置中心地址
server-addr: 127.0.0.1:8848
# 配置文件格式
file-extension: yml
# 共享配置 ${spring.profiles.active}
shared-configs:
- application-prod.${spring.cloud.nacos.config.file-extension}
main:
allow-circular-references: true
【注意】:
discovery是服务注册管理,server-addr: 127.0.0.1:8848 需要填写nacos部署的服务器ip地址,将其配置配好后可以注册到nacos。
config是服务配置管理(如数据连接、mq、redis等),server-addr: 127.0.0.1:8848 需要填写nacos部署的服务器ip地址,将其配置配好后可以使用配置文件。
四、服务包部署
1、将自己的服务项目打包后上传至服务器指定目录
我习惯于存放在/home这个目录下,大家可以根据自己的情况而定。
2、项目jar包启动
(1)脚本一键启动
#!/bin/bash
#存放jar包的目录,此地的目录一定是自己当前目录存放的jar包位置目录,与启动脚本保持同级
APP_NAME=/home/cgt/data/qzd-gateway-encrypted.jar
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo $pid "进程终止成功"
sleep 2
#判断jar包文件是否存在,如果存在启动jar包
if test -e $APP_NAME
then
echo '文件存在,开始启动此程序...'
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件 ip:为当前部署的服务器ip
nohup java -javaagent:$APP_NAME -jar -Dspring.cloud.nacos.discovery.ip=127.0.0.1 -Dcom.alibaba.nacos.naming.log.level=warn -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m $APP_NAME --spring.profiles.active=prod &
#输出启动成功
echo $APP_NAME' 启动成功...'
else
echo $APP_NAME'$APP_NAME 文件不存在,请检查。'
fi
【注意】:
上述脚本启动jar包目录需要和自己的jar包目录保持一致,启动命令里面的当前服务器公网ip一定不能弄错了,否则都会启动失败。(--spring.profiles.active=prod 这一句表示的是如果有多个配置文件,可以随意切换,多数据源配置,如果没有可以去掉这句。)
(2)命令行启动
nohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar -Dspring.cloud.nacos.discovery.ip=127.0.0.1 jeepay-payment.jar --spring.profiles.active=pro &
【注意】:
ip一定要是公网ip可访问,并且要和当前服务器ip对应。
五、nginx配置
nginx的下载和安装这里就不说了,不清楚的大家可以网上搜一搜都比较简单。
server {
listen 80;
# 安全证书
listen 443 ssl;
# 服务访问域名
server_name www.baidu.com;
#前端包的文件目录
root /usr/share/nginx/html/cgt;
index index.html index.htm;
# ssl认证证书,切记目录一定要是从根目录到具体的ssl证书位置
ssl_certificate /home/your.crt;
ssl_certificate_key /home/your.key;
error_page 404 /index.html;
location /api2 {
client_max_body_size 20M;
# 接口访问地址
proxy_pass https://www.baidu.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Headers 'Content-Type, Accept, Authorization, X-Requested-With, Origin, Accept,clientType,appId,rpcAppid,rpcSecretKey';
}
}
server {
listen 80;
listen 443 ssl;
# 接口域名
server_name www.baodu.com;
ssl_certificate /home/your.crt;
ssl_certificate_key /home/your.key;
error_page 404 /index.html;
location /api2 {
client_max_body_size 20M;
# 网关IP:端口 此处是网关服务的部署所在的服务器ip和网关端口
proxy_pass http://127.0.0.1:18018;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Headers 'Content-Type, Accept, Authorization, X-Requested-With, Origin, Accept,clientType,appId,rpcAppid,rpcSecretKey';
}
}
【注意】:
一般预留域名会有一个两个或者多个,我这边是使用的有两个域名,一个是面向用户访问的服务域名,还有一个内部接口调用的域名,具体可以根据自己的业务需求进行调整。由于小程序部署必须要安全证书,所以ssl配置也是必须的。关于路径问题一定要严谨,千万不能弄错了,否则会导致服务无法访问等等问题。
这里可以分享一下nginx下载后的启动命令
// 全局启动
systemctl restart nginx
// 查询启动状态
systemctl status nginx
// 重新加载启动
nginx -s reload
重新加载启动命令格外重要,每次修改nginx配置文件后都需要重新加载才能生效。文章来源:https://www.toymoban.com/news/detail-752425.html
文章来源地址https://www.toymoban.com/news/detail-752425.html
到了这里,关于Spring Cloud Alibaba 微服务部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!