MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
NginX- serverコンテキストのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
NginX- serverコンテキスト
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == serverコンテキストは、仮想サーバを定義するための基本的な構成要素である。<br> このコンテキストは、常にhttpコンテキスト内に配置され、1つのNginXサーバーで複数の仮想ホストを運用することを可能にする。<br> <br> 主要な機能として、特定のIPアドレスやポートでのリクエスト待ち受け、ドメイン名の設定、SSLの設定、静的ファイルの配信設定、プロキシ設定等がある。<br> <br> serverディレクティブの用途を以下に示す。<br> * ポート番号の指定 (listen) * サーバ名の設定 (server_name) * ドキュメントルートの指定 (root) * SSL / TLS設定 * ロケーション設定 * リダイレクト設定 <br> また、バーチャルホスティングにおいても、同一サーバ上で異なるドメインのWebサイトを運用することができる。<br> <br> 設定の継承関係について、serverコンテキスト内の設定は、より上位のhttpコンテキストからデフォルト値を継承する。<br> さらに、serverコンテキスト内のlocationコンテキストは、serverコンテキストの設定を継承する。<br> これにより、効率的で柔軟な設定管理が可能になる。<br> <br> セキュリティにおいては、SSL / TLS証明書の設定、アクセス制限、リダイレクトルールの設定等が可能であり、安全なWebサービスの提供に貢献する。<br> また、エラーページのカスタマイズやログの設定も行うことができる。<br> <br> パフォーマンスの最適化では、キャッシュ設定、バッファサイズの調整、接続数の制限等を設定することができるため、リソース管理が可能である。<br> <br><br> == listenディレクティブ == ポート番号を指定する。<br> <syntaxhighlight lang="nginx"> server { listen 80; # ...略 } </syntaxhighlight> <br><br> == server_nameディレクティブ == サーバ名を指定する。<br> <syntaxhighlight lang="nginx"> server { # ...略 server_name example.com; } </syntaxhighlight> <br><br> == rootディレクティブ == ドキュメントルートを指定する。<br> <syntaxhighlight lang="nginx"> server { # ...略 root /var/www/html; } </syntaxhighlight> <br><br> == locationコンテキスト == ==== 基本的なディレクティブ ==== * root *: ドキュメントルートの指定 * alias *: 特定のパスへのエイリアス設定 * index *: インデックスファイルの指定 <br> <syntaxhighlight lang="nginx"> # 静的ファイルの配信例 location / { root /var/www/html; index index.html; } </syntaxhighlight> <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> ==== プロキシ関連 ==== * 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> ==== ファイル処理 ==== * try_files *: ファイル検索順序の指定 * autoindex *: ディレクトリリスティングの制御 * expires *: キャッシュ制御 <br> <syntaxhighlight lang="nginx"> # キャッシュ制御の例 location /static { expires 30d; add_header Cache-Control "public, no-transform"; } </syntaxhighlight> <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> ==== エラー処理 ==== 様々な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> ==== リライト / リダイレクト ==== * 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> ==== CORS設定 ==== * add_header *: クロスオリジン制御用ヘッダの追加 <br> ==== SSI (Server Side Includes) ==== * ssi *: SSIの有効化 / 無効化 <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> ==== $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><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- serverコンテキスト
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse