nginx 和 nodejs 提供来自动态文件夹的图像

nginx and nodejs serve images from dynamic folder

嗨,我有这个 nginx 设置:

server {
listen 80;
server_name xxxxxx.xx www.xxxxxxx.xx;
root /home/xxxx/public_html;

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    #proxy_redirect off; 
    #proxy_cache_bypass $http_upgrade;
  }
}

我的应用程序在 uploads/user 内创建文件夹,后跟用户 ID,然后将图像存储到其中。每个用户在 uploads/user/xxxx.

中都有自己的文件夹

例如

/uploads/user/5878db663e67e3535a47c638/1085.github-logo.png

该应用程序在浏览器中运行良好,但当用户上传图片时无法显示,因此出现 404。

我能做什么?

您可以使用 try_files 提供静态内容(如果存在),否则遵从 NodeJS:

root /home/xxxx/public_html;

location / {
    try_files $uri $uri/ @proxy;
}
location @proxy {
    proxy_pass http://127.0.0.1:3000;
    ...
}

详情见this document