ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-08-20 08:00:17  阅读:150  来源: 互联网

标签: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,公网,服务器,前端,运行
来源: https://www.cnblogs.com/huangkenicole/p/16607090.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有