springboot+vue/react工程如何部署在ngix?

前端vue/react工程部署ngix方法:

1、前端vue/react工程打完包之后,上传到ngix服务器相应目录;(建议:前端工程应配置工程服务名,也就是publicPath,如不配置,ngix访问的时候可以直接IP或者域名访问,多个工程不友好)

2、ngix作相应配置,大概如下:

location /edu-platform {
    root  /data/mystatic/;
    index  index.html index.htm;
    try_files $uri /edu-platform/index.html;             
}

注意:前端vue/react工程,如果路由模式为history模式,则ngix配置应加上try_files(不配置刷新页面会出现404错误),也就是ngix会尝试从硬盘找到index.html文件,将这个文件发送给用户。路由模式为hash模式,则不需要配置;

3、如果后端未配置跨域,则可以在ngix配置反向代理,相关配置如下:

location /vue-mall-api {
    rewrite ^/vue-mall-api/(.*)$ /$1 break;
    proxy_pass http://127.0.0.1:5000;
}

springboot工程部署ngix方法:

springboot工程可以打包成jar包或war包,相应部署服务器上也有多种方法,这里只介绍将jar包部署在ngix上

1、springboot工程打包,可通过mvn install命令打包,也可以在idea中,clean package打包;

2、上传jar包到服务器相应目录;

3、在jar包同级目录新建application.properties配置文件,在里面可以加入springboot工程不同环境配置,比如工程名、端口、mysql配置等等。(当然也可以不用新建此文件,直接用工程里的配置即可,但这样,每次打包前需要修改不同环境,比较繁琐且容易出错)。

4、ngix做相应配置,可参考配置如下:

#edu-platform-server
location /edu-platform-server {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:6180;
}

其中,location斜杠后面的对应就是工程名,下面的端口也要和springboot工程的端口保持一致;

5、用nohup守候进程方式运行jar包,命令如下:

nohup java -jar xxxxx.jar --spring.config.location=./application.properties >temp.log 2>&1 &

此命令,指定了jar运行的配置文件以及日志输入方式。

至此,前后端分离的spingboot+vue/react工程部署完毕。

6、查看springboot工程进程,可用命令

ps -ef|grep java

7、杀死进程

kill -9 pid