ホーム
おまかせ表示
最近の更新
特別ページ
コミュニティ・ポータル
設定
MochiuWiki : SUSE, EC, PCBについて
免責事項
MochiuWiki : SUSE, EC, PCB
検索
利用者メニュー
ログイン
NginX- locationコンテキストのソースを表示
←
NginX- locationコンテキスト
📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは
2026年9月に閉鎖
いたします。
移転先は
https://mochiu.net/index.php?title=NginX- locationコンテキスト
です。
新しい記事は移転先で追加しております。
(旧サイトでは記事を追加しておりません)
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == locationコンテキストは、特定のURIパターンに対する処理を定義するNginXの重要な設定ブロックである。<br> serverコンテキスト内で使用され、クライアントのリクエストURIに基づいて異なる処理を実現する。<br> <br> マッチング方式として、前方一致、正規表現、完全一致等があり、これらの優先順位に基づいて最適なlocationブロックが選択される。<br> 特に、<code>=</code>マッチが最も優先度が高く、次いで<code>^~</code>による前方一致、その後に正規表現マッチが続く。<br> <br> 設定できるものとして、静的ファイルの配信、プロキシ設定、リダイレクト、アクセス制御、FastCGI連携等がある。<br> また、<code>try_files</code>ディレクティブを使用することにより、複数のファイルパスを順次確認する柔軟な設定も可能である。<br> <br> <u>継承関係において、locationコンテキストはserverコンテキストの設定を継承するが、独自の設定で上書きすることも可能である。</u><br> <u>さらに、locationコンテキストをネストすることで、より詳細な制御を実現することができる。</u><br> <br> エラー処理やログ設定もlocationコンテキスト内でも設定可能であり、特定のURIパターンに対して独自のエラーページやログフォーマットを定義できる。<br> <br><br> == 基本的なディレクティブ == * root *: ドキュメントルートの指定 * alias *: 特定のパスへのエイリアス設定 * index *: インデックスファイルの指定 <br> <syntaxhighlight lang="nginx"> # 静的ファイルの配信例 location / { root /var/www/html; index index.html; } </syntaxhighlight> <br><br> == アクセス制御 == * allow / deny *: IPベースのアクセス制限 * auth_basic *: Basic認証の設定 * auth_request *: 外部認証の設定 <br> <syntaxhighlight lang="nginx"> # 特定ファイルへのアクセス制限例 # ドキュメントルートの".ht"から始まるファイルはアクセス不可 location ~ /\.ht { deny all; } <br> <syntaxhighlight lang="nginx"> # BASIC認証の設定例 location /admin { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; } </syntaxhighlight> <br> <syntaxhighlight lang="nginx"> # ダイジェスト認証の設定例 # より安全な認証方式であり、パスワードをハッシュ化して送信する location /secure { auth_digest "Private Area"; auth_digest_user_file /etc/nginx/htdigest; auth_digest_timeout 30s; auth_digest_expires 300s; } </syntaxhighlight> <br> <syntaxhighlight lang="nginx"> # 外部認証の設定例 # サーバでユーザ認証を行い、その結果に基づいてアクセスを制御する location /private { auth_request /auth; auth_request_set $auth_status $upstream_status; location = /auth { internal; proxy_pass http://auth-server/verify; proxy_pass_request_body off; proxy_set_header Content-Length ""; } } </syntaxhighlight> <br><br> == プロキシ関連 == * proxy_pass *: リバースプロキシの設定 * proxy_set_header *: プロキシヘッダの設定 * proxy_redirect *: リダイレクトの制御 <br> <syntaxhighlight lang="nginx"> # プロキシ設定例 location /api { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } </syntaxhighlight> <br><br> == ファイル処理 == * try_files *: ファイル検索順序の指定 * autoindex *: ディレクトリリスティングの制御 * expires *: キャッシュ制御 <br> <syntaxhighlight lang="nginx"> # キャッシュ制御の例 location /static { expires 30d; add_header Cache-Control "public, no-transform"; } </syntaxhighlight> <br><br> == FastCGI設定 == * fastcgi_pass *: FastCGIサーバの指定 * fastcgi_param *: FastCGIパラメータの設定 <br> <syntaxhighlight lang="nginx"> # FastCGIの設定例 # PHPアプリケーションとの連携に必要なバッファ設定やパス情報の処理を含む location ~ \.php$ { fastcgi_pass unix:/var/run/php/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; include fastcgi_params; } </syntaxhighlight> <br><br> == エラー処理 == 様々なHTTPエラーに対してカスタムレスポンスが設定できる。<br> <br> * error_page *: エラーページの指定 * return *: HTTPリターンコードとURLの設定 <br> <syntaxhighlight lang="nginx"> # エラーページとリターン例 location /download { error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /404.html { internal; return 404 "File not found.\n"; } location = /50x.html { internal; return 500 "Server error occurred.\n"; } } </syntaxhighlight> <br><br> == リライト / リダイレクト == * rewrite *: URLリライトルールの設定 * redirect *: リダイレクトの設定 <br> <syntaxhighlight lang="nginx"> # リライトとリダイレクトの設定例 # URLの書き換えやリダイレクトが設定できる # 以下の例では、lastフラグで処理を終了して、permanentフラグで301リダイレクトを指定している location /old-page { # 301永続的リダイレクト return 301 /new-page; } location /blog { # URLの書き換え rewrite ^/blog/(\d{4})/(\d{2})/(\d{2})/(.*)$ /posts/$1-$2-$3-$4 last; # 条件付きリライト if ($host ~* ^www\.(.*)) { rewrite ^(.*)$ http://$1$1 permanent; } } </syntaxhighlight> <br><br> == CORS設定 == * add_header *: クロスオリジン制御用ヘッダの追加 <br><br> == SSI (Server Side Includes) == * ssi *: SSIの有効化 / 無効化 <br><br> == PHP-FPM連携 == <syntaxhighlight lang="nginx"> # PHP-FPM連携例 location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } </syntaxhighlight> <br><br> == $realpath_root / $document_rootの違い == * $realpath_root *: シンボリックリンクを解決して実際の物理パスを返す。 *: より安全で確実な参照が可能となる。 *: <br> * $document_root *: 設定ファイルで指定されたrootディレクティブの値をそのまま使用する。 *: シンボリックリンクが解決されない <br> 一般的な環境では両者は同じ結果になる。<br> <br> <u>しかし、セキュリティを重視する場合は$realpath_rootが推奨される。</u><br> 特に、シンボリックリンクを使用している環境では、この違いが重要になる。<br> <br> * fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; * fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Web]]
NginX- locationコンテキスト
に戻る。