从零搭个网站,从外网能访问,nginx 实战。
安装
sudo apt update && sudo apt install -y nginx
sudo systemctl status nginx
ss -tlnp | grep 80
server 块逐行解读
sudo vim /etc/nginx/sites-available/mysite
server {
listen 80;
server_name example.com;
root /var/www/mysite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
listen 监听端口,server_name 域名,root 网站根目录,location 匹配 URL 路径。
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
软链接启用站点,nginx -t 检查配置语法,reload 重载不中断服务。
双站点实战
两个 server 块,不同 server_name,共用 80 端口,nginx 按域名分发。root 指向各自目录即可。
防火墙放行
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
排错五连
403:目录权限,参考 L6 的 chown/chmod 套餐
404:root 路径错了或文件不存在
502:后端没跑(php-fpm 之类)
nginx -t 报错:配置文件语法错,按提示改
curl 本地 200 但外网打不开:防火墙或安全组没放行
从零 7 步完整流程
# 1. 装
sudo apt install -y nginx
# 2. 写配置
sudo vim /etc/nginx/sites-available/mysite
# 3. 启用
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
# 4. 检查语法
sudo nginx -t
# 5. 重载
sudo systemctl reload nginx
# 6. 放行防火墙
sudo ufw allow 80/tcp
# 7. 验证
curl -I http://127.0.0.1
小结
下一篇 L15:自动化备份实战——综合项目,脚本+cron+日志+恢复演练,系列收官。