1. Web 技术基础
- Web 服务本质:客户端(浏览器)通过 HTTP/HTTPS 协议向服务端发起请求,服务端返回 HTML/CSS/JS 等资源,形成可交互的网页。
- Web 服务器角色:核心是接收客户端请求、处理并返回资源,Nginx 是目前最主流的高性能 Web 服务器(同时支持反向代理、负载均衡)。
- 核心协议:HTTP(80 端口,明文)、HTTPS(443 端口,加密)。
2. Nginx 核心优势
- 轻量级、高性能,并发处理能力远超 Apache;
- 支持反向代理、负载均衡、动静分离;
- 配置简单,稳定性强,占用系统资源少。
二、Nginx 环境部署(以 Linux CentOS 7/8 为例)
前置条件
- 一台 Linux 服务器(本地虚拟机 / 云服务器),具备 root 权限;
- 服务器可联网,关闭 / 放行防火墙(80/443 端口)。
步骤 1:安装 Nginx
方式 1:yum 一键安装(推荐新手)
bash
运行
# 1. 安装EPEL源(CentOS默认仓库无Nginx)
yum install -y epel-release
# 2. 安装Nginx
yum install -y nginx
# 3. 验证安装
nginx -v # 输出版本号即安装成功,如 nginx/1.20.1
方式 2:编译安装(自定义配置,适合进阶)
bash
运行
# 1. 安装依赖
yum install -y gcc pcre-devel zlib-devel openssl-devel
# 2. 下载Nginx源码(替换为最新版本)
wget https://nginx.org/download/nginx-1.24.0.tar.gz
# 3. 解压并编译
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx # 指定安装目录
make && make install
# 4. 创建软链接(方便全局调用)
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
nginx -v # 验证
步骤 2:Nginx 基础配置
Nginx 的核心配置文件路径:
- yum 安装:
/etc/nginx/nginx.conf(主配置)、/etc/nginx/conf.d/(站点配置,推荐在此新建配置文件); - 编译安装:
/usr/local/nginx/conf/nginx.conf。
示例 1:部署静态网站(最基础场景)
- 创建网站根目录并写入测试页面:
bash
运行
# 创建目录
mkdir -p /usr/share/nginx/html/myweb
# 写入测试页面
echo '<!DOCTYPE html>
<html>
<head><title>My First Nginx Site</title></head>
<body>
<h1>Hello Nginx!</h1>
<p>静态网站部署成功</p>
</body>
</html>' > /usr/share/nginx/html/myweb/index.html
- 新建 Nginx 站点配置文件:
bash
运行
vi /etc/nginx/conf.d/myweb.conf
- 写入以下配置(注释已标注关键项):
nginx
# 单个服务配置块
server {
listen 80; # 监听80端口
server_name localhost; # 访问域名/IP,可填服务器公网IP
# 根目录配置
root /usr/share/nginx/html/myweb;
index index.html index.htm; # 默认首页
# 日志配置(便于排查问题)
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
# 静态资源缓存(优化性能)
location ~* \.(jpg|jpeg|png|css|js)$ {
expires 7d; # 缓存7天
}
}
步骤 3:启动并验证 Nginx
bash
运行
# 1. 检查配置文件语法(关键!启动前必做)
nginx -t # 输出 "nginx: configuration file /etc/nginx/nginx.conf test is successful" 即正常
# 2. 启动Nginx
systemctl start nginx # yum安装方式
# 编译安装方式:/usr/local/nginx/sbin/nginx
# 3. 设置开机自启
systemctl enable nginx
# 4. 查看运行状态
systemctl status nginx # 显示 "active (running)" 即启动成功
- 验证访问:
- 本地虚拟机:直接在浏览器输入
http://localhost; - 云服务器:输入
http://服务器公网IP,即可看到「Hello Nginx!」的测试页面。
- 本地虚拟机:直接在浏览器输入
步骤 4:进阶配置(可选)
1. 反向代理(前端 + 后端分离)
若有后端服务(如 Java/Node.js,运行在 8080 端口),修改myweb.conf:
nginx
server {
listen 80;
server_name localhost;
# 前端静态资源
location / {
root /usr/share/nginx/html/myweb;
index index.html;
}
# 反向代理后端接口
location /api/ {
proxy_pass http://127.0.0.1:8080/; # 后端服务地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # 传递真实IP
}
}
2. 配置 HTTPS(加密访问)
需先申请 SSL 证书(阿里云 / 腾讯云免费申请),配置示例:
nginx
server {
listen 443 ssl;
server_name yourdomain.com; # 你的域名
# SSL证书路径
ssl_certificate /etc/nginx/cert/yourdomain.crt;
ssl_certificate_key /etc/nginx/cert/yourdomain.key;
# SSL优化配置
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
root /usr/share/nginx/html/myweb;
index index.html;
}
# 强制HTTP跳转到HTTPS
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
三、Nginx 常用运维命令
bash
运行
nginx -t # 检查配置语法
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl restart nginx # 重启(配置修改后生效)
systemctl reload nginx # 平滑重启(不中断服务)
systemctl status nginx # 查看状态
nginx -s stop # 强制停止(编译安装方式)
nginx -s reload # 平滑重启(编译安装方式)
四、常见问题排查
-
访问超时 / 无法打开:
- 检查防火墙:
firewall-cmd --zone=public --add-port=80/tcp --permanent→firewall-cmd --reload; - 云服务器需在安全组放行 80/443 端口;
- 检查 Nginx 是否运行:
systemctl status nginx。
- 检查防火墙:
-
403 Forbidden:
- 检查网站目录权限:
chmod -R 755 /usr/share/nginx/html/myweb; - 检查 SELinux:
setenforce 0(临时关闭),或vim /etc/selinux/config→SELINUX=disabled(永久关闭)。
- 检查网站目录权限:
-
502 Bad Gateway:
- 反向代理场景下,检查后端服务是否运行;
- 确认
proxy_pass地址正确,无端口 / 路径错误。
总结
- 核心流程:安装 Nginx → 配置站点(根目录、端口、域名) → 检查配置语法 → 启动并验证访问;
- 关键配置 :
server块是站点核心,listen指定端口,root指定网站目录,proxy_pass实现反向代理; - 运维要点 :修改配置后需平滑重启,日志文件(
/var/log/nginx/)是排查问题的核心依据,HTTPS 需配置 SSL 证书并强制跳转。