环境配置
本章将介绍如何在不同操作系统上安装和配置 Nginx 开发环境。
安装方式
Ubuntu/Debian
使用 apt 包管理器安装:
# 更新软件源
sudo apt update
# 安装 Nginx
sudo apt install nginx -y
# 检查安装版本
nginx -v
# 启动 Nginx
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 检查状态
sudo systemctl status nginx
解释:
apt update更新软件包索引,确保安装最新版本systemctl是 systemd 的服务管理工具,用于管理后台服务enable命令确保系统启动时自动运行 Nginx
CentOS/RHEL
使用 yum 或 dnf 安装:
# CentOS 7 / RHEL 7
sudo yum install epel-release -y
sudo yum install nginx -y
# CentOS 8+ / RHEL 8+
sudo dnf install nginx -y
# 启动服务
sudo systemctl start nginx
sudo systemctl enable nginx
# 检查状态
sudo systemctl status nginx
解释:CentOS 默认源不包含 Nginx,需要先安装 EPEL 仓库(Extra Packages for Enterprise Linux)。
macOS
使用 Homebrew 安装:
# 安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Nginx
brew install nginx
# 启动 Nginx
brew services start nginx
# 或者前台运行(用于调试)
nginx
macOS 安装后的默认路径:
- 配置文件:
/opt/homebrew/etc/nginx/nginx.conf - 默认站点:
/opt/homebrew/var/www - 日志目录:
/opt/homebrew/var/log/nginx
Windows
- 访问 Nginx 下载页面 下载稳定版
- 解压到目录(如
C:\nginx) - 运行命令:
# 启动 Nginx
cd C:\nginx
start nginx
# 停止 Nginx
nginx -s stop
# 重新加载配置
nginx -s reload
# 检查版本
nginx -v
使用 Docker 安装(推荐)
Docker 方式安装简单,环境隔离,适合开发和生产:
# 拉取官方镜像
docker pull nginx:latest
# 运行 Nginx 容器
docker run -d \
--name nginx \
-p 80:80 \
-p 443:443 \
-v /path/to/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /path/to/html:/usr/share/nginx/html:ro \
nginx:latest
# 查看运行状态
docker ps
# 进入容器
docker exec -it nginx bash
解释:
-d后台运行容器-p 80:80映射端口-v挂载配置文件和网站目录:ro表示只读挂载
Docker Compose 配置
更推荐使用 Docker Compose 管理:
# docker-compose.yml
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./html:/usr/share/nginx/html:ro
- ./logs:/var/log/nginx
restart: always
networks:
- web-network
networks:
web-network:
driver: bridge
启动:
docker-compose up -d
源码编译安装
如需自定义模块或特定版本,可从源码编译:
# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev -y
# 下载源码
wget https://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
# 配置编译选项
./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_gzip_static_module
# 编译和安装
make
sudo make install
解释:
--prefix指定安装目录--with-http_ssl_module启用 SSL 支持--with-http_v2_module启用 HTTP/2 支持--with-http_gzip_static_module启用 gzip 压缩
基本操作命令
服务管理命令
# 启动 Nginx
sudo systemctl start nginx # systemd 方式
sudo service nginx start # init.d 方式
nginx # 直接启动
# 停止 Nginx
sudo systemctl stop nginx
sudo service nginx stop
nginx -s stop # 快速停止
nginx -s quit # 优雅停止(等待请求处理完成)
# 重启 Nginx
sudo systemctl restart nginx
sudo service nginx restart
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
nginx -s reload
# 查看状态
sudo systemctl status nginx
配置验证命令
# 检查配置文件语法
nginx -t
# 检查指定配置文件
nginx -t -c /path/to/nginx.conf
# 查看编译参数
nginx -V
# 查看版本
nginx -v
解释:修改配置文件后,先使用 nginx -t 验证语法,然后再重新加载,避免配置错误导致服务中断。
目录结构
安装后的主要目录
/etc/nginx/ # 配置文件目录(主要)
├── nginx.conf # 主配置文件
├── conf.d/ # 附加配置文件目录
├── sites-available/ # 可用站点配置
├── sites-enabled/ # 启用的站点配置(符号链接)
├── modules/ # 模块目录
└── ssl/ # SSL 证书目录
/var/log/nginx/ # 日志目录
├── access.log # 访问日志
└── error.log # 错误日志
/usr/share/nginx/ # 默认网站目录
├── html/ # 默认网页
└── ...
/var/run/nginx.pid # PID 文件
重要配置文件说明
| 文件 | 说明 |
|---|---|
/etc/nginx/nginx.conf | 主配置文件,包含全局设置 |
/etc/nginx/conf.d/*.conf | 自定义配置文件,通常放置站点配置 |
/etc/nginx/sites-available/* | 站点配置文件(可用) |
/etc/nginx/sites-enabled/* | 启用的站点配置(链接) |
验证安装
浏览器访问
安装完成后,打开浏览器访问 http://localhost 或服务器 IP 地址,应该看到 Nginx 默认欢迎页面。
命令行测试
# 使用 curl 测试
curl -I http://localhost
# 预期输出
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Mon, 01 Jan 2024 00:00:00 GMT
Content-Type: text/html
Content-Length: 612
Connection: keep-alive
查看进程
# 查看 Nginx 进程
ps aux | grep nginx
# 预期输出
root 1234 0.0 0.1 12345 6789 ? Ss 10:00 0:00 nginx: master process
www-data 1235 0.0 0.1 12345 6789 ? S 10:00 0:00 nginx: worker process
开发环境推荐
VS Code 配置
安装 Nginx 配置语法高亮插件:
- nginx.conf - Nginx 语法高亮
本地开发环境
推荐使用 Docker 搭建本地开发环境,隔离且可重复:
# 创建项目目录
mkdir my-nginx-project
cd my-nginx-project
# 创建目录结构
mkdir -p conf.d html logs ssl
# 创建基本配置
cat > nginx.conf << 'EOF'
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}
EOF
# 创建站点配置
cat > conf.d/default.conf << 'EOF'
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
EOF
# 创建测试页面
cat > html/index.html << 'EOF'
<!DOCTYPE html>
<html>
<head><title>Nginx 测试</title></head>
<body><h1>Nginx 安装成功!</h1></body>
</html>
EOF
# 启动
docker-compose up -d
常见问题
1. 端口被占用
# 查看端口占用
sudo lsof -i :80
# 或
sudo netstat -tlnp | grep 80
# 杀掉占用进程
sudo kill -9 <PID>
2. 权限问题
# 确保 Nginx 用户有权限访问网站目录
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
3. 防火墙设置
# Ubuntu/Debian - ufw
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
# CentOS/RHEL - firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
小结
本章我们学习了:
- 在不同操作系统上安装 Nginx
- 使用 Docker 安装 Nginx
- Nginx 的基本操作命令
- 配置文件的目录结构
- 验证安装的方法
- 常见问题的解决方法
练习
- 在你的系统上安装 Nginx
- 使用
nginx -t检查默认配置 - 访问
http://localhost确认安装成功 - 使用 Docker 搭建一个 Nginx 开发环境
准备好继续学习了吗?下一章将介绍 Nginx 的基础配置。