Ubuntu下高效配置Nginx缓存(小白也能轻松上手的完整教程)

简介: 本文详细介绍如何在Ubuntu系统中配置Nginx缓存,提升网站性能。从创建缓存目录、设置缓存参数到启用缓存并验证效果,手把手教你完成每一步,适合零基础用户快速上手Nginx代理缓存,实现高效网站加速。

在搭建网站或Web应用时,性能优化是提升用户体验的关键一环。而Nginx缓存配置正是其中一种简单又高效的加速手段。本文将手把手教你如何在Ubuntu系统中配置Nginx缓存,即使你是零基础的小白,也能轻松完成!

什么是Nginx缓存?

Nginx缓存是指Nginx服务器将后端(如PHP-FPM、Node.js、API服务等)返回的内容临时存储在本地磁盘或内存中。当下一次有相同请求时,Nginx可以直接从缓存中返回数据,而无需再次请求后端,从而显著减少响应时间、降低服务器负载。

准备工作

在开始之前,请确保你已经:

  • 在Ubuntu系统上安装了Nginx(推荐使用20.04或更高版本)
  • 拥有sudo权限
  • 有一个可访问的网站或后端服务(例如一个简单的PHP页面或REST API)

你可以通过以下命令检查Nginx是否已安装:

nginx -v

步骤一:创建缓存目录

首先,我们需要为Nginx缓存创建一个专用目录,并设置正确的权限:

sudo mkdir -p /var/cache/nginxsudo chown -R www-data:www-data /var/cache/nginxsudo chmod -R 755 /var/cache/nginx

这里www-data是Nginx默认运行的用户,确保它有读写权限。

步骤二:配置Nginx缓存参数

打开Nginx主配置文件(通常位于/etc/nginx/nginx.conf),在http块中添加缓存设置:

http {    # 定义缓存区    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g                     inactive=60m use_temp_path=off;    # 其他配置...}

参数说明:

  • levels=1:2:缓存文件的目录层级结构,提高文件查找效率
  • keys_zone=my_cache:10m:定义共享内存区域名称为my_cache,大小10MB(可存储约8万个缓存键)
  • max_size=1g:缓存最大占用1GB磁盘空间
  • inactive=60m:如果某个缓存项60分钟内未被访问,则自动删除
  • use_temp_path=off:避免临时文件写入,提升性能

步骤三:在站点配置中启用缓存

编辑你的网站配置文件(例如/etc/nginx/sites-available/your-site),在location块中添加缓存指令:

server {    listen 80;    server_name example.com;    location / {        proxy_pass http://127.0.0.1:8080;  # 假设后端运行在8080端口        proxy_cache my_cache;             # 使用前面定义的缓存区        proxy_cache_valid 200 302 10m;    # 对200和302状态码缓存10分钟        proxy_cache_valid 404 1m;         # 对404缓存1分钟        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;        proxy_cache_revalidate on;        # 启用缓存再验证        add_header X-Cache-Status $upstream_cache_status;  # 添加缓存命中状态头    }}

其中X-Cache-Status响应头会显示HIT(命中缓存)、MISS(未命中)或BYPASS(跳过缓存),方便调试。

步骤四:测试缓存是否生效

保存配置后,先测试Nginx语法是否正确:

sudo nginx -t

如果没有错误,重新加载Nginx:

sudo systemctl reload nginx

然后使用curl命令查看响应头:

curl -I http://example.com

如果看到X-Cache-Status: HIT,说明缓存已成功命中!

常见问题与优化建议

1. 缓存不更新? 可通过在请求中添加Cache-Control: no-cache或配置proxy_cache_bypass来绕过缓存。

2. 磁盘空间不足? 调整max_size值或定期清理缓存目录。

3. 动态内容不应缓存? 在相关location中设置proxy_cache off;

结语

通过以上步骤,你已经成功在Ubuntu上配置了Nginx代理缓存,大幅提升了网站响应速度。无论是静态资源还是动态API,合理使用缓存都能带来显著的网站加速效果。希望这篇教程能帮助你轻松掌握Nginx缓存配置的核心技巧!

关键词提示:本教程涵盖 Nginx缓存配置Ubuntu Nginx缓存网站加速Nginx代理缓存 等核心知识点。

来源:

https://www.vpshk.cn/

相关文章
|
1天前
|
云安全 人工智能 自然语言处理
|
5天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
314 116
|
8天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
598 53
Meta SAM3开源:让图像分割,听懂你的话
|
20天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
5天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
|
4天前
|
弹性计算 人工智能 Cloud Native
阿里云无门槛和有门槛优惠券解析:学生券,满减券,补贴券等优惠券领取与使用介绍
为了回馈用户与助力更多用户节省上云成本,阿里云会经常推出各种优惠券相关的活动,包括无门槛优惠券和有门槛优惠券。本文将详细介绍阿里云无门槛优惠券的领取与使用方式,同时也会概述几种常见的有门槛优惠券,帮助用户更好地利用这些优惠,降低云服务的成本。
268 132
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
AgentEvolver:让智能体系统学会「自我进化」
AgentEvolver 是一个自进化智能体系统,通过自我任务生成、经验导航与反思归因三大机制,推动AI从“被动执行”迈向“主动学习”。它显著提升强化学习效率,在更少参数下实现更强性能,助力智能体持续自我迭代。开源地址:https://github.com/modelscope/AgentEvolver
414 29
|
15天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
725 223