サブフォルダーの Nginx ロケーション構成
Nginx 構成では、組織とルーティングを改善するために、特定のフォルダー パスを異なる URI にマップできます。一般的なシナリオは、ディレクトリ内のサブフォルダーへのアクセスを構成することです。
2 つのサブフォルダー /static と /manage が存在する /var/www/myside/ のようなパス構造を考えてみましょう。目標は、PHP ファイルの適切なルーティングを確保しながら、URI / (/static の場合) および /manage (/manage の場合) を介してこれらのサブフォルダーにアクセスすることです。
初期のサンプル Nginx 構成は次のようになります。
server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log; root /var/www/mysite; location /manage { root $uri/manage/public; try_files $uri /index.php$is_args$args; } location / { root $uri/static/; index index.html; } location ~ \.php { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; } }
ただし、この構成は /manage にアクセスする場合に正しく機能しない可能性があります。解決策は、別の URI でサブフォルダーにアクセスするときに、ルートの代わりにエイリアス ディレクティブを使用することです。
修正された Nginx 構成は次のとおりです:
server { ... location ^~ /manage { alias /var/www/mysite/manage/public; index index.php; if (!-e $request_filename) { rewrite ^ /manage/index.php last; } location ~ \.php$ { ... } } ... }
この変更により、構成は / static からはルートを使用して / に、/manage からはエイリアスを使用して /manage に設定します。さらに、try_files ディレクティブと if ディレクティブは、これらのサブフォルダー内に存在しないファイルに対するリクエストが適切に処理されることを保証します。
ロケーション ブロックを適切に使用し、エイリアス ディレクティブとルート ディレクティブを組み合わせることで、Nginx を次のように構成できます。特定の URI を持つサブフォルダーからコンテンツを効果的に提供します。
以上が異なる URI を持つサブフォルダーを提供するために Nginx ロケーション ブロックを効率的に構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。