使用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
}
相关推荐
李广山Samuel17 小时前
四、Node-OPCUA 进阶(2)-OPCUA服务器(一)
node.js
妮妮喔妮17 小时前
Webpack和Vite优化的区别
前端·webpack·node.js
谢尔登17 小时前
a 标签的跳转机制
前端·javascript·webpack·node.js
小皮虾19 小时前
搞全栈还在纠结 POST、GET、RESTful?试试这个,像调用本地函数一样写接口
前端·node.js·全栈
程序员爱钓鱼19 小时前
Node.js 编程实战:路由与中间件
前端·后端·node.js
程序员爱钓鱼19 小时前
Node.js 编程实战:Express 基础
前端·后端·node.js
亮子AI20 小时前
【node.js】node.js 两种模块规范 CommonJS 和 ESM 如何选择?
node.js
孟祥_成都20 小时前
nest.js / hono.js 一起学!日志功能/统一返回格式/错误处理
前端·node.js
亮子AI21 小时前
【node.js MySQL】node.js 如何连接 MySQL?
数据库·mysql·node.js
亮子AI1 天前
【node.js】如何使用 node.js 来制作命令行应用?
node.js