0

node.jsにルーティングするnginxの前でEC2でワニスを実行しています。

/私が望むのは、nginx を介して特定のルート ( forなど) から特定の静的 HTML ページを提供することですがindex.html、他のすべてのルートは node.js によって処理されます。

例として、/は静的 HTML ページの形式で nginx によって送信されますが、一致しないもの/dynamic_stuff( や など/dynamic_stuff2) は node.js によって処理されます。

オンラインの他のスレッドでは、他の人が node.js を完全に別のディレクトリに配置/node/dynamic_stuffしていましたが、ルーティング用に別のディレクトリを作成したくありませんでした。

現在/、他のすべてのように node.js でサービスを提供していますが、node.js サーバーをテストしているだけでそれを停止する場合は/、nginx バージョンのindex.html. この場合、node.js サーバーが停止すると、502 Bad Gateway が発生します。

nginx と node.js を介してファイルを提供することによるパフォーマンスについてはあまり心配していません。何らかの理由で node.js がダウンした場合、nginx で基本的なページを処理する必要があると考えています。

関連するスクリプト:

location = / {
    index index.html
    root /path/to/public
    try_files $uri $uri/ index.html;
}

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass node_js;
}

上記のコードを使用すると、すべてのリクエストが node.js に送信され/ます。

4

1 に答える 1

0

index.htmlだけの場合の最も簡単な方法は、indexをに設定することだと思います

index index.html
root /path/to/public

パブリック ディレクトリ内のすべてのファイルは、nginx から提供されるようになりました。

この index.html をノード アプリのパブリック ディレクトリに配置します。残りは nginx からノード インスタンスにプロキシされます。

もちろん、必要に応じて他の静的 html をサブディレクトリに置くこともできます。

public/about(index.html
public/faq/index.html
...
于 2013-02-28T21:26:35.797 に答える