Ubuntu Server 14.04でNginxを設定し、/ appパスをリッスンしてローカル実行Nodejsインスタンスにトラフィックをリダイレクトする非常に単純なサーバーブロックを設定したいと思います。
私はProxy_passと他のプロキシ設定を使ってこれをしました。
私の問題は、ノードアプリケーションのすべての静的コンテンツ(img、jsなど)がNginxのインストール時に作成されたデフォルトのサイト構成で定義されたルートターゲットである/ var / www / htmlで提供されようとしていることです。有効なサイトフォルダからシンボリックリンクを削除し、サイト利用可能フォルダからデフォルトファイルも削除しましたが、結果はありません!それにもかかわらず、ルートパスはまだ他の場所ではなく、このサイト構成で定義されているデフォルトのNginxスタートページを提供します!
Nginxのデフォルトは他の場所で定義されていますか?ようこそページのように単純なサイト構成を作成すると、静的server {}
コンテンツは削除された基本ファイルで定義されているとおりに提供されます。この問題をどのように解決できますか?
修正する:私は提供された基本ファイルがsite-available/defaultで定義されていると思った/var/www/htmlにないことを発見しました。代わりに、次のように構成されています。/usr/share/nginx/html.....しかし、このパスは設定のどこにも言及されていませんか?そこからどのようにインポートしますか?
答え1
この/usr/share/nginx/html
ディレクトリは、組み込みのデフォルト文書ルートにコンパイルされます。
構成ファイルを使用して組み込みのデフォルト値を上書きすることはできますが、そこにある値はパッケージのデフォルト値(たとえば、nginxをインストールしたディストリビューションの値)にすることができますが、必ずしもデフォルトのコンパイル値と同じではありません。 。
を実行してコンパイル時間の値を確認できますnginx -V
。
nginxはデフォルトで設定なしで動作するように構築されていますが、apacheは何をすべきかを示す設定ファイルが必要です。なぜなら、apacheはデフォルトでデフォルトで何もコンパイルしないからです(設定ファイルがある場所を除く)。おそらくここで混乱が発生しているようです。