Nginx 从入门到精通:一站式 Web 服务器实战指南
nginx 服务介绍
HTTP 概述
HTTP 全称是 HyperText Transfer Protocal,即:超文本传输协议,从 1990 年开始就在 WWW 上广泛应用,是现今在 WWW 上应用最多的协议,HTTP 是应用层协议,当你上网浏览网页的时候,浏览器和 web 服务器之间就会通过 HTTP 在 Internet 上进行数据的发送和接收。
HTTP 协议是基于 TCP/IP 协议之上的应用层协议。

请求必定由客户端 发出,而服务器回复响应
♦ HTTP特点:
简单快速:用户向服务器请求服务时,只要传送请求方法和路径。因为 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因此通信速度很快。
灵活: HTTP 允许传输任意类型的数据对象。
无连接:无连接的含义是限制每次链接只解决一个请求。服务器解决完用户的请求,并收到用户的应答后,即断开链接,采用这种方式可以节省传输时间。
无状态: HTTP 协议是无状态协议。无状态是指协议对于事物解决没有记忆能力。缺少状态意味着假如后续解决需要前面的信息,则它必需重传,这样可能会导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。
HTTP 协议自身不具备保存之前 发送过的请求或响应的功能
♦ URL介绍
URL(Uniform Resource Locator)是统一资源定位符的简称,有时候也被俗称为网页地址(网址),好像是网络上的门牌,是因特网上标准的资源的地址。
通用的格式:
♦ 响应状态码
常见的状态码:
| 状态码 | 对应的信息 |
|---|---|
| 1xx | 提醒信息一表示请求已接收,继续解决 |
| 2xx | 用于表示请求已被成功接收、了解、接收 |
| 3xx | 用于表示资源(网页等)被永久转移到其它URL,也就是所谓的重定向 |
| 4xx | 用户端错误一请求有语法错误或者者请求无法实现 |
| 5xx | 服务器端错误-服务器未能实现合法的请求 |
nginx服务介绍
♦ nginx简介
- Nginx 读作 “engine-ex”。
- Nginx 是由俄罗斯程序员 Igor Sysoev 编写,2004年10月作为一个试图回答公众发布 C10K 问题。其中 C10k 是同时管理 10,000 个连接的挑战。Nginx 采用了事件驱动和异步架构,此设计使 Nginx 成为可扩展、 高性能的服务器。
- 它是一个开源、轻量级和高性能的 Web 服务器,也用作 HTTP、HTTPS、SMTP、IMAP、POP3 协议的反向代理服务器,另一方面,它也用作 IMAP、POP3 和 IMAP 的 HTTP 负载均衡器、HTTP 缓存和电子邮件代理。
nginx 的安装与使用
安装 nginx
方式一:yum安装
- 安装epel源
yum -y install epel-release
- 安装nginx软件包
yum -y install nginx
- 启动服务
systemctl start nginx
- 查看版本
nginx -v
- 测试访问
方式二:源码安装
- 环境准备
卸载其他方式安装的web应用,防止端口冲突
- 下载nginx源码包
wget http://nginx.org/download/nginx-1.22.1.tar.gz
- 源码编译安装
yum install -y gcc pcre-devel zlib-devel # 安装依赖包
useradd -M -s /sbin/nologin nginx # 创建程序运行用户和组
tar -axf nginx-1.22.1.tar.gz # 解包
cd ~/nginx-1.22.1
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx # 配置
说明:
–prefix=/usr/local/nginx #指定安装目录
–user=nginx --group=nginx #指定程序运行的用户和组
make && make install #编译安装
4)启动服务,防火墙放行
/usr/local/nginx/sbin/nginx
netstat -tunlp | grep nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
5)命令路径优化
vim /etc/profile.d/nginx.sh
export PATH="/usr/local/nginx/sbin:$PATH"
source /etc/profile #立即生效
6)设置开机自启动
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
♦ 服务管理
Nginx运行时分为:一个nginx: master process主进程和若干个 nginx:worker process 工作进程
ps -C nginx -o pid,ppid,command
- 启动
nginx
或
nginx -c /usr/local/nginx/conf/nginx.conf
- 快速关闭
pkill -9 nginx
或者
nginx -s stop
- 重载
nginx -s reload
- 优雅的关闭
nginx -s quit
或者
kill -QUIT nginx主进程号
♦ 服务管理
nginx命令其他常用选项:
-c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的。
-t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
-v 显示 nginx 的版本。
-V 显示 nginx 的版本,编译器版本和配置参数。
主程序可以处理以下信号:
| TERM, INT | 快速关闭 |
|---|---|
| QUIT | 从容关闭 |
| HUP | 重载配置 用新的配置开始新的工作进程 从容关闭旧的工作进程 |
| USR1 | 重新打开日志文件 |
| USR2 | 平滑升级可执行程序。 |
| WINCH | 从容关闭工作进程 |
升级安装 nginx
场景:添加功能模块
- 查看当前安装配置信息
nginx -V
2)重新配置
cd ~/nginx-1.22.1
make clean # 清除之前编译的文件
# 添加ssl安全加密功能 with-http_ssl_module模块
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
make && make install (版本升级不能执行make install 只需替换编译好的nginx可执行文件)
make upgrade #执行平滑升级
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module
nginx 配置文件介绍
主配置文件:/usr/local/nginx/conf/nginx.conf


