4

EC2 インスタンスで Node.js サーバーのプロキシを設定しようとしているので、次のような方法でアクセスできますhttp://*.amazonaws.com/node。 * は残りの URI です。/etc/httpd/conf/httpd.conf次のように編集してプロキシを設定しました。

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>
ProxyPass /node http://*.amazonaws.com:3000
ProxyPassReverse /node http://*.amazonaws.com:3000

私の Node.js server.jsファイルは次のようになります。

var port = process.env.PORT || 3000;
var host = '*.amazonaws.com' || process.env.HOST || '127.0.0.1';

そのため、すべてを起動して実行すると、/nodeにアクセスできますが、Node.js の/publicディレクトリはドキュメントのルート ディレクトリとして使用されていないため、index.htmlに含まれていると想定されているため、すべてのファイルに対して 404 が返されます。 /publicディレクトリ。たとえば、Firebug は、http://*.amazonaws.com/javascripts/rails.jsおよび他の 3 つのファイルに対して 404 を報告します。これは、これが Node.js の/publicディレクトリにヒットしていないことを意味します。

index.html ファイルのパスを編集すると、すべてが機能しますが、それを行う必要はありません... また、httpd.conf で ProxyPass 構成を取り出し、ノードにアクセスするだけの場合server from 、それは機能します...しかし、理想的には、それを行う必要はなく、 /nodehttp://*.amazonaws.com:3000を実行できるようにしたいと考えています。

私が知りたいのは、プロキシが正しく構成されているか、そうでない場合は、 /nodeにアクセスすると、要求されたすべてのファイルがリダイレクトされるように修正するにはどうすればよいかということです。

4

1 に答える 1

1

エクスプレス静的ミドルウェアを使用している場合、エクスプレスの構成を誤っている可能性があるというコメント者に同意します。

ただし、apache に静的リクエストを処理させたい場合は、ProxyPass 例外を作成するための apache 構成構文を次に示します。

ProxyPass /javascript/ !

また、セットがあることを確認する必要がありますが、DocumentRootこれにより、javascript ディレクトリへのリクエストが通常の apache に渡され、設定した方法でそのディレクトリへのリクエストが処理されます。

于 2013-11-20T05:44:28.673 に答える