欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前后端分离项目线上部署

程序员文章站 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命令适用于查看瞬时进程的动态,可以看到别的终端的任务。

相关标签: linux java