《服务器运维》课程 向艺 · 25网络A1班
这里是我在《服务器运维》课程前三讲里亲手做过的事:做了什么、用了哪些命令、踩了什么坑。笔记按讲次整理,每条命令我都自己敲过一遍。
购买阿里云 ECS(系统选 Rocky Linux 9),拿到公网 IP,用 SSH 从自己电脑连上服务器,并创建了一个日常使用的普通用户 study,把它加入 wheel 组以获得 sudo 权限,之后不再直接用 root 干活。
# 从自己的电脑连接服务器
ssh root@服务器公网IP
# 创建普通用户并设置密码
useradd study
passwd study
# 加入 wheel 组,获得 sudo 权限
usermod -aG wheel study
安装并启动 Nginx,防火墙放行 80 端口;先用 IP 访问看到了系统默认页,然后建立自己的网页目录 /var/www/mysite,写好 index.html,在 /etc/nginx/conf.d/mysite.conf 里写 server 块,让域名对应的请求落到自己的目录上。
# 安装并启动 Nginx,设置开机自启
sudo dnf install -y nginx
sudo systemctl enable --now nginx
# 防火墙放行 HTTP 服务并重载
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
# 建目录、放网页、改属主
sudo mkdir -p /var/www/mysite
sudo chown -R study:study /var/www/mysite
# 每次改完配置:先检查语法,再重载
sudo nginx -t
sudo systemctl reload nginx
nginx 用户身份读取文件,目录没有「其他人可执行」权限(755)它就进不去。用 ls -l 核对权限改回 755 后恢复。给域名 xiangyi.cyou 添加 A 记录指向服务器公网 IP,完成备案;然后为 xiangyi.cyou 和 www.xiangyi.cyou 申请 Let's Encrypt 免费证书,在 mysite.conf 里补上 443 端口的 SSL 部分,80 端口只保留证书验证目录和到 HTTPS 的跳转。80 和 443 的分工:80 负责「验证 + 跳转」,443 负责内容。
# 验证解析是否生效,Address 应是服务器公网 IP
nslookup xiangyi.cyou
# 先演练,成功后去掉 --dry-run 正式申请证书
sudo certbot certonly --webroot -w /var/www/mysite \
-d xiangyi.cyou -d www.xiangyi.cyou --dry-run
sudo certbot certonly --webroot -w /var/www/mysite \
-d xiangyi.cyou -d www.xiangyi.cyou
# 查看本机已有的证书
sudo certbot certificates
# 证书自动续期,deploy 钩子在续期后重载 Nginx
sudo certbot renew --dry-run
mysite.conf 复制成 mysite.conf.bak 不受影响,但如果备份文件以 .conf 结尾,Nginx 主配置里的 include /etc/nginx/conf.d/*.conf 会把它也加载进来,造成重复的 server 块。备份文件一定不要以 .conf 结尾。