Node.js を使い始めたばかりで、Node サーバーにローカルにしかアクセスできないという問題が発生しています。ここのチュートリアルに大まかに従っています: http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/。
コードを Apache サーバー共有でホストしていますが、win7 マシンでもローカルで実行できるようにしています。サーバー共有でホストされたインスタンスは問題なく動作し、lynx を使用してローカルで ping を実行でき、問題なく動作します。しかし、hostname.com:3001 または hostname.com:3001/wines でインスタンスにリモートでアクセスしようとすると、単にタイムアウトになります。サーバーのログには、そのポートでの着信接続が示されていますが、インスタンスに到達していないようです。
インスタンスを Node 開発ディレクトリから www ディレクトリに移動しようとしましたが、これはパーミッションの問題だと思いましたが、役に立ちませんでした。私は Apache の操作にまったく慣れていないので、おそらく何らかの基本的なアクセス許可の設定が欠けているのでしょう。共有は、その価値のために bluehost でホストされています。管理者設定を確認しましたが、そのポートをブロックするファイアウォールは見つかりませんでした。
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
app.get('/', function(req, res){
console.log('ping');
});
app.get('/wines', function(req, res){
console.log('req @ /wines');
res.send([{name:'wine1'},{name:'wine2'},{name:'wine foo'}]);
});
server.listen(3001);
console.log('listening to port ', server.address().port);