Nginx 安装

正式学配置之前,得先在自己的机器上把 Nginx 跑起来。Nginx 的安装非常简单——Linux/Mac 上一个包管理器命令,Windows 上一个 zip 包,最方便的是用 Docker。这一章我们逐一过一遍,并讲清装完后的目录结构启停命令,为后续章节打基础。

1. Linux 上安装(最常见)

Ubuntu / Debian 系

# Ubuntu / Debian 系
sudo apt update
sudo apt install -y nginx

# 安装完成后,systemd 会自动启用 nginx 服务
sudo systemctl status nginx
# 看到 "active (running)" 即表示已启动

# 设置开机自启
sudo systemctl enable nginx

CentOS / RHEL / Rocky Linux

# CentOS 7 / RHEL / Rocky Linux
# 先装 EPEL 仓库(CentOS 8+ / Stream 自带)
sudo yum install -y epel-release
sudo yum install -y nginx

# 启动 + 开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# CentOS 默认 firewalld 会拦截 80 端口,需放行
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

注意:CentOS 默认仓库的 Nginx 版本可能偏旧,要装新版本可以用官方仓库:

# 想装新版本的 Nginx,先加官方仓库(CentOS 8+)
sudo rpm -Uvh https://nginx.org/packages/centos/8/noarch/RPMS/nginx-release-centos-8-0.el8.ngx.noarch.rpm

# 然后再 yum install,就能装到比仓库默认更新的版本
sudo yum install -y nginx

2. Mac 上安装

Mac 推荐 Homebrew,一条命令搞定:

# Mac 推荐 Homebrew
brew install nginx

# 启动(brew services 会自动设为开机启动)
brew services start nginx

# 测试配置 + 手动启动(前台运行,方便看日志)
nginx -t
nginx -g 'daemon off;'

# Mac 上 brew 安装的 Nginx 目录与 Linux 略有不同:
# 配置文件: /opt/homebrew/etc/nginx/nginx.conf        (Apple Silicon)
#           /usr/local/etc/nginx/nginx.conf           (Intel Mac)
# 默认根目录: /opt/homebrew/var/www/
# 日志目录:   /opt/homebrew/var/log/nginx/

Mac 上 brew 装的 Nginx 路径与 Linux 略有不同(详见上面注释),开发够用,但生产环境不要用 Mac 做服务器

3. Windows 上安装(不推荐生产)

Windows 版 Nginx 适合本地开发测试,不适合生产——Windows 上 Nginx 用 select 模型,性能远不如 Linux 的 epoll。安装方式:

4. Docker 安装(推荐新手和本地实验)

如果你不想搞乱系统,Docker 是最干净的方式——一行命令拉起一个完整 Nginx,删掉容器什么都不剩:

# 最快上手方式:Docker 一行命令起一个 Nginx
docker run -d --name my-nginx \
  -p 80:80 \
  -v $(pwd)/html:/usr/share/nginx/html:ro \
  nginx:stable

# 参数解释:
#   -d              后台运行
#   --name          容器命名
#   -p 80:80        把容器 80 端口映射到宿主机 80 端口
#   -v ...:ro       把当前目录的 html/ 挂载到容器内默认网站根目录(只读)

# 进入容器看配置
docker exec -it my-nginx cat /etc/nginx/nginx.conf

# 重载配置(容器内)
docker exec my-nginx nginx -s reload

5. 验证安装是否成功

装完后用下面这套命令自测,这些命令以后会天天用

# 1. 查看版本(确认装好了)
nginx -v
# 输出示例: nginx version: nginx/1.24.0

# 2. 编译选项(看支持哪些模块)
nginx -V
# 输出会包含 configure arguments,能看到 --with-http_ssl_module 等

# 3. 测试配置文件语法(修改配置后必做!)
sudo nginx -t
# 输出: nginx: configuration file /etc/nginx/nginx.conf test is successful

# 4. 用 curl 验证页面
curl -I http://localhost
# HTTP/1.1 200 OK
# Server: nginx/1.24.0
# ...

浏览器访问 http://localhost/,看到 "Welcome to nginx!" 欢迎页就大功告成了。

6. 目录结构(重要!必背)

Ubuntu/Debian 装的 Nginx 默认目录如下(CentOS 几乎一致,只是 www-data 用户换成 nginx):

记忆口诀:etc 配置、www 网页、log 日志、sbin 程序

7. 启动、停止、重载

Nginx 的启停有两种方式——systemctl(推荐)和 nginx 命令的信号控制。两者效果等价:

# Ubuntu/CentOS 通用(systemd)
sudo systemctl start nginx       # 启动
sudo systemctl stop nginx        # 停止
sudo systemctl restart nginx     # 重启(会断开现有连接,慎用)
sudo systemctl reload nginx      # 平滑重载配置(推荐!零停机)
sudo systemctl status nginx      # 查看状态

# 直接用 nginx 命令(信号控制)
sudo nginx                       # 启动
sudo nginx -s stop               # 快速停止
sudo nginx -s quit               # 优雅停止(等当前请求处理完)
sudo nginx -s reload             # 重载配置
sudo nginx -s reopen             # 重新打开日志文件(日志切割用)

几个关键区别:

8. 第一个静态网站

来动手做一个小实验:建一个目录、扔个 HTML、改个配置,让 Nginx 把它发布出去。

  1. 创建网站目录:sudo mkdir -p /var/www/mysite
  2. 写一个简单的 HTML:echo '<h1>Hello Nginx</h1>' | sudo tee /var/www/mysite/index.html
  3. 新建配置文件 /etc/nginx/conf.d/mysite.conf,内容下一篇会讲,这里先用最简单的。
  4. 测试:sudo nginx -t
  5. 重载:sudo nginx -s reload
  6. 浏览器访问 http://localhost/,看到 "Hello Nginx" 即成功。

这一步走通后,你就拿到了 Nginx 的"入门钥匙"。下一篇我们正式进入配置文件的世界。

← 上一篇 Nginx 简介

下一篇 nginx.conf 结构

✈️💬