Вот что я хочу:
У меня есть URL "10.0.0.1/0000000/abctest/filedirectory/filename",
, и с этим URL я могу прочитатьсоответственно файл
Таким образом, я создаю сервер с http.createServer и привязанный к порту 8001, и устанавливаю nginx, что всякий раз, когда он читает / 0000000 / abctest /, он перенаправляется на порт 8001
После того, как я добавил обратный прокси-сервер nginx, я пытаюсь написать свой код сервера, и вот мой http-код сервера
var port = 8001;
var http = require('http');
var fs = require('fs');
var DefaultFileDir = '/home/ubuntu/Server/Proj/static';
var UrlPrefix = "/0000000/abctest"
var hostname = "127.0.0.1"
//var host = hostname+UrlPrefix
var server= http.createServer(function(req,res){
var url = req.url;
console.log(url);
var file = DefaultFileDir + url;
fs.readFile(file, function(err,data){
if(err){
console.log(err);
res.writeHeader(404,{
'content-type' : 'text/html;charset="utf-8"'
});
res.write('<h1>404</h1>');
res.end();
}else{
if(url.substr(url.length-3, 3) == ".gz"){
res.writeHeader(200,{
'Content-Encoding' : 'gzip',
'content-type' : 'application/octet-stream'
});
}else{
res.writeHeader(200,{
'content-type' : 'text/html;charset="utf-8"'
});
}
res.write(data);
res.end();
}
});
}).listen(port,hostname);
console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown");
И проблема возникает: он не знает, как игнорироватьURL-префикс "/ 0000000 / abctest"
Error: ENOENT: no such file or directory, open '/home/ubuntu/xxxxx/static/0000000/abctest/folder001/index.html'
Однако мой фактический путь к файлу должен быть '/home/ubuntu/xxxxx/static/folder001/index.html'
, это http.createserver не может игнорировать префикс URL?Могу ли я найти некоторые подсказки из этого.