如何使node.js与共享托管服务器一起使用?

时间:2019-01-13 12:36:39

标签: node.js .htaccess express

我正在尝试在Bigrock上的共享托管帐户中运行基于node.js和express.js的Restful Api。

我能够按照this文章作为指导,并在共享主机服务器上安装节点。我也可以运行我的应用程序,但是由于某些原因,当我尝试访问该页面时,该链接不起作用。

该应用程序可以在我的本地系统上完美运行。我怀疑问题出在.htaccess文件中

.htaccess

RewriteRule ^$ http://127.0.0.1:3000P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^$ /Website/ [L]

app.js

const express = require('express')
const db  = require('../models/index');
const bodyParser = require('body-parser');
const path = require('path');
const Jobs = require('../models').Jobs;

const app = express();

app.use(bodyParser.json());

app.use('/api/jobs', require('../routes/jobs'));

app.get('/', (req, res) => {
    res.send("<h1>Hello World !</h1>")
})

app.listen(3000);

当我访问https://www.example.com:3000

时,我应该能够查看Hello World

这是我的directory structure

在访问https://www.example.com:3000/api/jobs时,应用程序应该能够访问api,并且当任何人访问https://www.example.com时,该人都应被重定向到网站。

我对.htaccess没有任何了解,对于任何建议,我将非常感谢。

谢谢。

1 个答案:

答案 0 :(得分:0)

您不需要.htaccess文件来运行Node应用程序(除非您将Apache2用作Node进程的反向代理,这不太可能)。

您可以通过从主机curl localhost:3000内部发出GET请求来检查您的应用程序是否真正在运行。它应该给您一些回报。如果您没有curl,则可以尝试wget

如果这可行,则应检查主机设置以确保端口已打开。确认之后,您应该检查域名“ www.example.com”是否解析为实例的IP名称(一堆数字,192.164.X.X形式)。您可以尝试直接访问实例的IP:192.164.X.X:3000