[第一部分] 前端发布(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

nginx+supervisor 前后端分离项目的发布流程的更多相关文章

  1. 使用 Nginx 部署前后端分离项目,解决跨域问题

    前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...

  2. vue+uwsgi+nginx部署前后端分离项目

    前后端分离,vue前端提供静态页面,且可以向后台发起get,post等restful请求. django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 后端 创建虚拟环境 解决dj ...

  3. linux --- 部署前后端分离项目

    vue + uwsgi +nginx 部署前后端分离项目 准备项目 1.将前端vue项目包和后端django项目包上传服务器,通过lrzsz,直接从windows拖进linux中 2.解压缩操作 前端 ...

  4. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  5. nginx+vue+uwsgi+django的前后端分离项目部署

    Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...

  6. Docker环境下的前后端分离项目部署与运维

    本教程将从零开始部署一个前后端分离的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能.高负载.高可用的部署方案.包括了MySQL集群.Redis集群.负载均衡.双机 ...

  7. Yii框架和Vue的完美结合完成前后端分离项目

    背景说明 本文假设你对Yii和Vue都比较熟悉,至少都在项目里用过,另外笔者新人,以后不定时放一些干货,欢迎程序媛关注 Yii是一个PHP全端框架,典型的mvc的项目结构,后端接口都是一个控制器里放了 ...

  8. 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  9. 超简单!asp.net core前后端分离项目使用gitlab-ci持续集成到IIS

    现在好多使用gitlab-ci的持续集成的教程,大部分都是发布到linux系统上的,但是目前还是有很大一部分企业使用的都是windows系统使用IIS在部署.NET应用程序.这里写一下如何使用gitl ...

随机推荐

  1. 我也可以独立(引用JS外部文件)

    我也可以独立(引用JS外部文件) 通过前面知识学习,我们知道使用<script>标签在HTML文件中添加JavaScript代码,如图: JavaScript代码只能写在HTML文件中吗? ...

  2. java中的栈Stack

    Stack:栈是一种只能在一端进行插入或删除操作的线性表.(先进后出表) java中的Stack继承Vector 实例化 Stack stack=new Stack(); 基本使用 判断是否为空 st ...

  3. String--->Double 不依赖地域性的转换

    double.TryParse(icStr, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.Invar ...

  4. case in

    #!/bin/bash source /etc/profilesource ~/.bashrc #自己定义$version_number case $version_number in3.0.17) ...

  5. The Preliminary Contest for ICPC Asia Nanjing 2019 C. Tsy's number 5

    https://nanti.jisuanke.com/t/41300 题意:求\(\sum_{i=1}^n\phi(i)\phi(j)2^{\phi(i)\phi(j)}\) \(f_i=\sum_{ ...

  6. 大杀器Bitset

    其实并不怎么会用,有一次有位学长提到了这个名字,就这么取题目了. 1.BZOJ 3687 简单题 求子集的算术和的异或和 http://www.lydsy.com/JudgeOnline/proble ...

  7. VS2010-MFC(MFC常用类:CString类)

    转自:http://www.jizhuomi.com/software/228.html CString类简介 CString类作为MFC的常用类,当之无愧.可以这样说,只要是从事MFC开发,基本都会 ...

  8. ASP.NET自定义Validform的datatype

    1.定义 <script type="text/javascript"> $(function () { $("#aa").Validform({ ...

  9. import threading线程进程

    cpu在执行一个子线程的时候遇到sleep就会利用这段停顿时间去执行另一个子线程.两个子线程谁先跳出sleep就执行谁. import threadingimport time start = tim ...

  10. django汉化

    汉化admin后台管理站点 修改settings文件(将上表格内容改变为下表格): LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' LANGUAGE_CODE = ...