浏览器标题切换
浏览器标题切换end

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

准备环境

  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:需要上传到的目录路径(不要在服务器上执行,否则会报以下错误),然后输入服务器密码。

    undefined

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

    undefined

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

    unzip my-webapp.zip
    unzip TestWebAPI.zip
    

服务器运行后端项目

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

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

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

    undefined

nohup把进程放入后台运行

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

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

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

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

undefined

服务器运行前端项目

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

cd my-webapp
npm start
undefined

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

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

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

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

posted @   抓水母的派大星  阅读(620)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
历史上的今天:
2019-08-20 HDU-1852-Beijing 2008-一个神奇的公式求逆元
2019-08-20 UVA-11987-Almost Union-Find-并查集的基本操作合并、删除、移位
点击右上角即可分享
微信分享提示