使用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
}
相关推荐
En^_^Joy4 小时前
Node.js开发指南:模块、npm与Webpack
webpack·npm·node.js
郭庆汝6 小时前
Ubuntu安装Node.js
linux·ubuntu·node.js
wellc6 小时前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
不会写DN7 小时前
从依赖到自主:手写一个 ICO 文件转换器
前端·javascript·typescript·node.js
zybsjn8 小时前
一天快速实现markdown 编辑器和排版工具:基于Node.js + Express + 原生JS的开发实践
node.js·express·ai编程
书中枫叶8 小时前
个人主页网站SEO | 个人博客基于Nuxt
typescript·node.js·nuxt.js
木易 士心8 小时前
Node.js 后端开发全解析:从核心原理架构到实战应用
后端·架构·node.js
H5css�海秀16 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
求知若饥1 天前
webpage-channel 让不同页面通信像组件通信一样简便
前端·typescript·node.js
小霍同学1 天前
NVM —— Node.js 版本管理工具
node.js