网站首页 > 技术教程 正文
在本章中,我们将深入探讨 NGINX 提供的高级 HTTP 功能。这些功能超越了基础功能,并提供了增强的功能,可提高 Web 服务的性能、安全性和效率。
## 4.1 HTTP 压缩
HTTP 压缩是一种减少服务器和客户端之间传输数据大小的技术。这可以显着缩短网站加载时间并减少带宽使用。
### 演示 1:启用 HTTP 压缩
在此演示中,我们将配置 NGINX 为 HTTP 响应启用 gzip 压缩。
**第1步:** 打开NGINX配置文件进行编辑。
sudo nano /etc/nginx/nginx.conf
**步骤 2:** 在 `http` 块内,添加以下行以启用 gzip 压缩。
http {
# ... other configuration ...
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 1000;
gzip_buffers 16 8k;
}
- `gzip on`:启用 gzip 压缩。
- `gzip_types`:指定应压缩哪些 MIME 类型。
- `gzip_proxied`:确定 NGINX 在充当反向代理时如何处理 gzipping。
- `gzip_comp_level`:设置压缩级别 (1-9),值越高提供更好的压缩,但消耗更多的 CPU。
- `gzip_min_length`:设置将被 gzip 压缩的响应的最小长度。
- `gzip_buffers`:指定用于压缩的缓冲区的数量和大小。
**步骤 3:** 保存配置并测试语法错误。
sudo nginx -t
**步骤 4:** 如果测试成功,请重新加载 NGINX 以应用更改。
sudo systemctl reload nginx
现在,NGINX 将在将符合条件的内容发送给客户端之前对其进行压缩,从而缩短页面加载时间。
## 4.2 使用 NGINX 进行缓存
缓存涉及存储频繁请求的资源,以减少 Web 服务器上的负载并缩短响应时间。 NGINX提供了强大的缓存功能。
### 演示 2:配置缓存
在此演示中,我们将配置 NGINX 来缓存静态内容。
**第 1 步:** 打开要启用缓存的网站的服务器块。
sudo nano /etc/nginx/conf.d/mywebsite.conf
**步骤 2:** 在服务器块内,添加一个位置块来定义缓存规则。
server {
# ... other server block configuration ...
location /static {
alias /var/www/mywebsite;
expires 30d; # Cache static content for 30 days
}
}
在此示例中,我们设置“expires”指令将静态内容缓存 30 天。您可以根据需要调整该值。
**步骤 3:** 保存配置并测试语法错误。
sudo nginx -t
**步骤 4:** 如果测试成功,请重新加载 NGINX 以应用更改。
sudo systemctl reload nginx
NGINX 现在将缓存静态内容,减少 Web 服务器的负载并缩短响应时间。
## 4.3 认证与授权
NGINX 可用于对您的 Web 应用程序强制执行身份验证和授权。这可以帮助保护您的网站或应用程序的敏感区域。
### 演示 3:添加基本身份验证
在此演示中,我们将为您网站上的特定位置设置基本身份验证。
**第 1 步:** 使用 `htpasswd` 命令创建包含用户名和密码的身份验证文件。 将“your_username”和“your_password”替换为您选择的凭据。
sudo htpasswd -c /etc/nginx/.htpasswd your_username
**步骤 2:** 打开您要保护的网站或位置的服务器块配置文件。
sudo nano /etc/nginx/conf.d/mywebsite.conf
**步骤 3:** 在位置块内,添加以下行以启用基本身份验证。
server {
# ... other server block configuration ...
location /secure {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
**步骤 4:** 保存配置并测试语法错误。
sudo nginx -t
**步骤 5:** 如果测试成功,请重新加载 NGINX 以应用更改。
sudo systemctl reload nginx
现在,当用户访问您网站上的“/secure”位置时,系统将提示他们输入您指定的用户名和密码。
## 4.4 速率限制和访问控制
速率限制通过限制客户端在特定时间范围内可以发出的请求数量来帮助防止滥用 Web 服务。 NGINX 允许您设置速率限制和访问控制规则。
### 演示 4:实施速率限制
在此演示中,我们将为特定位置配置速率限制。
**步骤 1:** 打开您要保护的网站或位置的服务器块配置文件。
sudo nano /etc/nginx/conf.d/mywebsite.conf
**第 2 步:** 在位置块内,添加以下内容
线路实施速率限制。
server {
# ... other server block configuration ...
location /api {
limit_req_zone $binary_remote_addr zone=api:10m rate=5r/s;
limit_req zone=api burst=10 nodelay;
}
}
- `limit_req_zone`:定义一个共享内存区域来存储速率限制信息。
- `rate=5r/s`:将速率限制为每秒 5 个请求。
- `burst=10`:允许突发最多 10 个请求。
- `nodelay`:确保超出的请求不会被延迟。
**步骤 3:** 保存配置并测试语法错误。
sudo nginx -t
**步骤 4:** 如果测试成功,请重新加载 NGINX 以应用更改。
sudo systemctl reload nginx
现在,位置“/api”将被速率限制为每秒 5 个请求。
本章探讨了 NGINX 中的高级 HTTP 功能,包括 HTTP 压缩、缓存、身份验证和授权以及速率限制。这些功能增强了 Web 服务的性能、安全性和效率,使 NGINX 成为 Web 服务器管理的强大工具。
猜你喜欢
- 2024-10-09 面试题 HTTP及web服务相关(nginx apache)
- 2024-10-09 Nginx实现认证登录(nginx登录验证)
- 2024-10-09 Nginx 是如何处理 HTTP 头部的?(女飞行员余旭遗体头部图)
- 2024-09-08 nginx 安装教程(详解)(nginx安装与配置详解)
- 2024-09-08 学习Nginx,跟着阿里大牛走,一套精心整理的Nginx(PDF文档)
- 2024-09-08 nginx实现内外网访问限制(nginx 内网)
- 2024-09-08 nginx的多域http、https同时访问配置及http重定向https
- 2024-09-08 nginx httpstatus 408 研究(404 not found nginx是什么意思)
- 2024-09-08 Nginx完全指南--内容解析(三)(nginx 详解)
- 2024-09-08 Nginx http 强转https(http://cas.tjgl.teacheredu.cn)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)