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
nginx+supervisor 前后端分离项目的发布流程的更多相关文章
- 使用 Nginx 部署前后端分离项目,解决跨域问题
前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...
- vue+uwsgi+nginx部署前后端分离项目
前后端分离,vue前端提供静态页面,且可以向后台发起get,post等restful请求. django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 后端 创建虚拟环境 解决dj ...
- linux --- 部署前后端分离项目
vue + uwsgi +nginx 部署前后端分离项目 准备项目 1.将前端vue项目包和后端django项目包上传服务器,通过lrzsz,直接从windows拖进linux中 2.解压缩操作 前端 ...
- 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& ...
- nginx+vue+uwsgi+django的前后端分离项目部署
Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...
- Docker环境下的前后端分离项目部署与运维
本教程将从零开始部署一个前后端分离的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能.高负载.高可用的部署方案.包括了MySQL集群.Redis集群.负载均衡.双机 ...
- Yii框架和Vue的完美结合完成前后端分离项目
背景说明 本文假设你对Yii和Vue都比较熟悉,至少都在项目里用过,另外笔者新人,以后不定时放一些干货,欢迎程序媛关注 Yii是一个PHP全端框架,典型的mvc的项目结构,后端接口都是一个控制器里放了 ...
- 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了
折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...
- 超简单!asp.net core前后端分离项目使用gitlab-ci持续集成到IIS
现在好多使用gitlab-ci的持续集成的教程,大部分都是发布到linux系统上的,但是目前还是有很大一部分企业使用的都是windows系统使用IIS在部署.NET应用程序.这里写一下如何使用gitl ...
随机推荐
- Spark运行架构设计
- vba取局域网电脑共享文件夹下的Excel文件
Private Sub CommandButton1_Click() Dim xlapp1 As Excel.Application Dim xlbook1 As Excel.Workbo ...
- CSIC_716_20191105【数字、字符串、列表】
python数据类型及其内置方法 一.整型:主要用于数学运算 其他进制----->转十进制 """ 其他进制转换为十进制 通过int('x进制数',x)实现 &qu ...
- Windows DHCP服务器
DHCP服务器 编辑 动态主机配置协议是一个局域网的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码.首先, DHCP服务器必须是一台安装有 ...
- 树形dp——cf1092F
被傻逼题降智了.. 就是第一次dfs 时 求一次size,一次deep数组 然后第二次dfs时直接求最大值 先把结点1的值求出来, u->v过程中,v子树的所有结点深度-1,v外的所有结点深度+ ...
- hadoop快照管理
快照相当于对目录做备份,并不会复制所有文件,而是记录文件的变化命令用法 ()hdfs dfsadmin -allowSnapshot 路径 (开启指定目录的快照功能) ()hdfs dfsadmin ...
- Delphi让所有的窗口的标题和图标显示在任务栏上
Delphi:让所有的窗口的标题和图标显示在任务栏上在Delphi中,除了主窗口之外,当其它的窗口显示或切换到焦点时.默认情况下,窗口标题和图标并不会显示在任务栏中,为了实现像主窗口一样,每当窗口显示 ...
- eclipse配置外部工具利用javah编译生成头文件
1. 点击eclipse工具栏外部工具按钮,打开配置外部工具 2. 新建一个启动配置,起名为Generate C and C++ Header File,按照下图配置好相应的参数 3. 运行该工具时, ...
- (转)C# 使用UDP组播实现局域网桌面共享
转:http://www.cnblogs.com/mobwiz/p/3715743.html 最近需要在产品中加入桌面共享的功能,暂时不用实现远程控制:参考了园子里的一些文章,加入了一些自己的修改. ...
- swoole手册
https://wiki.swoole.com/wiki/ Swoole Github项目地址:https://github.com/swoole/swoole-src/ (支持请点Star) 开源中 ...