当前位置: 首页 > 面试题库 >

我应该将Node JS应用放在哪里,以便可以通过主网站进行访问?

常鸿朗
2023-03-14
问题内容

我最近在home / myusername / myappname目录中安装了一个nodejs应用程序(梯形)应用程序。

当我访问www.mydomain.com时,什么都没有显示-即使在打开我的nodejs应用程序之后。

这些文件应该在哪里?

我正在运行Ubuntu 16.04。

过去我曾使用过var / www文件夹,但我没有使用apache-我需要手动创建此文件夹吗?

谢谢!


问题答案:

为了使您的应用程序可见,它必须正在运行(显然)并可以在端口80上访问(如果您希望它可以在不向URL添加端口号的情况下可用)。

只要磁盘在运行,它在磁盘上的哪个位置都没有关系。

您不需要Apache或Nginx或任何其他服务器。您的Node应用程序可以在端口80上侦听。但是,它也可以在其他端口上侦听,而您的其他服务器(Apache,nginx等)可以将请求代理到该端口。

但是,如果您的应用正在侦听,例如端口3000,则您应该能够以身份访问它http://www.example.com:3000/

另外,请确保您的域配置正确。它是www子域的IPv4(或IPv6的AAAA)的A记录,应等于服务器的公共可访问IP地址。

并确保您使用的端口未被防火墙阻止。

更新资料

要查看如何使用Keystone设置端口,请参阅:

  • http://keystonejs.com/docs/configuration/#options-server

可以在配置中更改它,也可以使用以下命令运行应用程序:

PORT=80 node yourApp.js

代替:

node yourApp.js

但请记住,要使用低于1024的端口号,通常需要该程序以root用户身份运行(或添加更复杂的特殊特权)。

这也意味着即使您拥有更多域名,它也将是您可以在此服务器上运行的唯一应用程序。

如果您不想以超级用户身份运行或希望托管更多应用程序,则最简单的方法是安装nginx并代理请求。这种html" target="_blank">配置称为“反向代理”-最好使用该短语搜索信息和教程。

最简单的nginx配置如下所示:

server {
    listen 80;
    server_name www.example.com;
    location / {
        proxy_pass http://localhost:3000;
    }
}

您可以在以下位置进行设置:

  • / etc / nginx / sites-available / default

或在其他文件中,例如:

  • / etc / nginx / sites-available / example

然后符号链接为/ etc / nginx / sites-enabled / example

更改配置后,您需要重新启动nginx。

您可以在此处找到有关配置反向代理的更多选项:

  • https://www.nginx.com/resources/admin-guide/reverse-proxy/


 类似资料:
  • 问题内容: 我在python中有自己的软件包,并且经常使用。我应该在哪里放置软件包,以便在不使用PYTHONPATH或sys.path的情况下将其导入,这是什么最优雅或传统的目录? 例如,网站包呢? 。 在python中复制并粘贴软件包是否很常见? 问题答案: 我通常将要准备导入的内容放在用户站点目录中: 要显示适合您平台的目录,可以使用 编辑:创建后将显示在其中:

  • 问题内容: 我使用netfishs 6.7.1和glassfish v2.1编写了一个Web服务项目,将log4j.properties放入项目的根目录并使用: 在构造函数中: 在功能上: 但是,这是错误信息(实际上,我已经尝试将它几乎可以实现的每个目录都放入): 问题答案: 我知道回答这个问题有点晚了,也许您已经找到了解决方案,但是我将发布我找到的解决方案(在我进行大量Google搜索之后),因

  • 问题内容: 关于组织单元测试,我有两个问题。 我是否必须将测试放在与测试类相同的程序包中,或者可以在不同程序包中组织测试? 例如,如果我具有 有效性 和 其他 测试,即使它们属于同一班级,将它们分成不同的包是否正确? 模拟和存根类呢?我应该将它们与仅包含测试的软件包分开,还是放在一起? 问题答案: 我们执行JUnit测试用例的方法是将它们放在相同的包中,但放在不同的根目录中。由于我们使用Maven

  • 问题内容: 基本上,我们在React类组件的生命周期方法中进行API调用,如下所示 但是在React v16.7.0中引入了钩子之后,它几乎都像功能组件一样 我的查询是,我们到底需要在带有钩子的功能组件中进行API调用? 我们有什么类似的方法吗? 问题答案: 是的,有一个类似(但不相同!)的钩子替代品,它就是钩子。 其他答案并不能真正回答您在哪里可以进行API调用的问题。您可以通过使用并将 空数组

  • 问题内容: 首先,我知道如何构建Java应用程序。但是我总是对在哪里上课感到困惑。支持以严格面向领域的方式组织软件包的支持者,其他支持者则按层分开。 我本人一直有问题 命名, 放置 所以, 您将域特定的常量放在哪里(以及此类的最佳名称是什么)? 您在哪里放置基础结构和领域特定的东西的类(例如,我有一个FileStorageStrategy类,该文件将文件存储在数据库中,或者存储在数据库中)? 在哪

  • 我有一个初始化脚本,它从我们的本地工件存储库下载一个. jar,并将其放入集群上每个节点的。我可以使用 然而,如果我的最终用户不必知道jar的位置,我更愿意这样做。 我可以把. jar放在哪里,这样就不必指定它的位置?