- 安装 Nginx
bash
sudo apt update && sudo apt upgrade -y
sudo apt install nginx -y
sudo systemctl enable --now nginx # 开机自启并立即启动
- 放通防火墙
bash
sudo ufw allow 'Nginx Full' # 80+443 一次开
sudo ufw allow OpenSSH # 别把自己锁死
sudo ufw enable && sudo ufw status
- 验证默认页
浏览器访问http://<服务器公网IP>
出现 "Welcome to nginx!" 说明安装成功。
- 准备自己的页面
假设本地已打包出dist目录(含 index.html)。
bash
# 上传到服务器
scp -r dist user@<IP>:/home/user/dist
# 移到标准位置并赋权
sudo mv /home/user/dist /var/www/myapp
sudo chown -R www-data:www-data /var/www/myapp
sudo chmod -R 755 /var/www/myapp
- 新建虚拟主机(ServerBlock)
bash
sudo nano /etc/nginx/sites-available/myapp
内容(单页应用模板,直接粘):
nginx
server {
listen 80;
server_name <IP 或域名>; # 例:115.190.211.218 jf_domain.com
root /var/www/myapp; # 指向目标目录
index index.html;
location / {
try_files $uri $uri/ /index.html; # 前端路由回退
}
gzip on;
gzip_types text/plain text/css application/javascript application/json;
gzip_vary on;
access_log /var/log/nginx/myapp.access.log;
error_log /var/log/nginx/myapp.error.log;
}
- 启用配置 & 去默认
bash
sudo ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default # 防止冲突
sudo nginx -t # 语法检查
sudo systemctl reload nginx
-
本地测试(无域名时)
Windows/Mac/Linux 客户端
编辑C:\Windows\System32\drivers\etc\hosts或/etc/hosts:115.190.211.218 jf_domain.com
浏览器访问 http://jf_domain.com 即可。
- 一键排错 checklist
| 仍欢迎页 | sites-enabled 是否只剩自己的链接 | unlink default & reload |
| 403 | 权限/目录在 /root | chown -R www-data:www-data /var/www/xxx |
| 404 | root 路径拼错或缺 try_files | 核对路径、加 try_files |
| 配置不生效 | sudo nginx -t 报错 | 按提示修正断链/语法 |
- 后续可选
- HTTPS:
sudo apt install certbot python3-certbot-nginx && sudo certbot --nginx -d 你的域名 - 开机自启已做,日常重启:
sudo systemctl restart nginx - 看实时日志:
sudo tail -f /var/log/nginx/myapp.access.log