nginx常见的配置文件及其作用:
| 配置文件 | 作用 |
|---|---|
| nginx.conf | nginx的基本配置文件 |
| mime.types | MIME类型关联的扩展文件 |
| fastcgi.conf | 与fastcgi相关的配置 |
| proxy.conf | 与proxy相关的配置 |
| sites.conf | 配置nginx提供的网站,包括虚拟主机常见的配置文件及其作用 |
实战配置案例
下面是一个简单的静态网站配置示例,展示了如何配置一个基本的 Nginx 服务器块(server block):
# 简单的静态网站配置示例
server {
# 监听端口
listen 80;
# 服务器名称(域名)
server_name example.com www.example.com;
# 网站根目录
root /var/www/example.com;
# 默认索引文件
index index.html index.htm;
# 访问日志配置
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
# 主 location 块
location / {
# 尝试按顺序查找文件
try_files $uri $uri/ =404;
}
# 静态文件缓存配置
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
配置说明
-
server 块:定义一个虚拟主机,可以包含多个 server 块来服务不同的网站。
-
listen 指令:指定 Nginx 监听的端口,这里监听 80 端口(HTTP)。
-
server_name 指令:指定服务器响应的域名,可以配置多个域名,用空格分隔。
-
root 指令:设置网站的根目录,所有请求的文件都将从这个目录中查找。
-
index 指令:指定默认的索引文件,当访问目录时,Nginx 会按顺序查找这些文件。
-
access_log 和 error_log 指令:
access_log:记录所有访问日志error_log:记录错误日志
日志路径可以根据实际需求调整。
-
location 块:
location /:匹配所有请求,使用try_files指令尝试查找文件location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配静态文件,设置缓存时间location ~ /\.:禁止访问以点开头的隐藏文件
使用步骤
- 创建网站目录:
sudo mkdir -p /var/www/example.com
- 创建测试页面:
sudo echo "<h1>Welcome to Example.com</h1>" > /var/www/example.com/index.html
-
将配置文件保存到
/etc/nginx/sites-available/example.com(或/usr/local/nginx/conf.d/example.com.conf) -
创建符号链接(如果使用 sites-available/sites-enabled 结构):
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
- 测试配置语法:
sudo nginx -t
- 重载 Nginx 配置:
sudo nginx -s reload
- 访问测试:
在浏览器中访问http://example.com或使用 curl:
curl http://localhost
这个配置示例展示了 Nginx 配置的基本结构,可以根据实际需求进行调整和扩展。
nginx 虚拟主机配置
虚拟主机配置
- 虚拟主机概念
虚拟主机,就是把一台物理服务器划分成多个 “虚拟” 的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。Nginx 提供虚拟主机的功能,就是为了让我们不需要安装多个 Nginx,就可以运行多个域名不同的网站。
每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的 Intemet 服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
Nginx 下,一个 server 标签就是一个虚拟主机。nginx 的虚拟主机就是通过主配置文件 nginx.conf 中 server 节点指定的,想要设置多个虚拟主机,配置多个server节点即可。
- 虚拟主机实现方式
配置虚拟主机有三种方法:
- 基于域名的虚拟主机 : 不同的域名、相同的IP(此方式应用最广泛)。
- 基于IP地址的虚拟主机 : 不同的域名、不同的IP , 基于IP地址。
- 基于端口的虚拟主机 : 不使用域名、IP来区分不同站点的内容,而是用不同的TCP端口号。
方式一:基于相同 IP 不同端口
- 创建两个网站的根目录
mkdir /www01
mkdir /www02
echo "this is web1" > /www01/index.html
echo "this is web2" > /www02/index.html
- 修改主配置
include /usr/local/nginx/conf.d/*.conf; # (添加在http块里面)
nginx -t # 修改完后用该命令去检查语法
nginx -s reload # 重载
- 配置 server
mkdir /usr/local/nginx/conf.d
vim /usr/local/nginx/conf.d/web1.conf
vim /usr/local/nginx/conf.d/web2.conf
- 测试
方式二:基于相同端口号不同 IP
vim /usr/local/nginx/conf.d/web1.conf
vim /usr/local/nginx/conf.d/web2.conf
重载
nginx -s reload
临时添加 IP地址测试(重启失效)
ip addr add 192.168.19.10/24 dev ens160
ip addr add 192.168.19.20/24 dev ens160
永久添加 IP
# 查看当前网卡名称
nmcli device status
# 为 ens160 网卡添加辅助IP(假设网卡名为 ens160)
nmcli connection modify ens160 +ipv4.addresses 192.168.19.20/24
nmcli connection up ens160
测试
方式三:基于不同主机名
vim /usr/local/nginx/conf.d/web1.conf
vim /usr/local/nginx/conf.d/web2.conf
nginx -s reload
修改本地hosts文件测试
echo "192.168.19.128 www.web1.com www.web2.com" >> /etc/hosts
nginx 常用命令介绍
指令介绍
Nginx 中的配置选项称为指令。该选项有名称和参数,必须以分号 (😉 结尾,否则 Nginx 将无法加载配置并产生错误。
例子:
listen 80;
常用指令:
常用指令
root 指令与 alisa 指令
| 指令 | All Where | http | server | location | if in location | 功能简介 |
|---|---|---|---|---|---|---|
| root | ✓ | ✓ | ✓ | ✓ | 指定: <主目录> | |
| alias | ✓ | 设置: <别名路径> |
root指令的语法: root directory-path;
root指令的功能目的:
用于设置:网站主目录
root 指令的工作机制:
将访问的urI路径,追加到指定的文件目录路径之后,然后读取文件数据。
例如:
root /usr/local/nginx/html;
访问:http://www.test.com/dir01/pic/1.jpg
图解:
alias:别名路径/虚拟目录指令
alias 指令的语法: alias file- path | directory-path;
alias 别名路径指令的功能目的: 用于设置:引导匹配的 URL 访问请求去访问指定物理路径的目录或文件,隐藏真实的数据路径。
alias别名路径指令的工作机制:将 location URI 路径的匹配部分,替换为指定的文件目录路径,然后读取文件数据。
例如:
location /dir01/pic {
alias /data/dir01;
}
Location指令
location 是 Nginx 中的块级指令(block directive),location 指令的功能是用来匹配不同的 url 请求,进而对请求做不同的处理和响应。
语法: location[ = |^~ | ~ | ~ | @ ]/uri/ {…}*
允许在 location 配置段中使用 root 指令来指定主目录
允许在 location 配置段中使用 alias 指令来指定别名路径
语法解析:
Location指令的多种 URL 匹配方式
/uri/是一个正则表达式,就是用来匹配客户端 http 访问目录路径。
前缀是:无|=|~| ~*| ^~ | @,用于定义不同的URL匹配方式。
- 无前缀
表示:执行基于普通字符的URI前缀匹配,必须以"/"开头,不支持正则表达式的元字符。
- 前缀"="
表示:执行基于普通字符的URI精准匹配,必须以"/"开头,不支持正则表达式的元字符。
- 前缀"^~"
表示:执行基于普通字符的URI前缀匹配,必须以"/"开头,不支持正则表达式的元字符。
注意: location ^~和无前缀两者之间,不要一模一样,否则会提示配置错误。
- 前缀"~"
表示:执行基于正则表达式的URI正则匹配,支持正则表达式的元字符,区分大小写。
- 前缀"~*”
表示:执行基于正则表达式的URI正则匹配,支持正则表达式的元字符,不区分大小写。
- 前缀"@"
表示:一个独立的location类别
既不是普通 location, 也不是正则 location, 而是一个命名 location。
命名 location 不是用来处理 HTTP request 客户端请求而是用于服务端的一个 forward 内部重定向中。
- 无任何前缀
不加任何规则时,默认是大小写敏感,前缀匹配
例:
location /index/ {
…
}#http://abc.com/index [匹配成功]
#http://abc.com/index/index.page [匹配成功]
#http://abc.com/test/index [匹配失败]
#http://abc.com/Index [匹配失败]
- “=”精确匹配 内容要同表达式完全一致才匹配成功
例:
location = /abc/ {
}# 只匹配http://abc.com/abc
#http://abc.com/abc [匹配成功]
#http://abc.com/abc/index [匹配失败]
3、“^~”普通匹配
表示普通字符串匹配上以后不再进行正则匹配
例:
location ^~ /index/ {
…
}
#以 /index/ 开头的请求,都会匹配上
#http://abc.com/index/index.page [匹配成功]
#http://abc.com/error/error.page [匹配失败]
注意:从上往下依次匹配,匹配上以后不再进行正则匹配
- “~”正则匹配
表示执行正则匹配,区分大小写。
例:
location ~ /Abc/ {
…
}
#http://abc.com/Abc/ [匹配成功]
#http://abc.com/abc/ [匹配失败]
- “~*”正则匹配
表示执行正则匹配,忽略大小写。
例:
location ~* /Abc/ {
…
}
则会忽略 uri 部分的大小写
#http://abc.com/Abc/ [匹配成功]
#http://abc.com/abc/ [匹配成功]
- “@”前缀
nginx内部跳转
例:
location /index/ {
error_page 404 @index_error;
}
location @index_error {
…
}
#以 /index/ 开头的请求,如果链接的状态为 404。则会匹配到 @index_error 这条规则上。
匹配优先级:
①location =一一一>②location^~和无前缀— ->③location 或*


nginx 访问控制
用户验证
- Basic 基本验证
- 创建 http 虚拟用户
yum install httpd-tools -y
passdir="/usr/1ocal/nginx/passwd"
mkdir -p ${passdir} # 创建: 用户basic验证文件的存储目录
htpasswd -b -c ${passdir}/basic_password user01 123 # 创建:第一个<nginx basic基本验证用户>
说明:
-c 表示:创建一个新的用户basic验证文本文件名为: /etc/httpd/passwd/basic_ password
-b 表示:使用<命令行>的<密码>
htpasswd -b ${passdir}/basic_password user02 123 # 创建第二用户,无需-c选项
2.配置nginx basic基本验证
基本指令:
准备数据:
mkdir /vhost{01..02}
echo "This is vhost01"> /vhost01/index.html
echo "This is vhost02” > /vhost02/index.html
创建测试虚拟主机
mkdir -p /usr/local/nginx/conf.d
cat > /usr/local/nginx/conf.d/vhost.conf << E0F
server {
listen 80;
server_name www01.test.com;
auth_basic "Nginx access control for server";
auth_basic_user_file /usr/local/nginx/passwd/basic_password;
location / {
root /vhost01;
index index.html index.htm;
}
}
server {
listen 80;
server_name www02.test.com;
auth_basic "Nginx access control for server!!!";
auth_basic_user_file /usr/local/nginx/passwd/basic_password;
location / {
root /vhost02;
index index.html index.htm;
}
}
EOF
在 Windows 上访问需修改 hosts





访问控制命令
- 基于客户端地址的访问控制
Nginx 中提供了两个用于配置访问权限控制的指令,分别为 allow 和 deny。 从其名称就可以看出, allow 用于设置 允许访问的权限、 deny 用于设置禁止访问的权限 。 在使用时, 权限指令后只需跟上允许或禁止的 IP、IP 段或 all 即 可 。 其中,all 表示所有的 。
例:
server {
listen 80;
server_name localhost;
root html; index index.html index.htm;
deny all;
}
说明:此配置用于禁止所有的客户端访问
权限控制指令的使用虽然简单,但是在设置的过程中,还需要特别注意以下几个点。
- 单个 IP 指定作用范围最小, all 指定作用范围最大。
- 同一块下,若同时存在多个权限指令(deny、allow) ,则先出现的访问权限设置生效, 并且会对后出现的设置进行覆盖,未覆盖的范围依然生效,否则以先出现的设置为准
- 当多个块(如 http、server、 location)中都出现了权限设置指令,则内层块中的权限级别要比外层块中设置的权限级别高 。
例:
server {
listen 80;
server_name localhost;
root html;
index index.html index.htm;
allow 192.168.100.100
deny all;
}
nginx 常用模块介绍
重定向模块
- 重定向概念
重定向指的是当用户访问某个URL时,服务器将该URL重定向到另外一个URL的过程。重定向可以帮助我们更好的管理网站内容,优化SEO效果,提升用户体验等。Nginx中提供了多种重定向方式,包括301重定向、302重定向、rewrite重定向等。
- 重定向基本语法
rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。
语法:
rewrite [flag];
说明:
regex: 正则表达式语句进行规则匹配
replacement: 将正则匹配的内容替换成replacement
flag: last | break | redirect | permanent
last : 本条规则匹配完成后,继续向下匹配新的location URI规则
break: 本条规则匹配完成即终止,不再匹配后面的任何规则
redirect : 回302临时重定向,浏览器地址会显示跳转后的URL地址 (防爬虫)
permanent : 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
rewrite 使用的位置
- server : 在server中针对所有的请求
- location : 在 location 中则针对 单个匹配路径的
- If:使用if指令进行判断
- server 中使用 rewrite
例:
server {
listen 80;
server_name www.yjs.com;# 由于是外部站点带https 的 所以不受flag 影响 break last 都会进行跳转并且变更浏览器url
rewrite ^/(.*)$ https://www.baidu.com break;
location / {
root html;
index index.html;
}
}
也可以部分请求转发:
server {
listen 80;
server_name www.yjs.com;
# 只有当后缀是 数字.html 的时候才会转发到 https://www.baidu.com
rewrite ^/([0-9]+).html$ https://www.baidu.com break;
# 其他的请求会走到这个location中
location / {
root html;
index index.html;
}
}
重定向到站内资源:
rewrite 到内部站点是指 replacement 不带http/https 而是内部的另外一个路径 , 相当于访问隐藏起来的这个内部路径。
例:
server {
listen 80;
server_name www.yjs.com;
rewrite ^/([0-9]+).html$ /my.gif break;
#其他的请求会走到这个location中
location / {
root html;
index index.html;
}
# 上面的rewrite 会被路由到这里
location /my.gif {
root /www/static/; # 文件存放路径:/www/static/my.gif
}
}
- location 中使用 rewrite
location 中也可以使用 rewrite 意思是只有匹配到 这个location 后再经过 rewrite 的正则通过后,才能跳转。
例:
server {
listen80;
server_name www.yjs.com;
#rewrite ^/([0-9]+).html$ /my.gif last;
location /my.gif {
rewrite ([0-9]+).html$ https://www.baidu.com last;
}
location / {
roothtml;
index index.html index.htm;
}
}
- if 中使用 rewrite
例:
server {
listen80;
server_name www.yjs.com;
location / {
root/usr/local/nginx/test;
if ( !-e $request_filename ) {
rewrite ^/.* http://www.baidu.com redirect;
}
}
}
mkdir /usr/local/nginx/test
echo '<h1>this is test</h1>' > /usr/local/nginx/test/index.html
说明:结合 if 指令来对 nginx 请求进行判断,若访问 http://www.yjs.com 的资源存在root目录,则返回,若当前请求的资源文件不存在,则进行重定向跳转。
- 了解常用的全局变量
$args # 该变量中存放了请求 URL 中的请求指令,同 $query_string;
$content_length # 该变量中存放了 HTTP 请求头中的Content-length段;
$content_type # 该变量中存放了HTTP 请求中的Content-type段 ;
$document_root #该变量中存放了针对当前请求的根路径。
$document_uri #该变中存放了请求的当前URI,但是不包括求指令;
$host #变量中存放了请 URL 的主机部分,如果请求中没有 Host 行,则等于设置的服务器名;
$http_host # 该变里与 $host 唯一区别带有端口号;
$http_user_agent #该变量中存放客户端的代理信息;
$http_cookie # 该变量中存放客户端的 cookie 信息。
$limit_rate #对连接速率的限制;
$request_method # 请求的方法,比如"GET"、"POST"等;
$remote_addr # 该变量中存放客户端的地址;
$remote_port # 该变量中存放了客户端与服务器建立连接的端口号;
$remote_user #该变量中存放客户端的用户名,认证用;
$request_filename #该变中存放了当前请求的资源文件的路径名;
$request_body_file 该变量中存放了发给后端服务器的本地文件资源的名称;
$request_method 该变量中存放客户端的请求方式,比如’GET’、'POST’等。
$request_uri 该变量中存放了当前请求的 URI,并且带请求指令,即带查询字符串,不包含主机名,如: “/foo/bar.php?arg=baz”;
$query_string # 与 $args 相同;
$scheme # 该变量中存放了客户端请求使用的协议,比如 http 或是 https;
$server_protocol # 该变量中存放了客户端请求协议的版本,“HTTP/1.0"或"HTTP/1.1”;
$server_addr # 服务器地址,如果没有用 listen 指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);
$server_name # 请求到达的服务器名;
$server_port # 请求到达的服务器端口号;
$uri # 请求的URI,可能和最初的值有不同,比如经过重定向之类的。
压缩模块
Nginx中的Gzip模块,支持在线实时压缩输出数据流。有利于减少访问网站过程中传输的数据量,从而减少带宽资源的占用率。
指令详解:
gzip
语法: gzip on | off 开启或者关闭gzip模块
默认值: gzip off
作用域: http, server, location, if (x) location
gzip_buffers
语法: gzip_buffers number size 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流
默认值: gzip_buffers 4 4k/8k
作用域: http, server, location
gzip_comp_level
语法: gzip_comp_level 1…9 gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。
默认值: gzip_comp_level 1
作用域: http, server, location
gzip_min_length
语法: gzip_min_length length
默认值: gzip_min_length 0
作用域: http, server, location
设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。
默认值是 0,不管页面多大都压缩。
建议设置成大于1k的字节数,小于1k可能会越压越大。即: gzip_min_length 1024
gzip_types
语法: gzip_types mime-type [mime-type …]
默认值: gzip_types text/html
作用域: http, server, location
匹配MIME类型进行压缩,(无论是否指定)”text/html”类型总是会被压缩的。
使用范例
gzip on;
gzip_min_length 1000;
gzip_buffers 4 4k;
gzip_comp_level 4;
gzip_types text/plain application/xml;
vim /usr/local/nginx/conf/nginx.conf
测试:
curl -I -H "Accept-Encoding: gzip" http://server/*.html

更多推荐



所有评论(0)