云主机的开发流程是怎样的?

HCRM技术_小炮 云主机 2026-05-14 26 0

“云主机开发”这个说法,通常指的是如何使用一台云服务器(ECS)来进行开发和部署应用程序,云主机本身不是被“开发”出来的,而是你在云主机上进行开发工作

就是你在云上有一台24小时开机的电脑(Linux或Windows),你通过远程连接上去,在上面写代码、跑程序、搭建网站或API接口。

下面是一个从零开始的通用开发流程,适合后端开发、Web应用或API服务。

第一阶段:准备与连接(基础搭建)

1、购买与选择

选择云服务商:阿里云、腾讯云、华为云、AWS、Azure等。

选择配置

入门:1核2GB内存(适合小博客、个人API、学习)。

标准:2核4GB内存(适合多数Web应用、小型数据库)。

系统:推荐Ubuntu 22.04/24.04 LTS(Linux)或CentOS Stream 9,新手也可选Windows Server,但成本较高且不如Linux常用。

地域:选离你或你的用户最近的区域。

2、远程连接

Windows用户:使用PuttyWindows Terminal(自带SSH)。

Mac/Linux用户:直接打开终端。

命令格式

        ssh root@你的云主机公网IP

- 输入密码(或使用密钥对,更安全),登录成功后,就进入了云主机的控制台。

第二阶段:开发环境搭建(选你需要的)

登录后,你面对的是一个“干净的”操作系统,需要安装开发工具。不要直接用root账户操作,建议创建一个普通用户:

adduser devuser
usermod -aG sudo devuser
su - devuser

安装编程语言环境

Python (Django/Flask/FastAPI)

    sudo apt update
    sudo apt install python3 python3-pip python3-venv
    python3 --version

Node.js (Express/NestJS)

    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt install -y nodejs
    node --version
    npm --version

Java (Spring Boot)

    sudo apt install openjdk-17-jdk
    java --version

Go

    wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gz
    sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
    # 将 /usr/local/go/bin 添加到 PATH

安装数据库

MySQL/MariaDB

    sudo apt install mariadb-server
    sudo mysql_secure_installation

PostgreSQL

    sudo apt install postgresql postgresql-contrib
    sudo systemctl start postgresql

Redis (缓存/队列)

    sudo apt install redis-server
    sudo systemctl enable redis

安装版本控制 (Git)

sudo apt install git
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

第三阶段:编写与部署代码(核心开发流程)

有两种主流方式:

方式A:直接在云主机上写代码(适合调试或小型项目)

1、使用终端编辑器vimnanotmux(多窗口)。

2、克隆你的项目

    git clone https://github.com/yourname/your-project.git
    cd your-project

3、安装依赖并运行

    # Python 示例
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    python app.py

方式B:本地开发 + 远程部署(推荐,更专业)

1、本地开发:在你自己电脑上(Windows/Mac)用 VS Code、PyCharm 等写代码。

2、代码上传

Git + GitHub/GitLab:本地git push,云主机上git pull

Rsync/SCPscp -r ./local_project root@IP:/path/to/remote

VS Code Remote SSH:这是最便捷的方式,安装插件后,可以直接在本地VS Code里编辑云主机上的文件,就跟开发本地项目一样。

3、部署与运行

- 将代码传到云主机后,安装依赖,然后使用进程管理器(如pm2 for Node,supervisor for Python,systemd for Java)确保程序持续运行。

示例(使用systemd部署一个Python服务)

        sudo nano /etc/systemd/system/myapp.service

写入:

        [Unit]
        Description=My Python App
        After=network.target
        [Service]
        User=devuser
        WorkingDirectory=/home/devuser/myapp
        ExecStart=/home/devuser/myapp/venv/bin/python app.py
        Restart=always
        [Install]
        WantedBy=multi-user.target

启动:

        sudo systemctl start myapp
        sudo systemctl enable myapp

第四阶段:对外暴露服务(让世界访问)

你的程序通常跑在云主机的内网端口(比如127.0.0.1:80000.0.0.0:8000),需要配置安全组(云服务商的控制台)和反向代理

1、安全组配置

- 登录云服务商控制台 -> 找到你的云主机 -> 安全组。

添加入方向规则

- 协议:TCP

- 端口:80(HTTP),443(HTTPS),你的应用端口(如8000)。

- 授权对象:0.0.0.0/0(允许所有IP访问)。注意:不要开放22端口到0.0.0.0/0,建议只开放给你的IP或使用密钥登录

2、安装反向代理(Nginx)

    sudo apt install nginx
    sudo systemctl start nginx

配置Nginx将请求转发到你的应用端口(示例文件/etc/nginx/sites-available/myapp):

    server {
        listen 80;
        server_name yourdomain.com; # 你的域名或IP
        location / {
            proxy_pass http://127.0.0.1:8000; # 转发到你的本地服务
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

启用配置并重启:

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

3、绑定域名与SSL(推荐):

- 在域名服务商处将域名解析到云主机IP。

- 使用Let‘s Encrypt 免费证书:

        sudo apt install certbot python3-certbot-nginx
        sudo certbot --nginx -d yourdomain.com

1、:购买一台Ubuntu云主机,开放22(SSH)、80(HTTP)、443(HTTPS)端口。

2、ssh root@IP 登录。

3、:安装Git、Python/Node/Java、MySQL/PostgreSQL、Nginx。

4、:在本地(VS Code)或云上编辑代码。

5、:用systemdpm2 让服务稳定运行。

6、:通过http://你的IPhttps://你的域名 访问。

常见问题与提示(避坑指南)

防火墙:云主机自带的安全组是第一道门,但云主机系统内可能还有ufw(Ubuntu)或firewalld(CentOS),确保它们规则允许,否则安全组放行了系统防火墙也会拦截。

端口冲突:确认你的应用没有占用Nginx或系统服务端口(如80、443、3306、5432)。

数据备份:对数据库和重要文件定期做快照或cron自动备份。

日志查看:报错时看日志:journalctl -u myapp(systemd服务)或sudo tail -f /var/log/nginx/error.log

如果你有具体的开发场景(用Python Flask开发一个简单的API,或者用Node.js搭建一个实时聊天应用),可以告诉我,我可以给你更针对性的步骤。

文章摘自:https://idc.huochengrm.cn/zj/25620.html

评论