gpt4 book ai didi

node.js - Nginx 和 Node.js — 我做错了吗?

转载 作者:太空宇宙 更新时间:2023-11-03 22:52:34 24 4
gpt4 key购买 nike

“If #nginx isn’t sitting in front of your node server, you’re probably doing it wrong.”

— Bryan Hughes via Twitter

有一段时间,我一直在使用 Node.js 制作应用程序,并按照 Hughes 先生的建议,使用 Nginx 作为反向代理来为它们提供服务。但我不确定我的做法是否正确因为我仍然可以通过互联网访问我的 Node.js 应用程序,而无需通过 Nginx 服务器

<小时/>

典型应用程序的核心非常简单。它与 ExpressJS 一起提供,如下所示:

var express = require("express");

var app = express();

// ...

app.listen(3000);

Nginx 配置为反向代理,如下所示:

# ...

location / {
proxy_pass http://127.0.0.1:3000;
}

# ...

这效果非常好!然而,我注意到一种我不确定是否可取的行为,并且可能会破坏使用 Nginx 作为反向代理的大部分目的:

假设 example.org 是指向我的服务器的域名,我可以导航到 http://www.example.org:3000并从任何地方与我的应用程序交互,而无需接触 Nginx 服务器。

典型的最终用户永远不会有任何理由导航到 http://<whatever-the-server-host-name-or-IP-may-be>:<the-port-the-application-is-being-served-on> ,所以这永远不会影响他们。但我担心的是,这可能会产生安全隐患,不那么最终的用户可能会利用这一点。

<小时/>
  1. 即使 Nginx 被用作反向代理,应用程序是否应该可以直接访问?

  2. 如何配置应用程序,使其仅可用于本地计算机/网络/Nginx 服务器?

最佳答案

  1. 最好不要直接联系(恕我直言)。

  2. 您可以指定接受 hostname :

    app.listen(3000, 'localhost');

关于node.js - Nginx 和 Node.js — 我做错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com