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安装

  1. 安装epel源
yum -y install epel-release
  1. 安装nginx软件包
yum -y install nginx
  1. 启动服务
systemctl start nginx
  1. 查看版本
nginx -v
  1. 测试访问

方式二:源码安装

  1. 环境准备

卸载其他方式安装的web应用,防止端口冲突

  1. 下载nginx源码包
wget http://nginx.org/download/nginx-1.22.1.tar.gz
  1. 源码编译安装
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
  1. 启动
nginx 

nginx -c /usr/local/nginx/conf/nginx.conf 
  1. 快速关闭
pkill -9 nginx 

或者

nginx -s stop 
  1. 重载
nginx -s reload 
  1. 优雅的关闭
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

场景:添加功能模块

  1. 查看当前安装配置信息
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.confnginx的基本配置文件
mime.typesMIME类型关联的扩展文件
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;
    }
}

配置说明

  1. server 块:定义一个虚拟主机,可以包含多个 server 块来服务不同的网站。

  2. listen 指令:指定 Nginx 监听的端口,这里监听 80 端口(HTTP)。

  3. server_name 指令:指定服务器响应的域名,可以配置多个域名,用空格分隔。

  4. root 指令:设置网站的根目录,所有请求的文件都将从这个目录中查找。

  5. index 指令:指定默认的索引文件,当访问目录时,Nginx 会按顺序查找这些文件。

  6. access_log 和 error_log 指令

    • access_log:记录所有访问日志
    • error_log:记录错误日志
      日志路径可以根据实际需求调整。
  7. location 块

    • location /:匹配所有请求,使用 try_files 指令尝试查找文件
    • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配静态文件,设置缓存时间
    • location ~ /\.:禁止访问以点开头的隐藏文件

使用步骤

  1. 创建网站目录:
sudo mkdir -p /var/www/example.com
  1. 创建测试页面:
sudo echo "<h1>Welcome to Example.com</h1>" > /var/www/example.com/index.html
  1. 将配置文件保存到 /etc/nginx/sites-available/example.com(或 /usr/local/nginx/conf.d/example.com.conf

  2. 创建符号链接(如果使用 sites-available/sites-enabled 结构):

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  1. 测试配置语法:
sudo nginx -t
  1. 重载 Nginx 配置:
sudo nginx -s reload
  1. 访问测试:
    在浏览器中访问 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 不同端口

  1. 创建两个网站的根目录
mkdir /www01
mkdir /www02
echo "this is web1" > /www01/index.html 
echo "this is web2" > /www02/index.html
  1. 修改主配置
include /usr/local/nginx/conf.d/*.conf; # (添加在http块里面)
nginx -t # 修改完后用该命令去检查语法
nginx -s reload # 重载
  1. 配置 server
mkdir /usr/local/nginx/conf.d
vim /usr/local/nginx/conf.d/web1.conf
vim /usr/local/nginx/conf.d/web2.conf
  1. 测试

方式二:基于相同端口号不同 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 Wherehttpserverlocationif 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 内部重定向中。

  1. 无任何前缀

不加任何规则时,默认是大小写敏感,前缀匹配

例:

location /index/ {

}

#http://abc.com/index [匹配成功]

#http://abc.com/index/index.page [匹配成功]

#http://abc.com/test/index [匹配失败]

#http://abc.com/Index [匹配失败]

  1. “=”精确匹配 内容要同表达式完全一致才匹配成功

例:

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 [匹配失败]
注意:从上往下依次匹配,匹配上以后不再进行正则匹配

  1. “~”正则匹配

表示执行正则匹配,区分大小写。

例:
location ~ /Abc/ {

}
#http://abc.com/Abc/ [匹配成功]
#http://abc.com/abc/ [匹配失败]

  1. “~*”正则匹配

表示执行正则匹配,忽略大小写。

例:
location ~* /Abc/ {

}
则会忽略 uri 部分的大小写
#http://abc.com/Abc/ [匹配成功]
#http://abc.com/abc/ [匹配成功]

  1. “@”前缀

nginx内部跳转

例:
location /index/ {
error_page 404 @index_error;
}
location @index_error {

}
#以 /index/ 开头的请求,如果链接的状态为 404。则会匹配到 @index_error 这条规则上。

匹配优先级:
①location =一一一>②location^~和无前缀— ->③location *

nginx 访问控制

用户验证

  • Basic 基本验证
  1. 创建 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指令进行判断
  1. 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
  }
}
  1. 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;
  }
}
  1. 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
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