【问题标题】:How to run a simple 'Hello World' app on shared hosting with Node.js?如何使用 Node.js 在共享主机上运行简单的“Hello World”应用程序?
【发布时间】:2018-09-05 10:07:14
【问题描述】:

我已经在我的桌面上本地运行了一些使用 node.js 的基本教程,并且一切正常。

我一直在尝试运行简单的“Hello World!”之一我的“实时”托管环境中的应用程序。这不是一个活跃的网站,只是我用来尝试的一些基本网络托管。我最近注册的托管服务提供商每月提供少量额外的 node.js 插件。

我已经修改了我的文件(名为 app.js)中的代码,以便它引用我的托管服务提供商提供给我的主机和端口,而不是像以前那样使用 localhost。代码如下:

const http = require('http');

const hostname = '195.62.28.216';
const port = xxxx;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

用 xxxx 代替分配给我的端口。

如果我通过运行 node app.js 使用我的 SSH 客户端 (PuTTY) 启动它,我会收到以下消息:

Server running at http://195.62.28.216:xxxx/

但是,如果我访问该 URL,我只会收到超时错误:

无法访问此网站 195.62.28.216 响应时间过长。

当我使用 PuTTY 连接到主机时,使用托管服务提供商提供给我的用户名和密码,它似乎默认为名为 /home/my_username 的文件夹。这是我的“Hello World”应用文件的位置。

我已经联系了我的托管服务提供商的支持区域,但我想我也会在这里发帖等待回复,以防有人能指出我可能做错的正确方向。

非常感谢,非常感谢任何帮助。

【问题讨论】:

  • 你有没有在访问你的服务器后运行命令 node app.js ?
  • 认为您连接到正确的端口,而不仅仅是 IP?
  • 您是连接到195.62.28.216:xxxx 还是只连接到195.62.28.216
  • 以上都是肯定的,但我想我解决了这个问题,见下文。非常感谢。

标签: node.js


【解决方案1】:

感谢以上所有人的快速回复。我认为问题在于我试图直接从我的浏览器访问 195.62.28.216:xxxx URL,但我认为它已设置为只能从我的实际网络托管环境中访问。

换句话说,我将以下内容添加到我的云托管帐户上的 .htaccess 文件中:

RewriteEngine On
RewriteRule ^ http://195.62.28.216:xxxx/ [P,L]

当我现在访问我的网站时,我会看到“Hello World!”正如预期的那样。现在我只需要弄清楚如何制作它,这样只有当我访问我网站上的特定文件夹而不是整个事情时才会发生这种情况...... :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多