当前位置: 首页 > news >正文

网站在Linux 云服务器上从 0 到上线完整

Linux 云服务器从 0 到上线完整 README

适合新手,从购买 ECS 云服务器开始,到 Node.js / FTP / PM2 / 端口 / 权限 / 域名 / Nginx / HTTPS 全流程。


一、购买 ECS 云服务器

1. 选择配置

  • 系统:Linux(推荐 Ubuntu 20.04 / 22.04)
  • CPU / 内存:新手 1 核 2G 即可
  • 带宽:1~5Mbps
  • 磁盘:40G 起

2. 网络

  • 公网 IP(弹性公网 IP):必须有,否则外网无法访问
  • 安全组 / 防火墙:后面要放行端口

3. 登录方式

  • 设置 root 密码 或 SSH Key

二、首次连接服务器(SSH)

Windows(推荐)

  • 使用Xshell / MobaXterm / PowerShell
sshroot@你的服务器IP

更新系统

aptupdate&&aptupgrade -y

三、基础安全与防火墙(UFW)

1. 安装并启用 UFW

aptinstallufw -y ufwenable

2. 放行必要端口

ufw allow22# SSHufw allow80# HTTPufw allow443# HTTPSufw allow3000# Node.js 示例ufw reload

查看状态

ufw status

四、安装 Node.js(后端服务)

方式一:NodeSource(推荐)

curl-fsSL https://deb.nodesource.com/setup_18.x|bash-aptinstall-y nodejs

验证

node -vnpm-v

五、部署 Node.js 项目

1. 创建目录

mkdir-p /www/appcd/www/app

2. 上传代码(FTP / SFTP / Git)

  • 推荐:SFTP(安全)
  • 工具:FileZilla / WinSCP

3. 安装依赖

npminstall

4. 测试启动

node app.js

浏览器访问:

http://IP:3000

六、使用 PM2 管理 Node.js(必须)

1. 安装 PM2

npminstall-g pm2

2. 启动服务

pm2 start app.js --name myapp

3. 常用命令

pm2 list pm2 logs myapp pm2 restart myapp pm2 stop myapp

4. 开机自启

pm2 startup pm2 save

七、FTP / SFTP 文件上传

推荐优先使用SFTP,FTP 只在你明确需要时才安装。


七-1️⃣ SFTP(强烈推荐,默认已支持)

SFTP 不需要额外安装,基于 SSH(22 端口)。

使用条件
  • 服务器能 SSH 登录
  • 本地工具支持 SFTP
客户端推荐
  • FileZilla
  • WinSCP
FileZilla 连接示例
  • 协议:SFTP
  • 主机:服务器 IP 或域名
  • 用户名:root(或普通用户)
  • 端口:22

📌优点

  • 安全(加密)
  • 不需要额外开放端口

七-2️⃣ 安装 FTP(vsftpd)

⚠️ FTP 明文传输,不建议公网使用

1. 安装
aptinstallvsftpd -y
2. 启动并设置开机自启
systemctl start vsftpd systemctlenablevsftpd
3. 配置文件
nano/etc/vsftpd.conf

关键配置项(新手版)

listen=YES anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES pasv_enable=YES pasv_min_port=30000 pasv_max_port=30100

七-3️⃣ 创建 FTP 用户(推荐,不用 root)

adduser ftpuser

设置目录:

mkdir-p /home/ftpuser/wwwchown-R ftpuser:ftpuser /home/ftpuser

七-4️⃣ FTP 防火墙端口放行

ufw allow21/tcp#21 端口只负责“打招呼”ufw allow30000:30100/tcp#30000–30100 是真正用来“传文件”的ufw reload

如果你只开 21,不开 30000–30100,FTP 很可能连得上,但传不了文件。


七-5️⃣ FTP 客户端连接信息

  • 协议:FTP
  • 主机:服务器 IP / 域名
  • 用户名:ftpuser
  • 端口:21
  • 模式:被动模式(PASV)

七-6️⃣ 常见 FTP 问题

❌ 连接上但无法上传

  • 目录权限不对
chown-R ftpuser:ftpuser /home/ftpuser/wwwchmod-R755/home/ftpuser/www

