nginx+supervisor 前后端分离项目的发布流程

[第一部分] 前端发布(vue项目),假设项目名为demo_vue

Step1:编译打包前端项目

        cd到demo_vue目录下,

        执行cnpm run build:prod命令,生成disc文件夹

Step2:在服务端新建前端项目文件夹

        登录ubuntu,

        cd进/home/ubuntu/love目录下

        执行mkdir demo_vue新建存放前端编译文件的文件夹

Step3:将编译文件上传到服务端

        cd到disc目录下,执行如下命令

        scp -r ./* root@love.aizhuhotel.com:/home/ubuntu/love/demo_vue

Step4:配置nginx

        cd进/usr/local/nginx/conf目录下,

        vim nginx.conf打开nginx配置文件,

        配置服务端访问地址

        upstream demovue {

               server localhost:7788;

        }

        配置前端访问地址

        location /demovue/ {

               proxy_pass http://demo/;

        }

        配置监听端口/项目文件位置/默认启动文件

        sever {

               listen  端口号;

               Location / {

                      root /home/ubuntu/love/demo_vue/;

                      index indec.html index.htm;

               }

        }

Step5:检查配置是否成功并重启nginx

        cd进/usr/local/nginx/sbin目录下,

        sudo nginx -t 检查配置,

        sudo nginx -s reload 重启

[第二部分] 后端发布(.net core项目),假设项目名为demo_api

Step1:编译打包后端项目

        cd到项目API目录下,

        执行dotnet publish -c disc命令,生成disc文件夹

Step2:在服务端新建前端项目文件夹

        登录ubuntu,

        cd进/home/ubuntu/love目录下

        执行mkdir demo_api新建存放后端编译文件的文件夹

Step3:将编译文件上传到服务端

        cd到disc文件夹下publish目录下,执行如下命令

        scp -r ./* root@love.aizhuhotel.com:/home/ubuntu/love/demo_api

Step4:配置nginx

        cd进/usr/local/nginx/conf目录下,

        vim nginx.conf打开nginx配置文件,

        配置服务端访问地址

               upstream demoapi {

               server localhost:8441;

        }

        配置前端访问地址

        location /demoapi/ {

               proxy_pass http://demoapi/;

        }

Step5:检查配置是否成功并重启nginx

        cd进/usr/local/nginx/sbin目录下,

        sudo nginx -t 检查配置,

        sudo nginx -s reload 重启

Step6:配置supervisor

        cd到/etc/supervisor/conf.d目录下,

        新建一个后端项目对应的supervisor配置文件touch demoapi.conf

        修改配置

        {

               [program:demoapi程序名称]........................

               command=dotnet xxxx.dll启动命令

               directory=/home/ubuntu/love/demoapi启动目录

               stdout_logfile = /var/log/demoapi.log 日志目录

        }

        sudo supervisorctl status查看状态

        sudo supervisorctl start 启动配置

        sudo supervisorctl reload 重新加载

        cd进/etc/supervisor目录

        supervisorctl restart demoapi重启项目

附(supervisor下项目配置文件)

[program:dldocapi] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作

autorestart=True      ; 程序异常退出后自动重启

autostart=True        ; 在 supervisord 启动的时候也自动启动

redirect_stderr=True  ; 把 stderr 重定向到 stdout,默认 false

environment=PATH="/usr/bin"  ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是使用指定的 virtualenv 环境

command=dotnet DlDoc.API.dll  ; 启动命令,与手动在命令行启动的命令是一样的

user=ubuntu           ; 用哪个用户启动

directory=/home/ubuntu/love/DlDoc_API/  ; 程序的启动目录

stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB

stdout_logfile_backups = 20     ; stdout 日志文件备份数

; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)

stdout_logfile = /var/log/dldocapi.log

posted @ 2019-07-17 18:06  _0123456789  阅读(282)  评论(0编辑  收藏  举报