网站首页 > 技术教程 正文
前言
在互联网项目中,某些页面(如首页、热门资讯页等)可能会面临大量的用户访问请求。这些请求如果都通过动态生成的方式来处理,会对服务器造成巨大的压力,并可能导致响应速度变慢。
通过openresty 模板引擎lua-resty-template实现 页面静态化,将这些频繁访问的页面提前生成静态HTML文件,并部署在静态资源服务器上当用户访问这些页面时,可以直接从静态资源服务器获取内容,而无需经过复杂的动态生成过程。这样可以显著提高响应速度,并减轻服务器的压力。
实践
1. 商品详情模版
2. Lua 脚本(处理商品详情的静态化)
-- /usr/local/openresty/script/product_detail.lua
local product_id = ngx.var.product_id
local cache_key = "product_detail_" .. product_id
local product_detail = ngx.shared.product_cache:get(cache_key)
if product_detail then
-- 缓存命中,直接返回静态化内容
ngx.say(product_detail)
return
end
-- 缓存未命中,请求后端服务获取数据
local backend_url = "http://backend-service/dynamic?product_id=" .. product_id
local res = ngx.location.capture(backend_url)
if res.status == 200 then
-- 获取数据成功,生成静态内容并缓存
local static_content = res.body
ngx.shared.product_cache:set(cache_key, static_content, 300) -- 缓存5分钟
ngx.say(static_content)
else
-- 后端服务未找到数据,返回错误
ngx.status = ngx.HTTP_NOT_FOUND
ngx.say("Product not found")
end
3 访问配置
location /product {
-- 将参数id 赋值给变量product_id
set $product_id $arg_id;
content_by_lua_file /usr/local/openresty/script/product_detail.lua;
}
4 可以设置NGINX混存
lua_shared_dict product_cache 10m;
5 访问商品详情
http://server.com/product?id=123
6 结果
最后
希望大家在工作中遇到高并发的场景,尽可能的将页面静态化,增加响应速度。
猜你喜欢
- 2024-10-12 Vue初学习之Nginx 部署(vue cli nginx)
- 2024-10-12 Freemark页面静态化(freemarker静态化页面)
- 2024-10-12 docker随手笔记第十二节 jenkins+docker+nginx+纯静态页面配置
- 2024-09-22 静态图片网站自动转Jpg,Png图像为Webp
- 2024-09-22 静态网站生成工具-hugo(静态网站生成工具)
- 2024-09-22 Nginx部署Vue项目以及解决刷新页面404
- 2024-09-22 centons7下安装nginx,让你拥有自己的网站,包含下载地址
- 2024-09-22 强烈推荐一个非常好的 NGINX WEB UI 可视化用户界面
- 2024-09-22 如何正确地设置 WordPress 伪静态规则
- 2024-09-22 你有空吗?跟我一起搭个服务器好不好?
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)