使用Node.js和Express搭建图片缓存服务或应用服务器

使用Node.js和Express生成缩略图:
复制代码
const express = require('express');
const sharp = require('sharp');
const app = express();
const port = 3000;
 
app.get('/thumbnail/:filename', async (req, res) => {
    const filename = req.params.filename;
    const imagePath = `/path/to/images/${filename}`;
    sharp(imagePath)
        .resize(100, 100) // 设置缩略图尺寸
        .toBuffer()
        .then(data => {
            res.type('jpeg'); // 根据需要设置正确的MIME类型
            res.send(data);
        })
        .catch(err => {
            console.error(err);
            res.status(500).send('Error generating thumbnail');
        });
});
 
app.listen(port, () => {
    console.log(`Thumbnail server running at http://localhost:${port}`);
});

配置nginx反向代理

复制代码
location /thumbnail/ {
    proxy_pass http://localhost:3000/; # Node.js应用地址
    proxy_set_header Host $host; # 传递主机头信息到后端服务器
    proxy_set_header X-Real-IP $remote_addr; # 传递客户端IP地址到后端服务器
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递X
}
相关推荐
belldeep11 小时前
nodejs:Vite + Svelte + ts 入门示例
typescript·node.js·ts·vite·svelte
__zRainy__13 小时前
npx skills核心功能速查及技能开发指南
ai·node.js
Z_Wonderful15 小时前
npm -v无效PowerShell 的执行策略,解决方案
前端·npm·node.js
枫桥骤雨16 小时前
Ubuntu NVM部署Node.js教程
linux·ubuntu·node.js·nvm
qqacj16 小时前
node.js下载、安装、设置国内镜像源(永久)(Windows11)
node.js
csdn_aspnet16 小时前
使用 nvm-desktop 轻松安装和管理多个 Node.js 版本
node.js
光影少年16 小时前
Node.js的事件循环和浏览器有什么区别?
node.js·编辑器·vim
ZC19959216 小时前
Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
前端·npm·node.js
Ama_tor16 小时前
PicGo无法安装插件| 提示“请安装 Node.js 并重启 PicGo 再继续操作”(问题已解决)
node.js