云服务器上用 Nginx 托管静态网站:从安装到可访问的完整流程
把做好的静态页面(比如个人主页、文档站、小游戏)放到云服务器上让别人访问,最常用的方式就是用 Nginx 来托管。本文以常见的 Ubuntu / CentOS 云服务器为例,把从安装到浏览器可访问的完整流程梳理一遍,跟着做基本不会踩坑。
一、准备工作
1. 一台能 SSH 登录的云服务器(本文以 Ubuntu 22.04 / CentOS 7+ 为例)。
2. 确认安全组放行了 80 端口(HTTP):在云控制台找到服务器绑定的安全组,入方向添加规则——协议 TCP、端口 80、源地址 0.0.0.0/0。
3. 服务器本机防火墙也别忘了:Ubuntu 用 ufw,CentOS 用 firewalld,后文会讲。
二、安装 Nginx
Ubuntu / Debian:
sudo apt update
sudo apt install -y nginx
CentOS / RHEL:
sudo yum install -y nginx
安装完成后启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
看到 active (running) 即表示运行正常。
三、准备网站文件
把静态文件(index.html、css、js、图片等)放到网站根目录。Ubuntu 默认是 /var/www/html,CentOS 默认是 /usr/share/nginx/html。
示例:
echo '<h1>Hello from my cloud server</h1>' | sudo tee /var/www/html/index.html
生产环境建议为每个站点单独建目录(如 /var/www/mysite),并把目录属主设为 Nginx 运行用户,避免权限问题。
四、写一个最简站点配置(可选)
默认配置开箱即用;如需自定义根目录或托管多个站点,可新建 server 配置。
Ubuntu 示例:新建 /etc/nginx/sites-available/mysite,内容如下:
server {
listen 80;
server_name _;
root /var/www/mysite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
然后执行:
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
CentOS 示例:把同样的 server 块写到 /etc/nginx/conf.d/mysite.conf,然后执行 sudo nginx -t && sudo systemctl reload nginx。
注意:每次修改配置后都要先用 nginx -t 检查语法,通过后再 reload。
五、放行本机防火墙
Ubuntu(ufw):
sudo ufw allow 'Nginx Full'
CentOS(firewalld):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
六、验证访问
在浏览器地址栏输入服务器的公网 IP(或已解析的域名),看到页面即成功。也可在服务器本机验证:
curl -I http://localhost
返回 200 OK 说明服务正常。
常见问题排查
1. 浏览器打不开:先查安全组 80 端口是否放行,再查本机防火墙,最后确认 nginx 进程在运行。
2. 403 Forbidden:多半是目录或文件权限问题,确认 nginx 用户对网站目录有读取权限。
3. 404 Not Found:检查 root 路径与 index 文件名是否对应。
4. 改配置不生效:改完务必 nginx -t 检查语法再 reload。
小结
Nginx 托管静态网站核心就四步:装好 Nginx、放好网站文件、配好 server、放行 80 端口。流程跑通后,更新页面只需替换网站目录下的文件。对外正式提供服务时,建议再配置 HTTPS。
- 点赞
- 收藏
- 关注作者
评论(0)