我正在使用由Openshift托管的NodeJS应用程序。现在一切正常但我希望通过从Web服务器提供静态文件(html,css,js)而不是从Express执行来加快速度。我已经在某处看到Node盒没有运行Apache服务器,因此没有.htaccess文件可以配置Apache来发送我的文件。
如何从Openshift上的NodeJS应用程序中提供来自Apache或Nginx等Web服务器的静态文件?
答案 0 :(得分:1)
这可能适合您的需求。裸露,因为它获得静态服务器...
var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')
// Serve up public/ftp folder
var serve = serveStatic('public/', {'index': ['index.html']})
// Create server
var server = http.createServer(function(req, res){
var done = finalhandler(req, res)
serve(req, res, done)
})
// Listen
server.listen(process.env.PORT || 3000);
答案 1 :(得分:0)
自原始问题发布以来已经有一段时间了,但也许这将有助于其他人面临同样的问题。请在此处查看此自定义OpenShift磁带:https://github.com/gsterjov/openshift-nginx-cartridge
我没有亲自测试过,但我已经制作了其他自定义墨盒,我知道如果你对外壳足够熟练,OpenShift平台非常灵活,所以如果上面的墨盒不适合你的需要你可以轻松地将它分叉并根据您的需要进行调整。
就我个人而言,我几乎总是从Node.js提供静态资产。 built-in static server in Express.js最近变得好多了,如果你需要更多控制缓存/ etags,那么st也会有所好转。
此外,我最近遇到了这种有趣的类似CDN的替代静态资产的“经典”托管:http://surge.sh。我可以想象,实施gulp / grunt场景以便在部署激增时发布静态资产是相当简单的......