前后端分离项目线上部署
程序员文章站
2022-06-13 18:02:27
...
基本说明
前端采用 nginx 转发实现
后端采用 springboot 打包成 jar 启动
前端 nginx 虚拟主机配置
server {
listen 5678;
server_name 110.53.222.145;
location /site1 {
alias /path/gf-uat/site1;
index index.html;
}
location /file {
alias /path/gf-uat/file;
}
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '$http_origin';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,token';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
add_header 'Access-Control-Allow-Origin' '$http_origin';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,token';
proxy_pass http://localhost:7897;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 1024m;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
以下代码,代表的是 转发支持 websocket 的相关配置,以及 websocket 的连接时间
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
以下代码,代表 请求转发,解决 跨域访问问题
location / {
proxy_pass http://localhost:7897;
后端 jar 启动脚本
start.sh
#!/bin/bash
PROJECT=ppp.jar
DEST="/path/ppp"
FILE=${DEST}/${PROJECT}
echo "running ppp server ...."
nohup java -Xmx512m -Xms512m -Xmn185m -Xss256k -Dserver.port=7865 -jar ${FILE} 2>&1 | cronolog log.%Y-%m-%d.out >> /dev/null &
echo "running ppp server finish"
stop.sh
#!/bin/sh
process=`ps -fe|grep "ppp.jar" |grep -ivE "grep|cron" |awk '{print $2}'`
if [ !$process ];
then
echo "stop ppp process $process ....."
kill -9 $process
sleep 1
else
echo "ppp is already stop!"
fi
其他补充
[注意] 开启 nginx 外网访问端口
nohup
nohup
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
nohup 是 no hang up 的缩写,就是不挂断的意思。
在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
nohup command > myout.file 2>&1 &
(2) &
加载一个命令的最后面,表示这个命令放在后台执行
有两个命令可以来查看,ps 和 jobs。区别在于 jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。
下一篇: IDEA报'\ufeff'错误