2016-12-02 4 views
0

ローカルから実稼働環境にノードアプリケーションをデプロイしようとしています。プロダクションサーバでの高速ルーティング

私のローカル環境では、私のコードは以下のコードが好きで、すべて正常に動作します。 localhost:3000に移動し、[ログイン]をクリックすると、loginルートに移動します。

LOCAL app.jsが

var express = require('express'); 
var bodyParser = require("body-parser"); 

var app = express(); 

app.use(express.static(__dirname + '/public')) 
    .use(bodyParser()); 

app.get('/login', function(req, res) { 
    res.send('log me in!'); 
}); 

console.log('Listening on 3000'); 
app.listen(3000); 

ファイル私は、サーバーにアップロードしたとforeverを使用してapp.jsファイルを実行しています - すなわちforever start app.jspublicフォルダにあるindex.htmlというファイルのホームページに移動できます。 URLは次のようになります - http://162.xx.xxx.xxx/project/public/

app.jsファイルには、上記以外の行と同じになります。

app.get('http://162.xx.xxx.xxx/project/public/login', function(req, res) { 
    res.send('log me in!'); 
}); 

私がしようとすると、ログインURLに移動するとき、それは言う:

リクエストされたURL/project/loginがこのサーバー上に見つかりませんでした。 Apacheサーバー(http://162。*。***ポート80

私が間違っていることをアドバイスできますか?

+0

あなたが本当にルートでサーバーのIPアドレスを入れたいですか? – Raptor

+0

私はそれを使わずに試してみましたが、私のローカルコードと同じコードを使用しましたが、うまくいきませんでした。私が '/ login'を使っただけでうまくいくと思いますか? –

+0

これは/ loginでなければなりません。あなたのApacheは 'localhost:3000' – Raptor

答えて

0

あなたのApacheはただのノードに渡すプロキシする必要があります:ポート3000にリスニングして

ProxyPass/http://localhost:3000/ 

があなたのノードを残すあなたのルートを変更する必要はありません。ここで良いの読み取りhttp://xxx.xxx.xxx.xxx/login

はその後のように、あなたのブラウザからアプリケーションにアクセスApache and Node.js on the Same Server

+0

私が試してみると私のブラウザから '要求されたURL/login /はこのサーバ上に見つかりませんでした。 'というメッセージが表示されます。 –

+0

' http:// 162.xx.xxx.xxx/login'を使用してください。あなたのapacheバーチャルホストがポート80でリッスンしていると思いますか?必要に応じて、あなたのApache仮想ホストコードを共有してください。 – Raptor

+0

これは 'Not Foundのメッセージです 要求されたURL/login /はこのサーバー上に見つかりませんでした。 Apacheサーバー(xxx.xx.xxx.xxx)ポート80' –

関連する問題