Node.js nginx响应POST请求提供静态文件
我将nginx设置为node.js的反向代理。对于文件上传,我要求NGINX将请求转发到node.js,但对于文件下载,我希望由NGINX完成。我可以使用get请求让它工作 但我确实希望通过POST请求对会话进行身份验证,然后提供文件。请就如何实现这一目标提出建议 以下是我在/etc/NGINX/sites下的NGINX“默认”配置文件:Node.js nginx响应POST请求提供静态文件,node.js,bash,nginx,Node.js,Bash,Nginx,我将nginx设置为node.js的反向代理。对于文件上传,我要求NGINX将请求转发到node.js,但对于文件下载,我希望由NGINX完成。我可以使用get请求让它工作 但我确实希望通过POST请求对会话进行身份验证,然后提供文件。请就如何实现这一目标提出建议 以下是我在/etc/NGINX/sites下的NGINX“默认”配置文件: server { listen 3000; server_name X.Y.Z; root /mnt/Files/; erro
server {
listen 3000;
server_name X.Y.Z;
root /mnt/Files/;
error_log /home/nginx/logs/error.log debug;
access_log /home/nginx/logs/access.log;
client_max_body_size 20M;
location /download/* {
root /mnt/Files/;
access_log on;
autoindex on;
set $var1 = $1
try_files $uri $uri/ =404;
}
location /upload {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
我将提交的示例表单包含以下字段:
用户名:user1
密码:pass1
子文件夹:
文件:您不能在nginx配置文件中放入这么多逻辑 首先,需要检索post参数 然后需要针对一些数据库(如mysql或mongoDB)验证这一点 然后返回401(未授权) 我不认为nginx可以做到这一切 我建议将所有这些作为ExpressStatic特性的一部分
var express = require('express');
var app = express();
var auth = express.basicAuth(function(user,password) {
return 'john' === user && '1234' === password;
});
app.use('/media', auth);//should be before static
app.use('/media', express.static(__dirname + '/media'));
谢谢这些例子都会派上用场的。为什么我在这个问题上得了a-1?谢谢!我也这么认为,但希望社区参与进来。