一、核心概念梳理
1. Web 技术基础
Web 服务本质是客户端(浏览器)<-> 服务器的 HTTP/HTTPS 通信,核心组件包括:
- Web 服务器:处理 HTTP 请求、返回静态资源(HTML/CSS/JS/ 图片),Nginx 是高性能轻量级选择;
- 动态解析:若需 PHP/Java/Python 动态页面,需搭配 FastCGI / 反向代理(如 Nginx+PHP-FPM);
- 静态 / 动态资源:静态资源直接由 Nginx 返回,动态请求转发给后端语言解析器。
2. Nginx 核心作用
- 反向代理(隐藏后端服务、负载均衡);
- 静态资源托管(性能比 Apache 高 3-5 倍);
- 虚拟主机(一台服务器部署多个网站);
- HTTPS 配置、请求限流、缓存等。
二、Nginx 网站环境部署完整步骤(CentOS 7/8 为例)
前置准备
bash
运行
# 1. 安装依赖
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 2. 下载并解压Nginx(以稳定版1.24.0为例)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
步骤 1:编译安装 Nginx
bash
运行
# 配置编译参数(指定安装路径、启用HTTPS)
./configure --prefix=/usr/local/nginx --with-http_ssl_module
# 编译并安装
make && make install
# 验证安装
/usr/local/nginx/sbin/nginx -v # 输出版本号则成功
步骤 2:基础配置(部署静态网站)
1. 编辑 Nginx 核心配置文件
bash
运行
vim /usr/local/nginx/conf/nginx.conf
2. 核心配置内容(最简版)
nginx
worker_processes 1; # 工作进程数,建议等于CPU核心数
events {
worker_connections 1024; # 单进程最大连接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on; # 开启高效文件传输
keepalive_timeout 65; # 长连接超时时间
# 虚拟主机配置(一个server对应一个网站)
server {
listen 80; # 监听80端口
server_name localhost; # 域名/服务器IP
# 网站根目录(需提前创建)
location / {
root /usr/local/nginx/html; # 静态文件存放路径
index index.html index.htm; # 默认首页
}
# 错误页面配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3. 测试配置并启动 Nginx
bash
运行
# 检查配置语法
/usr/local/nginx/sbin/nginx -t
# 启动Nginx
/usr/local/nginx/sbin/nginx
# 访问测试(浏览器输入服务器IP)
curl http://localhost # 输出html页面内容则成功
步骤 3:部署动态网站(Nginx+PHP-FPM 为例)
1. 安装 PHP-FPM
bash
运行
yum install -y php php-fpm
# 启动PHP-FPM
systemctl start php-fpm
systemctl enable php-fpm
2. 修改 Nginx 配置,转发 PHP 请求
nginx
server {
listen 80;
server_name localhost;
location / {
root /usr/local/nginx/html;
index index.php index.html index.htm; # 优先解析php
}
# 转发.php请求到PHP-FPM
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000; # PHP-FPM默认端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3. 测试动态页面
bash
运行
# 创建php测试文件
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/test.php
# 重启Nginx
/usr/local/nginx/sbin/nginx -s reload
# 访问测试
curl http://localhost/test.php # 输出PHP信息则成功
步骤 4:多网站部署(虚拟主机)
nginx
http {
# 第一个网站
server {
listen 80;
server_name www.site1.com; # 域名1
root /usr/local/nginx/html/site1;
index index.html;
}
# 第二个网站
server {
listen 80;
server_name www.site2.com; # 域名2
root /usr/local/nginx/html/site2;
index index.html;
}
}
步骤 5:HTTPS 配置(可选)
bash
运行
# 1. 生成SSL证书(自签测试用)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/nginx/conf/nginx.key -out /usr/local/nginx/conf/nginx.crt
# 2. 修改Nginx配置
server {
listen 443 ssl;
server_name localhost;
ssl_certificate nginx.crt;
ssl_certificate_key nginx.key;
ssl_session_timeout 5m;
location / {
root html;
index index.html index.htm;
}
}
三、常用运维命令
bash
运行
# 启动/停止/重启Nginx
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -s reload # 平滑重启(不中断服务)
# 查看Nginx进程
ps -ef | grep nginx
# 查看访问日志
tail -f /usr/local/nginx/logs/access.log
# 查看错误日志
tail -f /usr/local/nginx/logs/error.log
四、常见问题排查
- 80 端口被占用 :
netstat -anpt | grep :80找到占用进程,kill -9 PID杀死后重启; - 配置语法错误 :
nginx -t会提示具体错误行号,针对性修改; - PHP 页面下载而非解析:检查 fastcgi_pass 配置是否正确,PHP-FPM 是否启动;
- 403 Forbidden:检查网站目录权限(需给 nginx 用户可读权限)。
总结
- Nginx 部署核心是配置文件 ,需重点关注
server块(端口、域名、根目录)和动态请求转发规则; - 静态网站仅需 Nginx 即可部署,动态网站需搭配对应语言解析器(如 PHP-FPM);
- 运维关键是通过日志和语法检查定位问题,优先保证端口、路径、权限三大核心要素正确。