首页 > 其他分享 >前后端分离Web项目 - 环境部署流程

前后端分离Web项目 - 环境部署流程

时间:2022-08-20 08:00:32浏览次数:99  
标签:Web 项目 部署 流程 nohup 公网 服务器 前端 运行

准备环境

  1. 购买一个云服务器(我用的是Amazon的Ubuntu),并记录/查询当前用户ubuntu的公网IP。

    • 登录服务器后查询Ubuntu公网IP::curl ifconfig.me (如果没有 curl ,先安装一下: sudo apt-get install curl

    • PS:服务器需要提前安装好前后端需要的包,比如相关sdk,runtime,一些框架等。

  2. 查看npm和node是否安装:

    npm -v
    node -v
    
  3. 本地前后端分离项目(我用的是ASP.NET Core WebAPI + React等)前端项目名:my-webapp.zip,后端项目名:TestWebAPI.zip

本地项目上传到服务器

  1. 在ubuntu上~目录下新建一个目录testapi-deploy

    mkdir testapi-deploy
    cd testapi-deploy
    
  2. 在本地Terminal中执行命令scp -r 本地前端项目路径 本地后端项目路径 服务器用户名@公网IP:需要上传到的目录路径(不要在服务器上执行,否则会报以下错误),然后输入服务器密码。

  3. 在服务器上查看是否已经成功上传

  4. 解压文件(unzip好像不能批量解压)

    unzip my-webapp.zip
    unzip TestWebAPI.zip
    

服务器运行后端项目

  1. 进入项目目录:cd TestWebAPI/TestWebAPI。(因为是dotnet项目,其他不同后端项目根据文件路径进入文件)

  2. 运行项目.NET项目:dotnet run 。(根据后端技术选择运行命令)

  3. 运行成功如下图所示,监听端口为 50005001

nohup把进程放入后台运行

问题1:因为前后端分离项目,我们需要先运行后端,才能跑前端代码,但是如果新开一个terminal重新ssh连接服务器运行前端代码的话,会报错。(即:后端项目在ubuntu运行的时候怎么运行前端项目)

问题2:一旦关闭Terminal,会发现所有进程都被杀死了,后端服务立刻停止。

如何解决? -> 我们需要把后端项目的服务放在后台运行,使用 nohup 命令。nohup 把一个进程放到后台去运行而不会被关闭(即:如何在terminal关闭后始终保持服务运行)

具体解决步骤:回到放前后端项目的目录下,执行 nohup dotnet run & ,回车后会在当前目录下输出一个 nohup.out 的日志文件(如果在本地文件中指定输出内容的话该文件就是那些内容,比如“当前服务已经监听到..端口”)。执行成功如下图所示:

服务器运行前端项目

进入前端项目目录下,执行以下命令,执行成功如下图所示:(我用的react,所以用 npm start 运行,如果是其他前端技术,则根据情况修改此行)

cd my-webapp
npm start

配置服务器端口开放(安全组)

  1. 问题:我们用 公网IP:端口号 访问网页,发现网页仍然无法访问

  2. 原因:公网对应的我们需要的3000端口没有开放,需去服务器官网配置

  3. 我用的服务器是亚马逊的,亚马逊的安全组端口配置流程:https://www.cnblogs.com/huangkenicole/p/16607079.html

标签:Web,项目,部署,流程,nohup,公网,服务器,前端,运行
From: https://www.cnblogs.com/huangkenicole/p/16607090.html

相关文章