我想通过NGINX代理管道所有流量,并确保无法直接从外部访问节点服务器。
Node的http模块只能侦听localhost上的给定端口,是否有一个选项可以让sails.js做同样的事情?
答案 0 :(得分:5)
只需添加以下行:
<强>配置/ local.js 强>
explicitHost: process.env.HOST || 'localhost'
或者您可以添加政策:
<强>配置/ policies.js 强>
module.exports.policies = {
'*': 'isLocal'
}
<强> API /策略/ isLocal.coffee 强>
# sessionAuth
#
# @module :: Policy
# @description :: Accept only local connections
# @docs :: http://sailsjs.org/#!documentation/policies
module.exports = (req, res, cb) ->
if req.ip is '127.0.0.1' then cb()
else res.forbidden new Error 'Accept only local connections'
答案 1 :(得分:-2)
当您将nginx用作代理服务器时,不确定为什么要使用Sails来限制对localhost的访问(nginx旨在满足您的需求)。您可以使用nginx配置文件来限制对Sails应用程序的本地访问。
server {
listen 80;
server_name www.yourSailsApp.com;
...
location / {
allow 127.0.0.1;
deny all;
}
}
您可能需要将您的网站添加到您的HOSTS文件/etc/hosts
:
127.0.0.1 yourSailsApp.com
或者,您可以在allow
字段中找到服务器的公共IP并在nginx配置中使用它。