Ubuntu Cloud Computing教程 真实案例云服务器部署与常见问题解答
我见过太多朋友第一次接触云服务器就懵了。有人盯着命令行发呆,有人把安全组规则配成了筛子。今天咱们就边聊边聊,我把我踩过的坑都给你摊开说说。
别急着买服务器,先搞清楚你要什么
去年有个粉丝问我:”我想做个网站,阿里云买什么配置好?”我反问了一句:你这网站预计有多少人访问?他说大概每天几百个访客。我说那你买个最小配置就够,别被那些”企业级”套餐忽悠了。
云服务器这东西,跟买车一样,你天天通勤就买辆省油的小轿车,你要是天天跑越野,买辆硬派越野车才合适。
常见的云服务器类型:
- 通用型:像是一辆家用轿车,什么都能干,适合大多数场景
- 计算型:像赛车,处理速度极快,但油耗高,适合高性能计算
- 内存型:像一辆大面包,装得多跑得慢,适合数据库这种内存密集型应用
Ubuntu在云服务器圈子里可是个老熟人。我带过不少刚入门的朋友,他们一开始都被Windows Server劝退过,换到Ubuntu之后直呼”真香”。为啥?命令少,资源占用低,社区大,出了问题Google一下就有答案。
第一步:选云服务商,别只看价格
现在市面上的云服务商多如牛毛。阿里云、腾讯云、华为云这些国内大厂,AWS、Azure、Google Cloud这些国外巨头,还有DigitalOcean、Vultr这些小而美的选手。
我跟你讲个真实故事。我有个朋友做跨境电商,选了个便宜得离谱的海外服务器,结果网站打不开的时候人家客服已读不回。后来换了DigitalOcean,虽然单价高一点,但人家凌晨两点回复你消息。
选云服务商要看这几个点:
- 价格透明度:有些服务商标价低,带宽、IP、快照都要额外收费
- 可用区域:选离你目标用户最近的机房,延迟低
- 技术支持:出问题了能不能找到人
- 文档质量:好的文档能让你少问十遍客服
对于初学者,我建议你从阿里云或腾讯云入手。国内访问快,中文支持好,社区里有海量中文教程。
第二步:购买服务器,这些选项别选错
当你打开控制台点击”创建服务器”时,你会面对一堆选项。别慌,我告诉你每个选项该选什么。
操作系统镜像:选Ubuntu LTS版本。LTS是Long Term Support的缩写,意思是长期支持版,会提供5年的安全更新。比如22.04 LTS、20.04 LTS。别选短期支持版,除非你想每半年重装一次系统。
服务器配置:这里我建议新手先用最低配置跑起来,后面不够再升级。以阿里云的ecs.t6-small为例,1核2G内存,每月成本大概几十块钱。
网络设置:
- 内网IP:服务器之间通信用,默认就行
- 公网IP:别忘了选!不然你从外面根本访问不到你的服务器
- 带宽:按量计费适合流量不稳定的场景,固定带宽适合稳定访问
安全组:这个我最想唠叨几句。安全组就是云服务器的防火墙,控制哪些端口对外开放。很多新手要么全开(安全漏洞),要么全关(啥也访问不了)。
我的建议是,只开放你需要的端口:
- 22端口:SSH远程连接,必须开
- 80端口:HTTP网页服务
- 443端口:HTTPS加密网页服务
- 其他端口按需开放
第三步:连接服务器,告别密码焦虑
服务器创建好后,你会拿到一个公网IP地址和一个用户名密码。接下来怎么连上去?
Windows用户:
下载PuTTY或者直接用Windows自带的OpenSSH。打开PowerShell,输入:
ssh root@你的服务器公网IP
第一次连接会问你”是否继续连接”,输入yes回车。然后输入密码。注意,Linux输入密码时屏幕上不会显示任何字符,这是正常的安全机制,不是你的键盘坏了。
Mac用户:
打开终端,同样输入:
ssh root@你的服务器公网IP
连接成功后的第一件事:修改root密码!默认密码通常是很简单的初始密码,不安全。
passwd root
系统会提示你输入新密码并确认。选一个复杂点的,大小写字母加数字加符号。
第四步:基础安全配置,不做这些迟早出事
我见过太多服务器被入侵的案例,绝大多数都是因为基础安全没做好。别嫌麻烦,这些步骤花不了你几分钟,但能省去你几天的麻烦。
1. 创建普通用户,不要用root干活
# 创建新用户
adduser zhangsan
# 给新用户添加sudo权限
usermod -aG sudo zhangsan
以后用这个普通用户登录,需要管理员权限时再加sudo。
2. 配置SSH密钥登录,告别密码
密码登录有风险,容易被暴力破解。密钥登录更安全也更方便。
在你的本地电脑上生成密钥对:
ssh-keygen -t rsa -b 4096
一路回车就行。然后把公钥复制到服务器:
ssh-copy-id zhangsan@你的服务器公网IP
登录成功后,编辑SSH配置文件,禁止密码登录:
sudo nano /etc/ssh/sshd_config
找到这两行,改成这样:
PasswordAuthentication no
PermitRootLogin no
保存退出后重启SSH服务:
sudo systemctl restart sshd
3. 安装并配置防火墙
Ubuntu自带UFW防火墙,用起来很简单:
# 安装(如果还没装)
sudo apt install ufw -y
# 允许SSH连接(别忘这步,不然你把自己锁外面了)
sudo ufw allow 22/tcp
# 允许HTTP和HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 开启防火墙
sudo ufw enable
# 查看状态
sudo ufw status
4. 安装fail2ban防暴力破解
sudo apt install fail2ban -y
# 启动并设置开机自启
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
真实案例:部署一个个人博客网站
好了,基础配置搞定了,咱们来点实际的。我用我朋友小李的故事来说明。
小李是个程序员,想搭个个人博客记录技术心得。他选的是Ubuntu 22.04 LTS,用Nginx做Web服务器,MySQL存数据,PHP处理动态内容。这就是经典的LAMP或LEMP架构。
安装Nginx:
sudo apt update
sudo apt install nginx -y
# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
打开浏览器访问你的服务器IP,如果看到”Nginx Welcome”页面,说明安装成功。
安装MySQL:
sudo apt install mysql-server -y
# 运行安全脚本
sudo mysql_secure_installation
这个脚本会问你一系列问题:是否安装密码验证插件、设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库。一路选Y回车就行。
安装PHP:
sudo apt install php-fpm php-mysql -y
配置Nginx支持PHP:
sudo nano /etc/nginx/sites-available/default
找到index那行,把index.html改成:
index index.php index.html index.htm;
找到location ~ \.php$那段,取消注释并改成:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
测试配置并重启Nginx:
sudo nginx -t
sudo systemctl restart nginx
部署WordPress:
# 下载WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
# 移动到网站目录
sudo mv wordpress /var/www/html/myblog
# 设置权限
sudo chown -R www-data:www-data /var/www/html/myblog
sudo chmod -R 755 /var/www/html/myblog
创建MySQL数据库和用户:
sudo mysql -u root -p
输入密码登录后,执行:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
在浏览器完成WordPress安装:
访问http://你的服务器IP/myblog,按照提示输入数据库信息,设置管理员账号,搞定!
常见问题解答,踩过的坑都在这儿
问题1:连不上服务器怎么办?
这是新手最常遇到的问题。我帮你理一下排查思路:
- 检查网络:你的电脑能上网吗?在终端ping一下服务器IP,看有没有响应
- 检查SSH服务:登录控制台(云服务商提供的网页控制台),确认服务器在运行状态
- 检查安全组:22端口开没开?有时候云服务商的安全组和系统防火墙是两套规则,都要检查
- 检查IP是否正确:有时候我们会把内网IP当成公网IP用,那是连不上的
- 检查密码:大小写、特殊字符,复制粘贴试试
问题2:访问网站显示403 Forbidden
这通常是权限问题。检查一下:
# 查看目录权限
ls -la /var/www/html
# 确保网站文件所有者是www-data
sudo chown -R www-data:www-data /var/www/html
问题3:MySQL连接失败
有时候Ubuntu升级后MySQL权限会出问题。试试:
sudo mysql -u root
如果报错,试试用sudo权限登录:
sudo mysql -u root
问题4:磁盘空间满了
# 查看磁盘使用情况
df -h
# 查找大文件
sudo du -sh /* | sort -hr
# 清理apt缓存
sudo apt clean
问题5:忘记服务器密码了
别慌,云服务商一般提供VNC控制台或者密码重置功能。登录云服务商控制台,找到对应服务器,有”重置密码”按钮。
进阶:用Docker简化部署
等你玩得更深入一点,会想部署更多服务。这时候Docker能帮你大忙。
# 安装Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 拉取Nginx镜像并运行
docker run -d --name myblog \
-p 80:80 \
-v /var/www/html:/usr/share/nginx/html \
nginx
Docker的好处是环境隔离,装什么依赖都不会弄乱系统。
最后说几句
云服务器这东西,上手容易精通难。今天我讲的只是皮毛,但够你起步了。记住几个原则:
安全第一,别懒,基础安全配置一步都别省。
从小开始,配置不够可以升级,但别一开始就买最贵的。
学会看日志,遇到问题先tail -f /var/log/看看,很多时候答案就在日志里。
多动手,理论知识再熟,不动手实操就是纸上谈兵。
服务器是你数字世界的房子,建好它需要一些时间,但住进去之后你会发现,这一切都值得。有什么具体问题,随时问我,咱们一起解决。