“云主机开发”这个说法,通常指的是如何使用一台云服务器(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用户:使用Putty 或Windows 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 --versionNode.js (Express/NestJS)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node --version
npm --versionJava (Spring Boot)
sudo apt install openjdk-17-jdk
java --versionGo
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 添加到 PATHMySQL/MariaDB
sudo apt install mariadb-server
sudo mysql_secure_installationPostgreSQL
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresqlRedis (缓存/队列)
sudo apt install redis-server
sudo systemctl enable redissudo apt install git git config --global user.name "Your Name" git config --global user.email "your@email.com"
有两种主流方式:
方式A:直接在云主机上写代码(适合调试或小型项目)
1、使用终端编辑器:vim、nano 或tmux(多窗口)。
2、克隆你的项目:
git clone https://github.com/yourname/your-project.git
cd your-project3、安装依赖并运行:
# 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/SCP:scp -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:8000 或0.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 nginx3、绑定域名与SSL(推荐):
- 在域名服务商处将域名解析到云主机IP。
- 使用Let‘s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com1、买:购买一台Ubuntu云主机,开放22(SSH)、80(HTTP)、443(HTTPS)端口。
2、连:ssh root@IP 登录。
3、装:安装Git、Python/Node/Java、MySQL/PostgreSQL、Nginx。
4、写:在本地(VS Code)或云上编辑代码。
5、跑:用systemd 或pm2 让服务稳定运行。
6、用:通过http://你的IP 或https://你的域名 访问。
防火墙:云主机自带的安全组是第一道门,但云主机系统内可能还有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
评论