0

私は、Apache で実行される REST のような API と通信する node.js で実行される管理者アプリを含むプロジェクトを継承しました。[LM]AMP には精通していますが、node.js はまったくの初心者です。

MAMPであるローカルマシンで環境全体をセットアップしようとしています。

アプリホストが実サーバーを指す元の設定 (「build」というディレクトリの下のノード構成ファイル内) を使用すると、node.js サイトは正しく機能します。

var options = underscore.defaults(options, {
    ...
    port: 8000,
    proxy_app: true,
    app_host: 'www.example.com',
    app_port: 80
});

ブラウザで、http://localhost:8000/app/do/something有効な json を返します。

(ここでの私の理解は限られていますが、ノードがこのリクエストをアプリが実行されているApacheサーバーにプロキシしていると思います)。

ただし、ローカルサーバーを指すと...

var options = underscore.defaults(options, {
    ...
    port: 8000,
    proxy_app: true,
    app_host: 'www.mylocalexample.com',
    app_port: 80
});

ここでhttp://localhost:8000/app/do/something、404 Not Found を返します。

したがって、この node.js 構成ファイルの唯一の違いは、有効なホストです (ローカルホストでアプリ API を直接呼び出すと、有効な json が返されます)。何らかの理由で、node.js によってプロキシされたリクエストが MAMP サーバーに送信されていないように見えるか、送信されているのに MAMP が拒否しています。Apache ログにエラーはありません。

何か案は?Firebug もあまり使用方法を教えてくれないので、これをさらにデバッグする方法がわかりません。私の本能は、それが私の MAMP の Apache の設定であるに違いないと言っていますが、それが何であるかはわかりません。

4

1 に答える 1

2

おそらく、アプリはHostHTTP リクエストのヘッダーを調べて、それに基づいてルーティングします (「仮想ホスティング」)。ブラウザで に移動すると、localhost...そのヘッダーが に設定されるlocalhostため、探しているものと一致しませんwww.mylocalexample.comhostsファイルwww.mylocalexample.comに 127.0.0.1を指すエントリを作成してwww.mylocalexample.comから、ブラウザに貼り付けてみてください。

于 2012-06-30T11:12:49.253 に答える