轩2test

导航

maven项目部署及nginx反向代理配置

一、jenkins构建maven项目

1.创建一个maven项目,输入项目名称,如:ks-server;

 

 

 2.源码管理,及选择拉取代码的方式,及输入仓库地址和分支

如:

 

 

 3.前置步骤,填写pom文件有相关配置

 

 

 4.构建脚本:

#!/bin/bash
sudo scp -P 51668 /var/lib/jenkins/workspace/ks-service/ks-service/target/ks-service-1.0.0-SNAPSHOT.jar root@172.31.242.56:/mnt/java/11013/
sudo ssh -tt -p 51668 root@172.31.242.56 "cd /mnt/java/11013 && /bin/bash ./start.sh"

 

由于是做转发,从jenkins上拉的jar包从远程拷贝scp到56这台服务器上,并进入该目录下执行启动脚本

二、linux中启动脚本start.sh

cd /mnt/java/11013 

mkdir start.sh

vim start.sh

i进入命令行模式

#!/bin/bash
export BUILD_ID=dontKillMe
#最大等待时间
MAX_TIMEOUT=10
#项目端口
PROJECT_PORT=11013
WOEK_ID=1
DATA_ID=0
PROJECT_NAME="ks-service-1.0.0-SNAPSHOT.jar" #注:须须git上拉取到的jar包名称一致,否则找不到该包
PROJECT_PATH="/mnt/java/11013" #项目jar包路径
LOG_PATH="/mnt/java/11013"  #日志路径
JVM_OPTS="-Xms512m -Xmx2048m -Dapollo.bootstrap.eagerLoad.enabled=true -Dserver.port=${PROJECT_PORT} -Dlogging.path=${LOG_PATH}/logs -Ddcep.uuid.wordId=${WOEK_ID} -Dapollo.cluster=ks-service -Dapollo.meta=http://apollo.renmai.ai:8080 -Dapollo.bootstrap.enabled=true -Dapp.id=test-ddou -Denv=pro"
oldPid=$(sudo netstat -lnp|grep $PROJECT_PORT|grep -v grep|awk '{print $7}' |awk -F'/' '{print $1}')
if [ ${oldPid} ]; then
echo '存在服务,开始停止服务'
sudo kill -15 $oldPid
fi

for((i=1;i<=$MAX_TIMEOUT;i++))
do
# 等待1秒
sleep 1
oldPid=$(sudo netstat -lnp|grep $PROJECT_PORT|grep -v grep|awk '{print $7}' |awk -F'/' '{print $1}')
if [ ${oldPid} ]; then
echo '存在服务,正在停止服务'
else
break
fi
done

if [ ${oldPid} ]; then
echo '尝试'$MAX_TIMEOUT'次优雅停止服务失败,强制停止!!!'
sudo kill -9 $oldPid
else
echo '成功停止服务'
fi

oldPid=$(sudo netstat -lnp|grep $PROJECT_PORT|grep -v grep|awk '{print $7}' |awk -F'/' '{print $1}')

if [ ${oldPid} ]; then
echo '服务正在运行'
sleep 2
else
echo '服务停止成功!'
fi

echo '服务正在启动... ...'

echo $JVM_OPTS
nohup /mnt/java/java8/jdk1.8.0_231/bin/java $JVM_OPTS -jar $PROJECT_PATH/$PROJECT_NAME >nohup.out 2>&1 & sleep 3

三、相关配置

1.Apollo配置,文本,粘贴所有文件,发布,注意需要改的有mysql、redis、mongodb的端口号,项目服务的端口号

2.新建库,执行sql插入表等

四、nginx反向代理

(注:正向代理,代理的是客户端,向服务端获取资源,服务端不知道客户端是谁在访问;反向代理,则代理的是服务端,客户端发送请求,只管从代理服务器拿到响应的资源,但是并不知道是从哪台服务器上拿到的,影藏了真实的服务器地址,暴露的只是转发的地址,业务较多的时候,会多台服务器)

反向代理配置:nginx

--- cd /etc/nginx/conf.d

---- mkdir ks.conf

 

---- vim:

server {
listen 8882;
server_name 47.56.240.97;  #暴露的地址为外网 47.56.240.97,还需要打开外网的端口8882

#/usr/local/work/h5/admin

#d豆树api
location / {
proxy_pass http://172.31.242.56:8882/;   #需要打开8882端口,服务如果是放在本地则为127.0.0.1,如果放在内网172.31.242.56,则打开在内网的端口,
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


#数据看板h5                          #为h5资源,alias指定web资源存放的地址,则会在/etc/nginx/web/dashboard-h5/这个路径下去寻找静态资源文件,找到静态文件后index.htm,通过url:47.56.240.97:8882/dashboard-h5访问则会拉倒资源展现出来
location /dashboard-h5 {
alias /etc/nginx/web/dashboard-h5/;
index index.html index.htm;
try_files $uri $uri/ /dashboard-h5/index.html;
}


#周年庆WEB-h5
location /deep-h5 {
alias /etc/nginx/web/deep-h5/;
index index.html index.htm;
try_files $uri $uri/ /deep-h5/index.html;
}

#周年庆h5
location /app-deep-h5 {
alias /etc/nginx/web/app-deep-h5/;
index index.html index.htm;
try_files $uri $uri/ /app-deep-h5/index.html;
}


#数据看板(产品数据+聚吖数据)
location /dashboard/ {
proxy_pass http://172.31.242.41:11010/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


}

四、添加域名,增加ssl证书,一般只是http,如果通过https需要去购买下载ssl证书

server {
listen 443 ssl;
server_name test-ks.zhishidaren.cn;

ssl_certificate /etc/nginx/ssl/5161802_test-ks.zhishidaren.cn.pem;
ssl_certificate_key /etc/nginx/ssl/5161802_test-ks.zhishidaren.cn.key;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

#/usr/local/work/h5/admin

#h5
location /h5 {
root /etc/nginx/web/Ks/;
index index.html index.htm;
try_files $uri $uri/ /index.html last;
}

#快手api
location / {
proxy_pass http://172.31.242.56:11013;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

#d-open服务api

}

posted on 2021-02-04 16:09  轩2test  阅读(673)  评论(0编辑  收藏  举报