246

サブドメインのルート URL とサブドメインのディレクトリをサーバー上の 2 つの異なるフォルダーに提供しようとしています。これが私が持っていて機能していない簡単なセットアップです...

server {

    index index.html index.htm;
    server_name test.example.com;

    location / {
            root /web/test.example.com/www;
    }

    location /static {
            root /web/test.example.com/static;
    }
}

この例でtest.example.com/は、インデックス ファイルを取り込みます。/web/test.example.com/www

に行くとtest.example.com/static、インデックスファイルが取り込まれます/web/test.example.com/static

4

5 に答える 5

280

alias次のディレクティブを使用する必要がありますlocation /static

server {

  index index.html;
  server_name test.example.com;

  root /web/test.example.com/www;

  location /static/ {
    alias /web/test.example.com/static/;
  }

}

nginx wikiは、ルートとエイリアスの違いを私ができるよりもよく説明しています。

一見ルートディレクティブに似ているように見えるかもしれませんが、ドキュメントルートは変更されず、リクエストに使用されたファイルシステムパスのみが変更されることに注意してください。リクエストの場所の部分は、リクエストNginxの問題で削除されます。

rootalias末尾のスラッシュの処理方法が異なることに注意してください。

于 2012-07-20T06:22:52.433 に答える
127

位置指令システムは

/static開始し、データが存在するすべてのリクエストを転送したいように/var/www/static

したがって、簡単な方法は、最後のフォルダーをフルパスから分離することです。つまり、

フルパス :/var/www/static

最後のパス:/static および最初のパス:/var/www

location <lastPath> {
    root <FirstPath>;
}

それでは、あなたが何を間違えたのか、そしてあなたの解決策は何かを見てみましょう

あなたの間違い :

location /static {
    root /web/test.example.com/static;
}

あなたのソリューション:

location /static {
    root /web/test.example.com;
}
于 2015-05-04T19:36:30.003 に答える
54
server {

    index index.html index.htm;
    server_name test.example.com;

    location / {
        root /web/test.example.com/www;
    }

    location /static {
        root /web/test.example.com;
    }
}

https://nginx.org/en/docs/http/ngx_http_core_module.html#root

于 2012-07-20T16:17:37.343 に答える