目录

1.配置云服务器(略讲)

2.vscode连接(ssh连接)

3.本地压缩项目包

4.传输项目

5.配置项目依赖

6.运行项目

1.启动 FastAPI 后端(Python 部分)

2.启动 Next.js 前端(Node.js 部分)

3.本地电脑访问项目

7.域名解析(要备案)

域名解析所需条件

操作流程

注意事项

8.部署项目

第一步:检查Nginx

第二步:配置nginx

第三步:(按i进入编辑模式)

第四步:(激活配置文件)

第五步:(重启Nginx)


1.配置云服务器(略讲)

拥有自己的云服务器和域名

推荐阿里云和腾讯云

以阿里云为例,先创建密钥对,然后配置服务器。

新手默认选择ecs-user用户,除非特别了解自己在做什么,不然这个最安全。

2.vscode连接(ssh连接)

记得自己的服务器公网ip密钥位置

本地计算机安装了vscode之后,然后下载这个插件Remote - SSH

接着打开小电脑

右键SSH,打开config配置,新手用上面那个配置,针对个人。

以下是用户级配置文件与系统级配置文件的对比表格:

对比维度用户级配置文件(C:\Users\34970\.ssh\config系统级配置文件(C:\ProgramData\ssh\ssh_config
作用范围仅对当前用户(34970账户)生效,不影响其他用户的 SSH 连接设置对计算机上所有用户生效,所有用户的 SSH 连接都会受其配置影响
权限要求当前用户拥有完全读写权限,无需管理员权限即可修改需管理员权限才能修改,普通用户默认无修改权限
默认存在性系统不自动创建,需用户手动创建或通过工具(如 VS Code)自动生成安装 OpenSSH 组件时可能自动生成,包含默认全局配置项
配置优先级优先级更高,若与系统级配置冲突,会覆盖系统级配置中的对应项优先级较低,仅在用户级配置中无对应设置时生效
适用场景个人化连接需求(如特定服务器的用户名、密钥、端口等个性化配置)全局通用配置(如所有用户的统一代理、超时时间等公共设置)
修改风险误操作仅影响当前用户,风险范围小误操作可能导致所有用户连接异常,风险范围大

然后点击箭头在当前窗口连接,如果之前连结果,那么第二次连接主机保存密钥会改变,要清空一下主机记录。

本地终端输入ssh-keygen -R 云服务器公网ip

接着再进行连接,他会给云服务器下载vscode配置,然后连接成功进入云服务器页面。

3.本地压缩项目包

由于项目里面存在许多依赖,所以安装7zip,只压缩项目本身文件集。

:: 进入项目根目录(假设项目在 C:\Users\34970\Desktop\partjava)
cd C:\Users\34970\Desktop\partjava

:: 执行 7-Zip 压缩(使用你的 7z.exe 路径)

"C:\Program Files\7-Zip\7z.exe" a -tzip ../partjava.zip . -xr!node_modules (根据个人情况看哪些不要)

进入项目终端,压缩除依赖部分到项目所处主目录。压缩之后就剩下主文件。

左边是项目文件夹,右边是压缩包。

4.传输项目

把项目传到服务器,在主页创建文件夹传到文件夹内。

scp "本地压缩包位置" ecs-user@公网ip:/home/ecs-user/i/

打开本地终端传递。

传输成功后,在云服务器下载unzip

可以先更新一下sudo apt update

sudo apt install unzip安装unzip

到压缩包指定位置cd /home/ecs-user/i  输入ls看看是不是指定位置

解压文件到当前文件夹unzip partjava.zip

5.配置项目依赖

由于我项目包含了vue3和python,所以我得安装node.js和npm(或者yarn)以及python3 python3-pip

# 安装 Node.js 18(长期支持版)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

输入npm -v以及node -v

开始安装vue3依赖npm install

开始安装python依赖,进入python项目文件,然后看看有没有python环境,一般Ubuntu是有python3环境的,python3 -v pip3 -v

python3 -version输出版本号

先进python项目文件夹

开始下载python依赖库(看看python版本安装对应虚拟环境sudo apt install python3.10-venv)

1.创建虚拟环境:python3 -m venv venv

2.激活虚拟环境(Linux):source venv/bin/activate

3.下载库:pip3 install -r requirements.txt

6.运行项目

1.启动 FastAPI 后端(Python 部分)

进入项目根目录(确保在 partjava-ai 目录下):
cd ~/i/partjava-ai  # 替换为你的实际路径
激活虚拟环境(已创建并安装依赖的前提下):
source venv/bin/activate  # Linux/Mac 系统,终端会显示 (venv)
启动 FastAPI 服务(关键:绑定公网访问):
uvicorn main:app --host 0.0.0.0 --port 8000
main:app:表示运行 main.py 中的 app 实例(FastAPI 应用入口)。
--host 0.0.0.0:允许外部(包括你的本地电脑)访问服务器上的后端。
--port 8000:指定后端运行在 8000 端口(可自定义,需与前端调用一致)。
启动成功后,终端会显示:Uvicorn running on http://0.0.0.0:8000。

2.启动 Next.js 前端(Node.js 部分)

打开新终端(避免与后端终端冲突,VS Code 中可点击终端右上角 + 号新建)。
进入前端目录(通常是项目根目录,包含 package.json):
cd ~/i  # 替换为前端代码所在路径
启动前端开发服务器:
npm run dev  # 或 yarn dev(根据项目依赖管理工具选择)
启动成功后,终端会显示:Local: http://localhost:3000。

3.本地电脑访问项目

端口转发(通过 VS Code 实现本地 ↔ 云服务器通信):
按 Ctrl+Shift+P 打开命令面板,输入 Ports: Show Ports 调出端口视图。
分别转发两个端口:
后端端口:输入 8000 → 转发后本地可通过 http://localhost:8000 访问后端。
前端端口:输入 3000 → 转发后本地可通过 http://localhost:3000 访问前端。

在本地浏览器查看:
访问 http://localhost:3000 → 看到前端页面(Next.js 应用)。
前端会自动调用后端 API(若代码中已配置 http://localhost:8000 作为后端地址),实现全栈交互。

7.域名解析(要备案)

域名解析所需条件

域名注册
需要拥有一个已注册的有效域名,域名需通过ICANN认证的注册商购买(如GoDaddy、阿里云等)。

DNS服务器
需配置权威DNS服务器(如Cloudflare、AWS Route 53)或使用注册商提供的免费DNS服务。DNS服务器负责存储域名对应的解析记录。

解析记录类型
根据需求添加以下常见记录:

  • A记录:将域名指向IPv4地址。
  • AAAA记录:将域名指向IPv6地址。
  • CNAME记录:将域名别名指向另一个域名。
  • MX记录:指定邮件服务器地址。
  • TXT记录:用于验证或SPF配置。

操作流程

配置DNS解析

  1. 登录域名注册商或DNS服务商的管理后台。
  2. 进入域名解析设置页面,添加或修改解析记录。
  3. 保存变更,等待全球DNS缓存刷新(通常需10分钟至48小时)。

验证解析生效
使用以下工具检查解析是否正确:

  • 命令行:nslookup example.comdig example.com
  • 在线工具:DNSChecker、WhatsMyDNS。

注意事项

  • 确保域名未过期且状态正常(无锁定或暂停)。
  • 多层缓存可能导致延迟,修改记录后需耐心等待。
  • 复杂场景(如CDN、负载均衡)需结合CNAME或NS记录配置。

8.部署项目

可以先ctrl+c暂停前端,然后配置Nginx。

也可以不暂停,新建一个终端。

第一步:检查Nginx

# 检查是否安装
nginx -v

# 未安装则执行(Debian/Ubuntu)
sudo apt update && sudo apt install nginx -y

# 或(CentOS/RHEL)
yum install nginx -y

第二步:配置nginx

# 进入配置目录 cd /etc/nginx/sites-available/

# 创建并编辑配置文件(用你的域名命名,如 example.com)

sudo vim example.com

第三步:(按i进入编辑模式)

server { # 监听 80 端口(HTTP) listen 80;

# 填写你的域名(如 example.com 或 www.example.com)

server_name example.com www.example.com;

# 前端项目:将域名根路径代理到前端服务(3000 端口)

location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }

# 后端 API:将 /api 开头的请求代理到后端服务(8000 端口)

location /api { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }

保存配置(按 Esc 后输入 :wq 回车)

第四步:(激活配置文件)

删除默认配置的软链接(关键!)
sudo rm /etc/nginx/sites-enabled/default

# 创建软链接到生效目录

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

检查配置是否有误

sudo nginx -t

第五步:(重启Nginx)

sudo systemctl restart nginx

然后浏览器访问域名就ok了。

9.云服务器后台持续进程

# 安装 pm2(全局) npm install -g pm2

两个终端:

# 启动前端(后台持久化)cd /home/ecs-user/

pm2 start npm --name "frontend" -- run dev

# 启动后端(后台持久化)

pm2 start "uvicorn main:app --host 0.0.0.0 --port 8000" --name "backend"

# 重启运行Nginx

sudo systemctl restart nginx

10.数据库扩展

Ubuntu 系统
更新软件包列表:

打开终端,执行以下命令,确保软件包列表是最新的:
sudo apt update

安装 MySQL 服务器:
执行命令安装 MySQL 软件包:
sudo apt install mysql-server

配置 MySQL(可选):
安装完成后,可以使用 mysql_secure_installation 脚本进行一些安全配置,如设置 root 用户密码、删除匿名用户、禁止 root 远程登录等:
sudo mysql_secure_installation
按照提示输入密码并选择相应的操作即可。
验证安装:
通过以下命令检查 MySQL 服务是否正在运行:
sudo systemctl status mysql
如果服务状态显示为 active (running),表示安装成功。可以使用 mysql 命令进入 MySQL 命令行客户端,验证能否正常登录和操作数据库:
sudo mysql -u root -p
输入密码后回车进入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96745.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96745.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96745.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pion/webrtc v4.1.4 版本发布:关键特性与性能优化全面解析

引言 实时通信技术在现代互联网应用中扮演着越来越重要的角色,从视频会议到在线教育,从远程医疗到物联网设备交互,WebRTC技术已经成为实时音视频通信的事实标准。作为Go语言中最成熟且广泛使用的WebRTC实现,pion/webrtc项目持续推…

集成算法(聚类)

下面简单集成算法代码from sklearn.datasets import make_blobs from sklearn.cluster import KMeans import matplotlib.pyplot as plt# 创建数据集,生成 3 个中心的聚类数据,共 300 个样本,每个样本 2 个特征 X, _ make_blobs(n_samples30…

01 网络信息内容安全--绪论

1 课程内容 网络信息内容获取技术网络信息内容预处理技术网络信息内容过滤技术社会网络分析技术入侵检测技术异常流量检测技术对抗攻击技术 2 理论研讨 分为16个组 2.1 网络信息内容获取技术:第1组 【用DeepSeek网站爬虫,数据获取零成本&#xff01…

GPT-5:天变了吗?还是风停了?

2025年8月8日,OpenAI 发布了 GPT-5。这次更新被许多人寄予厚望,也引发了不少争议。对普通用户来说,这是一场“又快又会做事”的智能盛宴;而对资深开发者和 AI 研究者而言,GPT-5 可能更像是一次不够激进、略显保守的版本…

生信分析自学攻略 | R语言数据筛选和修改

在《生信小白自学攻略》系列的前几篇文章中,我们已经了解了 R 和 RStudio 的安装、RStudio 的深度探索,以及 R 语言的基本数据类型和数据结构。现在,是时候深入探讨如何运用 R 语言对数据进行精细化处理了。本篇推文将详细介绍如何在 R 中对数…

从零开始学习概念物理(第13版)(1)

前言:对我来说,最有用的就是物理了,尤其是电磁学。但是要学好它,我得夯实我的基础,前面更加基础的数学和物理都不能拉下。现在我问了Deepseek推荐的国外物理书,这本《概念物理》是最适合我,等入…

CSS变量

元素背景需要统一,一个个设置修改起来很麻烦,也没有全局变量? CSS中的变量_css变量-CSDN博客 -- 前缀定义变量,var(--) 使用变量,:root 表示根元素。 :root { --bg:#222; --fg:#bbb; } body { background:var(--bg)…

C++(Qt)软件调试---vscode配置clang-tidy静态分析(30)

C(Qt)软件调试—vscode配置clang-tidy静态分析(30) 文章目录C(Qt)软件调试---vscode配置clang-tidy静态分析(30)[toc]1 概述2 clang-tidy基本用法3 目前已有检查项4 vscode配置clang-tidy5 .clang-tidy配置文件6 参考地址更多精彩…

每天自动备份oracle

oracle数据库比其他数据库都贵,但是自带的管理工具却很差,真不知道咋想的。想完成每天自动备份,只能自己动手(window环境):1、创建个备份目录,如D:\databack2、创建个脚本:backup.bat核心内容如下&#xff…

HBase Coprocessor:扩展HBase功能的利器

HBase Coprocessor:扩展HBase功能的利器 关键词:HBase, Coprocessor, 协处理器, RegionServer, 分布式计算, 扩展功能, 二级索引 摘要:HBase作为Hadoop生态中的分布式列存储数据库,以高可靠性、高吞吐量和强一致性著称&#xff0c…

【Java后端】Spring Boot 实现请求设备来源统计与UA解析全攻略

Spring Boot 实现请求设备来源统计与UA解析全攻略 在 Web 应用的实际场景中,我们经常需要知道 请求来自哪里 —— 是 Android 手机?还是 iOS?或者是 PC 浏览器? 这类信息往往可以通过 User-Agent (UA) 来统计,进而帮助…

技术框架搭建:支撑竞拍全流程

纯竞拍的技术框架是一个多层协同的系统,从用户交互到数据处理,每个环节都有专门的技术组件提供支持。​前端层是用户与竞拍系统交互的窗口,核心目标是提供流畅、实时、直观的操作体验。采用 React、Vue 等主流前端框架构建单页应用&#xff0…

2025.8.18-2025.8.24第34周:有内耗有挣扎

🌟 本周完成的3件亮点事情(可具体写过程): openvla debug起来了把上周的演讲视频发给了导师,人家帮我提了很多建议。罗永浩,李想4小时访谈看完了即兴演讲开始不内耗,直接讲,这样才能…

点播视频预览是怎么做到的?

看进度条上的小窗口,你有没有想过,哔哩哔哩是如何在进度条上显示视频预览的? 这个功能非常有用,尤其是在播放长视频时。 如何才能实现? 实现这一点有三种方法。 预先为视频生成 CSS sprites,并通过 API 获取预先为视频生成 W…

prometheus监控kubernetes集群并使用 grafana展示数据

目录 Prometheus组成及架构 prometheus核心组件 1.Prometheus Server 2.Exporters 3.Alertmanager 4.Pushgateway 数据流程 在k8s中部署PrometheusGrafana钉钉告警邮件告警 将kube-Prometheus包下载后传入虚拟机 tar -xzv kube-promethus.zip cd 进入 ll 显示目录 …

K8s 实战:Pod 版本更新回滚 + 生命周期管控

一、版本更新与回滚实验背景本实验通过 Kubernetes 的 Deployment 资源演示应用的版本更新与回滚流程。Deployment 是 Kubernetes 中用于管理 Pod 和 ReplicaSet 的核心资源,支持滚动更新(避免服务中断)和版本回滚(应对更新故障&a…

静电服漏检率↓79%!陌讯多模态识别算法在智慧安检的实战解析

​原创声明​​:本文技术方案引自《陌讯视觉算法技术白皮书V3.1》,实测数据来自工业场景部署验证 一、行业痛点:静电防护失效的隐形风险 据《电子制造业安防报告2025》统计,精密电子车间因静电服穿戴不规范导致的次品率高达23%&a…

StarRocks不能启动 ,StarRocksFe节点不能启动问题 处理

StarRocks不能启动 ,StarRocksFe节点不能启动问题 处理 问题描述 mysql:[Warning] Using a passwordon the command line interface can be insecureERROR 2003 (HYa00): Can’t connect to MysoL server on ‘192.168.5.128:9030’(111)Error: failed to query fE…

麒麟系统播放图片 速度比较

pygame效果比opencv好,opencv有锯齿:import pygame import os import timedef show_image_sdl(image_path):"""使用SDL2快速显示图片"""# 初始化pygamepygame.init()# 获取屏幕信息info pygame.display.Info()screen_wid…

复杂场景横幅识别准确率↑91%!陌讯多模态融合算法在智慧园区的实战解析

一、行业痛点:园区违规横幅识别的三重挑战 据《2024智慧园区安防报告》(来源:CCSA TC10)统计: ​​强光干扰​​:玻璃幕墙反光导致文字识别错误率超50% ​​形变干扰​​:横幅褶皱、飘动造成关…