我将Node.js应用程序部署到linux服务器,效果很好。
但是,我可以直接访问浏览器中的特定文件来输入网址。
http://my-node-app.com/package.json
我可以看到所有的东西,即使
http://my-node-app.com/config/config.json
它显示我的配置包括密码。除了服务器本身之外,它不会显示,我如何限制访问?
我在var / www /中添加了.htaccess文件,并添加了此代码,
<Directory "my-node-app">
Deny from all
</Directory>
但它不起作用,我尝试/ etc / apache2 / site-enabled / 000-default,添加如上代码,但它不起作用。我用谷歌搜索并添加代码,但它不起作用,我不知道它与apache2有关。 Node.js需要Apache2吗?无论如何,我怎样才能阻止这个直接访问网址包括wget?
答案 0 :(得分:0)
自我答案
我这样编码:
app.use(express.static(path.join(__dirname)));
所以dirname中的所有文件都会显示出来,有人和我一样有问题,它与你的静态文件路由有关。选中它,然后指定静态文件文件夹,而不仅仅是__dirname
,而是__dirname/somefolder
。
答案 1 :(得分:0)
您可以通过以下方式对其进行限制
app.all(['*index.js*', '*_helpers/**', '*models/**', '*package.json*', '*bower.json*', '*README.md*', '*Public/**'], function (req, res, next){
res.send({ auth: false });
});