我最近在我的 home/myusername/myappname 目录中安装了一个 nodejs 应用程序(keystone)应用程序。
当我访问 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)记录subdomain 应该等于您的服务器的可公开访问的 IP 地址。
并确保您使用的端口未被防火墙阻止。
更新
要了解如何使用 Keystone 设置端口,请参阅:
它可以在配置中更改,也可以使用以下命令运行您的应用程序:
PORT=80 node yourApp.js
代替:
node yourApp.js
但请记住,要使用低于 1024 的端口号,您通常需要以 root 身份运行程序(或添加更复杂的特殊权限)。
这也意味着这将是您可以在此服务器上运行的唯一应用程序,即使您有更多域名。
如果您不想以 root 身份运行或者您想托管更多应用程序,安装 nginx 并代理请求是最简单的。这样的配置称为“反向代理”——最好使用该短语搜索信息和教程。
最简单的 nginx 配置是这样的:
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
您可以将其设置为:
或在不同的文件中,例如:
然后符号链接(symbolic link)为/etc/nginx/sites-enabled/example
修改配置后需要重启nginx。
您可以在此处找到有关配置反向代理的更多选项:
关于node.js - 我应该将我的 Node JS 应用程序放在哪里,以便可以通过主网站访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40746124/