#每天都是崭新的一天#再累也要照顾好自己

禁止端口访问

介绍

代码上线后一般会用 nginx 做一层反向代理,这时用户的请求会落到 nginx 上,然后通过 nginx 转发到 Node.js 服务上,这样可以很方便的做负载均衡。

通过 nginx 代理后就不希望用户直接访问到 Node.js 服务了,一种方案时让 Node.js 启动的端口只允许内部访问,外部无法直接访问到。另一种方案是在应用层判断。

ThinkJS 提供禁止端口访问的 Middleware,这样如果不方便直接在机器上配置禁止端口访问的话,就可以使用该 Middleware 来禁止。

middleware 配置

修改 hook 配置文件 src/common/config/hook.js,添加如下的配置:

export default {
  request_begin: ['prepend', 'force_proxy']
}

然后在配置文件 src/common/config/env/producition.js 里配置:

export default {
  proxy_on: true
}

这样只在线上环境开启了禁止端口访问的功能,开发环境不受影响。

只监听内网 host

Node.js 启动服务时默认监听的端口是 0.0.0.0,这样服务既可以内网访问,也可以外网访问。可以将 host 设置为 127.0.0.1 限制为内网访问。

可以通过修改配置为 src/common/config/config.js 来完成,如:

export default {
  host: '127.0.0.1'
}

文章来源:http://www.thinkjs.org


感谢你的阅读,本文由 sau交流学习社区 版权所有。
如若转载,请注明出处:sau交流学习社区-power by saucxs(程新松)(/page/259.html)
交流咨询
    官方QQ群
    群号663940201,欢迎加入!
    sau交流学习社区交流群

微信群
欢迎加入微信群
微信公众号
欢迎关注微信公众号

图文推荐

微信群
saucxs聊天机器人
saucxs
hi ,欢迎来到sau交流学习社区,欢迎与我聊天,问我问题哦!
您正在使用的浏览器是,不在支持范围内!
为了您的正常使用与展示,推荐使用Chrome浏览器68以上版本
支持浏览器:
火狐浏览器最新版
Safari浏览器最新版
Edge浏览器最新版
IE浏览器10,11