一、Nginx 概述
1.1 什么是 Nginx
Nginx 是一款轻量级的 Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它以占用内存少、并发能力强而著称,在同类型网页服务器中表现优异。国内众多知名网站如百度、京东、新浪、网易、腾讯、淘宝等均在使用 Nginx。

Nginx 由俄罗斯开发者伊戈尔・赛索耶夫为 Rambler.ru 站点开发,第一个公开版本 0.1.0 于 2004 年 10 月 4 日发布。其官方网站为:nginx
1.2 Nginx 下载与安装
1.2.1 下载
Nginx 官网下载页面(nginx: download)提供了各版本的下载链接,建议选择稳定版本。本文以 1.16.1 版本为例进行讲解,该版本在课程资料中也有提供。
1.2.2 安装步骤
- 安装依赖包
由于 Nginx 基于 C 语言开发,需先安装 C 语言编译环境及相关依赖库:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

- 下载 Nginx 安装包
yum install wget
wget https://nginx.org/download/nginx-1.16.1.tar.gz

- 解压压缩包
tar -zxvf nginx-1.16.1.tar.gz

- 配置编译环境
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx #prefix 指定 Nginx 的安装目录。

- 编译并安装
make & make install
1.3 Nginx 目录结构
安装完成后,切换到安装目录(/usr/local/nginx),其主要目录结构如下:重点!!!!
| 目录 / 文件路径 | 作用说明 | 补充备注 |
|---|---|---|
conf | Nginx 配置文件的统一存放目录 | 可包含主配置、虚拟主机、模块等细分配置 |
conf/nginx.conf | Nginx 最核心的全局配置文件,定义服务启动、进程、虚拟主机等基础规则 | 所有 Nginx 功能都围绕此文件串联 |
html | 静态资源(HTML、CSS、JS、图片等)的默认存放目录 | 部署静态站点时,文件可直接丢这里 |
logs | 日志存储目录,包含访问日志(access.log)、错误日志(error.log)等 | 排查问题、统计流量的核心依据 |
sbin/nginx | Nginx 主程序二进制文件,用于启动、停止、重启服务(如nginx -s reload) | 服务启停、重载配置的直接操作入口 |
二、Nginx 常用命令
Nginx 的二进制可执行文件(nginx)位于 sbin 目录下,通过不同参数可实现多种功能,以下为常用命令(需在 /usr/local/nginx/sbin/ 目录下执行)。
2.1 基础命令
- 查看版本
cd /usr/local/nginx/sbin/
./nginx -v

- 检查配置文件
修改配置文件后,启动前需检查配置是否有误:
./nginx -t
- 启动 Nginx 启动之后,我们可以直接访问Nginx的80端口, http://192.168.xxx.xxx 自己的Linux ip 可通过ip addr进行查看
./nginx

启动后可通过 ps -ef | grep nginx 查看进程,默认会启动两个进程。
![]()
访问注意:需关闭防火墙或开放 80 端口
- 关闭防火墙:
systemctl stop firewalld- 开放 80 端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent,随后执行firewall-cmd --reload
- 停止 Nginx
./nginx -s stop
- 重新加载配置文件
修改配置后需重新加载生效:别忘记了!
./nginx -s reload
2.2 环境变量配置
为避免每次执行命令都需切换到 sbin 目录,可配置环境变量:
- 编辑 /etc/profile 文件,在 PATH 中添加 Nginx 的 sbin 目录:
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4 export PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

- 使配置生效:
source /etc/profile
配置后可在任意目录执行 nginx 命令。
三、Nginx 核心应用
3.1 配置文件结构
Nginx 配置文件(conf/nginx.conf)分为三部分:
| 区域 | 职责 |
|---|---|
| 全局块 | 配置与 Nginx 运行相关的全局参数 |
| events 块 | 配置与网络连接相关的参数 |
| http 块 | 配置代理、缓存、日志记录、虚拟主机等核心配置 |
http 块中可包含多个 server 块,每个 server 块可配置多个 location 块。
3.2 部署静态资源
Nginx 作为静态 Web 服务器部署静态资源(html、css、js、图片等)非常高效,步骤如下:
- 将静态资源复制到 /usr/local/nginx/html 目录。
- 配置 server 块:
server {
listen 80; # 监听端口
server_name localhost; # 服务器名称
location / { # 匹配客户端请求 URL
root html; # 静态资源根目录
index index.html; # 默认首页
}
}
- 如需修改默认首页,可调整 index 指令(如
index hello.html;),修改后执行nginx -t检查配置,再执行nginx -s reload重新加载。
3.3 反向代理
3.3.1 概念
- 正向代理:客户端设置代理服务器,通过代理访问目标服务器,常用于局域网客户端访问互联网。
- 反向代理:用户直接访问反向代理服务器,代理将请求转发到目标服务器,用户无需知道目标服务器地址。
3.3.2 配置示例
在 nginx.conf 中添加如下配置,实现访问 Nginx 的 82 端口时转发到 192.168.200.201:8080:
server {
listen 82;
server_name localhost;
location / {
proxy_pass http://192.168.200.201:8080; # 反向代理配置
}
}
配置后需开放 82 端口或关闭防火墙,再重新加载配置。
3.4 负载均衡
3.4.1 概念
当单台服务器无法满足需求时,可通过多台服务器组成应用集群,负载均衡器将请求分发到集群中的服务器,实现性能扩展和避免单点故障。Nginx 基于反向代理实现负载均衡。
3.4.2 配置示例
- 在 192.168.xxx.xxx 服务器启动两个服务(8080 和 8081 端口)。
- 在 nginx.conf 中配置:
# 定义服务器集群
upstream targetserver{
server 192.168.xxx.xxx:8080;
server 192.168.xxx.xxx:8081;
}
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver; # 转发到集群
}
}
- 重新加载配置后,访问 Nginx 的 8080 端口,请求会按默认轮询策略分发到 8080 和 8081 服务。
3.4.3 负载均衡策略
Nginx 支持多种负载均衡策略:
| 策略名称 | 说明 | 特点 |
|---|---|---|
| 轮询 | 默认策略,按顺序分发请求 | 均匀分配请求 |
| weight | 按权重分发,权重越高分配概率越大 | 可根据服务器性能调整权重 |
| ip_hash | 根据客户端 IP 哈希值分发 | 同一 IP 请求转发到同一服务器,解决会话保持问题 |
| least_conn | 优先分发到连接数少的服务器 | 动态平衡服务器负载 |
| url_hash | 根据请求 URL 哈希值分发 | 同一 URL 请求转发到同一服务器,适用于缓存场景 |
| fair | 优先分发到响应时间短的服务器 | 基于服务器响应速度智能分配 |
权重配置示例:
upstream targetserver{
server 192.168.200.201:8080 weight=10; # 权重 10
server 192.168.200.201:8081 weight=5; # 权重 5,接收请求数约为 8080 的一半
}
总结
Nginx 以其轻量高效的特点,在 Web 服务器、反向代理和负载均衡等场景中广泛应用。本文介绍了 Nginx 的安装、常用命令及核心应用配置,掌握这些内容可满足基本的 Nginx 使用需求。实际生产环境中,还需根据具体场景优化配置,充分发挥 Nginx 的性能优势。
Nginx入门:安装、命令与核心应用

964

被折叠的 条评论
为什么被折叠?