❌ 能登录但列表空白

  • 被动端口未放行

八、端口与访问规则总结

服务端口
SSH22
HTTP80
HTTPS443
Node.js3000(内部)

⚠️ 对外只暴露 80 / 443,3000 只给 Nginx 用


九、绑定域名(DNS)

1. 域名解析

在域名管理后台添加:

  • 类型:A
  • 主机名:@ 或 子域名
  • IP:服务器公网 IP

示例:

allenheyward.gleeze.com -> IP

2. 生效时间

  • 一般几分钟 ~ 24 小时

十、安装并配置 Nginx(核心)

1. 安装

aptinstallnginx -y

2. 启动并检查

systemctl start nginx systemctlenablenginx

访问:

http://你的域名

3. 配置反向代理(80 → 3000)

nano/etc/nginx/sites-available/myapp
server { listen 80; server_name allenheyward.gleeze.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }

4. 启用配置

ln-s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ nginx -t systemctl reload nginx

十一、配置 HTTPS(SSL 证书)

1. 安装 Certbot

aptinstallcertbot python3-certbot-nginx -y

2. 申请证书

certbot --nginx -d allenheyward.gleeze.com

3. 自动续期

certbot renew --dry-run

十二、最终访问结构(标准做法)

用户浏览器 ↓ https://allenheyward.gleeze.com Nginx (80 / 443) ↓ 反向代理 Node.js (3000)

十三、常见问题

1. 域名能 ping,网页打不开

  • 防火墙没放行 80 / 443
  • Nginx 未启动

2. 能访问 IP:3000,但域名不行

  • Nginx 未配置反向代理

3. HTTPS 失败

  • 域名未正确解析
  • 80 端口未开放

十四、新手一句话总结

IP + 端口 是给程序用的,域名 + 80/443 是给人用的。

http://www.jsqmd.com/news/130426/

相关文章:

  • 邮件群发工具实验报告
  • 2025终极免费AI论文写作工具大揭秘!8款一站式服务搞定论文全流程!
  • 从25年年初开始,3万炒股,究竟多久能变成10万?
  • Spring Security 进阶:基于 Customizer 的分布式权限配置架构设计
  • SSH会话管理实战:识别与清理非法连接的完整指南
  • 邦芒干货:三点让你体面离职
  • 【护理学专业论文写作模版】基于中西医结合与多学科协作的上消化道出血护理模式:消化性溃疡患者全程管理策略研究
  • 1X Technologies推出Home Collection生活周边!以柔软美学重塑家用机器人品牌,降低消费者接受门槛
  • AI狂奔之下的伦理拷问:在创新与规范之间寻找平衡
  • AI全景之第五章第五节:图神经网络(GNN)与几何深度学习
  • TOSHIBA TC4053BFT(EL,N) TSSOP16 模拟开关/多路复用器
  • 体重电子秤MCU芯片方案
  • AI“好产品”的年度答案,2025年度凌云奖即将揭晓
  • 数据结构实战:从复杂度到C++实现
  • 数据安全新选择:访答本地知识库
  • AI全景之第六章第一节:语言模型演进
  • C#(更新中)
  • 解析 ‘Command Pattern’:实现具备‘完美撤销’(Undo)功能的游戏指令引擎
  • 瀚德凯尔座椅电梯提供租赁体验服务吗? - TIMWORKROOM
  • 拆解Mate X7的“超可靠折叠玄武架构”:从内到外全身都很“硬”!
  • 完整教程:深度学习理论与实战:MNIST 手写数字分类实战
  • 为什么不让程序员直接对接客户?而是通过产品经理…
  • 横河 AQ6370D 光谱分析仪
  • [BUUOJ 护网杯 2018 ] easy_tornado 题解
  • DataWorks 又又又升级了,这次我们通过 Arrow 列存格式让数据同步速度提升10倍!
  • Java计算机毕设之基于SpringBoot+Vue实现的前后端分离的高校毕业设计选题系基于SpringBoot和Vue的毕业设计选题管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 4453
  • 什么是 ‘Type Erasure’ (类型擦除)?对比 `std::any` 与虚函数在解耦方面的异同
  • AI浪潮下,文化原创力的坚守与重塑
  • 软件的白盒测试(一)