<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx</id>
	<title>コンテナ - Nginx - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx&amp;action=history"/>
	<updated>2026-07-06T09:42:53Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx&amp;diff=13714&amp;oldid=prev</id>
		<title>2025年12月10日 (水) 09:22にWikiによる</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx&amp;diff=13714&amp;oldid=prev"/>
		<updated>2025-12-10T09:22:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025年12月10日 (水) 18:22時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l84&quot;&gt;84行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;84行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  mkdir -p html&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  mkdir -p html&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  echo &quot;&amp;lt;h1&amp;gt;Hello from Nginx Container&amp;lt;/h1&amp;gt;&quot; &amp;gt; html/index.html&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  echo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;nowiki&amp;gt;&lt;/ins&gt;&quot;&amp;lt;h1&amp;gt;Hello from Nginx Container&amp;lt;/h1&amp;gt;&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/nowiki&amp;gt; &lt;/ins&gt;&amp;gt; html/index.html&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mochiuwiki:diff:1.41:old-13713:rev-13714:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx&amp;diff=13713&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == Nginxは、高性能なWebサーバおよびリバースプロキシサーバである。&lt;br&gt; &lt;br&gt; Dockerコンテナとして実行することにより、開発環境や本番環境で簡単に導入できる。&lt;br&gt; 静的ファイルの高速配信、リバースプロキシ、ロードバランサー等の様々な用途に適している。&lt;br&gt; &lt;br&gt; Nginxコンテナの主な機能を以下に示す。&lt;br&gt; * HTTPサーバ機能 *: デフォルト :…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_-_Nginx&amp;diff=13713&amp;oldid=prev"/>
		<updated>2025-12-10T09:17:26Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == Nginxは、高性能なWebサーバおよびリバースプロキシサーバである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Dockerコンテナとして実行することにより、開発環境や本番環境で簡単に導入できる。&amp;lt;br&amp;gt; 静的ファイルの高速配信、リバースプロキシ、ロードバランサー等の様々な用途に適している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Nginxコンテナの主な機能を以下に示す。&amp;lt;br&amp;gt; * HTTPサーバ機能 *: デフォルト :…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
Nginxは、高性能なWebサーバおよびリバースプロキシサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dockerコンテナとして実行することにより、開発環境や本番環境で簡単に導入できる。&amp;lt;br&amp;gt;&lt;br /&gt;
静的ファイルの高速配信、リバースプロキシ、ロードバランサー等の様々な用途に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nginxコンテナの主な機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* HTTPサーバ機能&lt;br /&gt;
*: デフォルト : 80番ポート&lt;br /&gt;
* HTTPSサーバ機能&lt;br /&gt;
*: デフォルト : 443番ポート&lt;br /&gt;
* 静的ファイルの高速配信&lt;br /&gt;
* リバースプロキシ機能&lt;br /&gt;
* ロードバランサー機能&lt;br /&gt;
* キャッシュ機能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Containerfile ==&lt;br /&gt;
Containerfileを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;dockerfile&amp;quot;&amp;gt;&lt;br /&gt;
 FROM nginx:latest&lt;br /&gt;
 &lt;br /&gt;
 COPY ./html/ /usr/share/nginx/html/&lt;br /&gt;
 COPY ./nginx.conf /etc/nginx/nginx.conf&lt;br /&gt;
 &lt;br /&gt;
 EXPOSE 80 443&lt;br /&gt;
 &lt;br /&gt;
 CMD [&amp;quot;nginx&amp;quot;, &amp;quot;-g&amp;quot;, &amp;quot;daemon off;&amp;quot;]&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コンテナイメージをビルドする。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman build -t nginx:custom -f Containerfile .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドしたイメージからコンテナを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman run -d                       \&lt;br /&gt;
   --name nginx                      \&lt;br /&gt;
   -p 0.0.0.0:8080:80                \&lt;br /&gt;
   -v ./html:/usr/share/nginx/html/  \&lt;br /&gt;
   nginx:custom&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compose ==&lt;br /&gt;
Composeファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: &amp;#039;3&amp;#039;&lt;br /&gt;
 services:&lt;br /&gt;
   nginx:&lt;br /&gt;
     image: nginx:latest&lt;br /&gt;
     container_name: nginx&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;0.0.0.0:8080:80&amp;quot;    # HTTP用（すべてのIPでリッスン）&lt;br /&gt;
       - &amp;quot;0.0.0.0:8443:443&amp;quot;   # HTTPS用（すべてのIPでリッスン）&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./html:/usr/share/nginx/html/&lt;br /&gt;
       - ./nginx-conf:/etc/nginx/conf.d/&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   nginx-data:&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Composeファイルを実行して、コンテナを作成および実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman-compose up -d&lt;br /&gt;
 # または&lt;br /&gt;
 podman-compose -f &amp;lt;Composeファイル名&amp;gt; up -d&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アクセス方法 ==&lt;br /&gt;
コンテナが起動した後、以下に示すURLでアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* HTTP&lt;br /&gt;
*: http://localhost:8080&lt;br /&gt;
* HTTPS&lt;br /&gt;
*: https://localhost:8443&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デフォルトページの確認 ====&lt;br /&gt;
コンテナ起動後、Webブラウザでアクセスすると Welcome to nginx! というメッセージが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムHTMLの配置 ====&lt;br /&gt;
ホスト側のディレクトリ (例 : ./html) にHTMLファイルを配置することにより、独自のコンテンツを表示できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p html&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;&amp;lt;h1&amp;gt;Hello from Nginx Container&amp;lt;/h1&amp;gt;&amp;quot; &amp;gt; html/index.html&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定ファイルのカスタマイズ ==&lt;br /&gt;
Nginxの設定ファイルをカスタマイズする場合は、nginx.confやサイト設定ファイルをホスト側に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイルのコピー ====&lt;br /&gt;
実行中のコンテナから設定ファイルをコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman cp nginx:/etc/nginx/nginx.conf ./nginx-conf/nginx.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サイト設定の追加 ====&lt;br /&gt;
カスタム設定ファイルを作成する例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name localhost;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       root /usr/share/nginx/html;&lt;br /&gt;
       index index.html index.htm;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    error_page 404 /404.html;&lt;br /&gt;
    location = /404.html {&lt;br /&gt;
       internal;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定の反映 ====&lt;br /&gt;
設定ファイルを編集後、コンテナを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman restart nginx&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、設定の構文チェックとリロードを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman exec nginx nginx -t&lt;br /&gt;
 podman exec nginx nginx -s reload&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 仮想ホストの設定 ==&lt;br /&gt;
複数のサイトを1つのNginxコンテナで運用する場合、server ブロックを複数定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 仮想ホスト設定ファイルの作成 ====&lt;br /&gt;
各サイト用の設定ファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* site1.confファイル&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name example.com www.example.com;&lt;br /&gt;
    root /usr/share/nginx/html/example.com;&lt;br /&gt;
    index index.html index.htm;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/example.com-access.log;&lt;br /&gt;
    error_log /var/log/nginx/example.com-error.log;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       try_files $uri $uri/ =404;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {&lt;br /&gt;
       expires 1y;&lt;br /&gt;
       add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* site2.confファイル&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name test.local;&lt;br /&gt;
    root /usr/share/nginx/html/test.local;&lt;br /&gt;
    index index.html index.htm;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/test.local-access.log;&lt;br /&gt;
    error_log /var/log/nginx/test.local-error.log;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       try_files $uri $uri/ =404;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Composeファイルでの設定例 ====&lt;br /&gt;
仮想ホストを使用する場合のCompose設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: &amp;#039;3&amp;#039;&lt;br /&gt;
 services:&lt;br /&gt;
   nginx:&lt;br /&gt;
     image: nginx:latest&lt;br /&gt;
     container_name: nginx&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;0.0.0.0:8080:80&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./sites/example.com:/usr/share/nginx/html/example.com&lt;br /&gt;
       - ./sites/test.local:/usr/share/nginx/html/test.local&lt;br /&gt;
       - ./conf.d:/etc/nginx/conf.d&lt;br /&gt;
       - nginx-logs:/var/log/nginx&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   nginx-logs:&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSL / TLS設定 ==&lt;br /&gt;
HTTPS通信を有効化するための設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSL証明書の準備 ====&lt;br /&gt;
自己署名証明書を作成する例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p ./ssl&lt;br /&gt;
 openssl req -x509 -nodes -days 365 -newkey rsa:2048 \&lt;br /&gt;
   -keyout ./ssl/server.key \&lt;br /&gt;
   -out ./ssl/server.crt \&lt;br /&gt;
   -subj &amp;quot;/C=JP/ST=Tokyo/L=Tokyo/O=MyCompany/CN=localhost&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSL設定ファイルの作成 ====&lt;br /&gt;
HTTPS用のserver設定を作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name localhost;&lt;br /&gt;
    root /usr/share/nginx/html;&lt;br /&gt;
    index index.html index.htm;&lt;br /&gt;
 &lt;br /&gt;
    ssl_certificate /etc/nginx/ssl/server.crt;&lt;br /&gt;
    ssl_certificate_key /etc/nginx/ssl/server.key;&lt;br /&gt;
 &lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_ciphers HIGH:!aNULL:!MD5;&lt;br /&gt;
    ssl_prefer_server_ciphers on;&lt;br /&gt;
 &lt;br /&gt;
    ssl_session_cache shared:SSL:10m;&lt;br /&gt;
    ssl_session_timeout 10m;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/ssl-access.log;&lt;br /&gt;
    error_log /var/log/nginx/ssl-error.log;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       try_files $uri $uri/ =404;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name localhost;&lt;br /&gt;
    return 301 https://$server_name$request_uri;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSL有効化のCompose設定 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: &amp;#039;3&amp;#039;&lt;br /&gt;
 services:&lt;br /&gt;
   nginx:&lt;br /&gt;
     image: nginx:latest&lt;br /&gt;
     container_name: nginx&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;0.0.0.0:8080:80&amp;quot;&lt;br /&gt;
       - &amp;quot;0.0.0.0:8443:443&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./html:/usr/share/nginx/html&lt;br /&gt;
       - ./ssl:/etc/nginx/ssl&lt;br /&gt;
       - ./conf.d:/etc/nginx/conf.d&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Let&amp;#039;s Encryptの使用 ====&lt;br /&gt;
本番環境で無料SSL証明書を使用する場合の設定例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: &amp;#039;3&amp;#039;&lt;br /&gt;
 services:&lt;br /&gt;
   nginx:&lt;br /&gt;
     image: nginx:latest&lt;br /&gt;
     container_name: nginx&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;0.0.0.0:80:80&amp;quot;&lt;br /&gt;
       - &amp;quot;0.0.0.0:443:443&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./html:/usr/share/nginx/html&lt;br /&gt;
       - ./conf.d:/etc/nginx/conf.d&lt;br /&gt;
       - certbot-etc:/etc/letsencrypt&lt;br /&gt;
       - certbot-var:/var/lib/letsencrypt&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &lt;br /&gt;
   certbot:&lt;br /&gt;
     image: certbot/certbot&lt;br /&gt;
     container_name: certbot&lt;br /&gt;
     volumes:&lt;br /&gt;
       - certbot-etc:/etc/letsencrypt&lt;br /&gt;
       - certbot-var:/var/lib/letsencrypt&lt;br /&gt;
       - ./html:/usr/share/nginx/html&lt;br /&gt;
     command: certonly --webroot --webroot-path=/usr/share/nginx/html --email admin@example.com --agree-tos --no-eff-email -d example.com -d www.example.com&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   certbot-etc:&lt;br /&gt;
   certbot-var:&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== リバースプロキシの設定 ==&lt;br /&gt;
Nginxをリバースプロキシとして使用する詳細な設定例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 基本的なリバースプロキシ設定 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name proxy.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://backend:8000;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
       proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
       proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 &lt;br /&gt;
       proxy_buffering on;&lt;br /&gt;
       proxy_buffer_size 4k;&lt;br /&gt;
       proxy_buffers 8 4k;&lt;br /&gt;
       proxy_busy_buffers_size 8k;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WebSocketプロキシの設定 ====&lt;br /&gt;
WebSocketアプリケーション用のプロキシ設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name ws.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://websocket-backend:8080;&lt;br /&gt;
       proxy_http_version 1.1;&lt;br /&gt;
       proxy_set_header Upgrade $http_upgrade;&lt;br /&gt;
       proxy_set_header Connection &amp;quot;upgrade&amp;quot;;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
       proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 &lt;br /&gt;
       proxy_read_timeout 86400;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パスベースルーティング ====&lt;br /&gt;
異なるパスを異なるバックエンドにルーティングする設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name app.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location /api/ {&lt;br /&gt;
       proxy_pass http://api-backend:3000/;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
       proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location /admin/ {&lt;br /&gt;
       proxy_pass http://admin-backend:4000/;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
       proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://frontend:5000;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
       proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ロードバランサーの設定 ==&lt;br /&gt;
複数のバックエンドサーバに負荷分散する設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ラウンドロビン方式 ====&lt;br /&gt;
デフォルトの負荷分散方式 (ラウンドロビン) の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 upstream backend_servers {&lt;br /&gt;
    server backend1:8000;&lt;br /&gt;
    server backend2:8000;&lt;br /&gt;
    server backend3:8000;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name lb.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://backend_servers;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
       proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 重み付きロードバランシング ====&lt;br /&gt;
サーバごとに重みを設定する例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 upstream backend_servers {&lt;br /&gt;
    server backend1:8000 weight=3;&lt;br /&gt;
    server backend2:8000 weight=2;&lt;br /&gt;
    server backend3:8000 weight=1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name lb.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://backend_servers;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== IPハッシュ方式 ====&lt;br /&gt;
クライアントIPに基づいて同じサーバに振り分ける設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 upstream backend_servers {&lt;br /&gt;
    ip_hash;&lt;br /&gt;
    server backend1:8000;&lt;br /&gt;
    server backend2:8000;&lt;br /&gt;
    server backend3:8000;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name lb.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://backend_servers;&lt;br /&gt;
       proxy_set_header Host $host;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ヘルスチェックの設定 ====&lt;br /&gt;
バックエンドサーバの状態を監視する設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 upstream backend_servers {&lt;br /&gt;
    server backend1:8000 max_fails=3 fail_timeout=30s;&lt;br /&gt;
    server backend2:8000 max_fails=3 fail_timeout=30s;&lt;br /&gt;
    server backend3:8000 backup;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name lb.example.com;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       proxy_pass http://backend_servers;&lt;br /&gt;
       proxy_next_upstream error timeout http_500 http_502 http_503;&lt;br /&gt;
       proxy_connect_timeout 5s;&lt;br /&gt;
       proxy_read_timeout 10s;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PHP-FPMとの連携 ==&lt;br /&gt;
NginxコンテナでPHPアプリケーションを動作させる場合、PHP-FPMと連携する設定例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Composeファイルでの連携設定 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: &amp;#039;3&amp;#039;&lt;br /&gt;
 services:&lt;br /&gt;
   nginx:&lt;br /&gt;
     image: nginx:latest&lt;br /&gt;
     container_name: nginx&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;0.0.0.0:8080:80&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./html:/usr/share/nginx/html&lt;br /&gt;
       - ./conf.d:/etc/nginx/conf.d&lt;br /&gt;
     depends_on:&lt;br /&gt;
       - php-fpm&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &lt;br /&gt;
   php-fpm:&lt;br /&gt;
     image: php:8.2-fpm&lt;br /&gt;
     container_name: php-fpm&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./html:/usr/share/nginx/html&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Nginx側のPHP設定 ====&lt;br /&gt;
PHP-FPMと連携するため、serverセクションの設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name localhost;&lt;br /&gt;
    root /usr/share/nginx/html;&lt;br /&gt;
    index index.php index.html index.htm;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       try_files $uri $uri/ /index.php?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
       fastcgi_pass php-fpm:9000;&lt;br /&gt;
       fastcgi_index index.php;&lt;br /&gt;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
       include fastcgi_params;&lt;br /&gt;
 &lt;br /&gt;
       fastcgi_buffer_size 128k;&lt;br /&gt;
       fastcgi_buffers 4 256k;&lt;br /&gt;
       fastcgi_busy_buffers_size 256k;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ /\.ht {&lt;br /&gt;
       deny all;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WordPressの設定例 ====&lt;br /&gt;
WordPressを運用する場合の最適化された設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name wordpress.example.com;&lt;br /&gt;
    root /usr/share/nginx/html;&lt;br /&gt;
    index index.php;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
       try_files $uri $uri/ /index.php?$args;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
       try_files $uri =404;&lt;br /&gt;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;&lt;br /&gt;
       fastcgi_pass php-fpm:9000;&lt;br /&gt;
       fastcgi_index index.php;&lt;br /&gt;
       include fastcgi_params;&lt;br /&gt;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
       fastcgi_param PATH_INFO $fastcgi_path_info;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {&lt;br /&gt;
       expires 1y;&lt;br /&gt;
       log_not_found off;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location = /favicon.ico {&lt;br /&gt;
       log_not_found off;&lt;br /&gt;
       access_log off;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location = /robots.txt {&lt;br /&gt;
       log_not_found off;&lt;br /&gt;
       access_log off;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    location ~ /\.ht {&lt;br /&gt;
       deny all;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== キャッシュの設定 ==&lt;br /&gt;
Nginxのキャッシュ機能を使用してパフォーマンスを向上させる設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロキシキャッシュの設定 ====&lt;br /&gt;
リバースプロキシでのキャッシュ設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* nginx.confに追加する設定&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;&lt;br /&gt;
 &lt;br /&gt;
    server {&lt;br /&gt;
       listen 80;&lt;br /&gt;
       server_name cache.example.com;&lt;br /&gt;
 &lt;br /&gt;
       location / {&lt;br /&gt;
          proxy_cache my_cache;&lt;br /&gt;
          proxy_cache_valid 200 302 10m;&lt;br /&gt;
          proxy_cache_valid 404 1m;&lt;br /&gt;
          proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;br /&gt;
          proxy_cache_lock on;&lt;br /&gt;
 &lt;br /&gt;
          add_header X-Cache-Status $upstream_cache_status;&lt;br /&gt;
 &lt;br /&gt;
          proxy_pass http://backend:8000;&lt;br /&gt;
          proxy_set_header Host $host;&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== FastCGIキャッシュの設定 ====&lt;br /&gt;
PHP-FPM用のキャッシュ設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=php_cache:10m max_size=1g inactive=60m use_temp_path=off;&lt;br /&gt;
 &lt;br /&gt;
    server {&lt;br /&gt;
       listen 80;&lt;br /&gt;
       server_name php-cache.example.com;&lt;br /&gt;
       root /usr/share/nginx/html;&lt;br /&gt;
       index index.php;&lt;br /&gt;
 &lt;br /&gt;
       set $skip_cache 0;&lt;br /&gt;
 &lt;br /&gt;
       if ($request_method = POST) {&lt;br /&gt;
          set $skip_cache 1;&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       if ($query_string != &amp;quot;&amp;quot;) {&lt;br /&gt;
          set $skip_cache 1;&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       location ~ \.php$ {&lt;br /&gt;
          fastcgi_cache php_cache;&lt;br /&gt;
          fastcgi_cache_valid 200 60m;&lt;br /&gt;
          fastcgi_cache_bypass $skip_cache;&lt;br /&gt;
          fastcgi_no_cache $skip_cache;&lt;br /&gt;
 &lt;br /&gt;
          add_header X-FastCGI-Cache $upstream_cache_status;&lt;br /&gt;
 &lt;br /&gt;
          fastcgi_pass php-fpm:9000;&lt;br /&gt;
          include fastcgi_params;&lt;br /&gt;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 静的ファイルのキャッシュ設定 ====&lt;br /&gt;
ブラウザキャッシュを最適化する設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
location ~* \.(jpg|jpeg|png|gif|ico|svg)$ {&lt;br /&gt;
    expires 1y;&lt;br /&gt;
    add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
location ~* \.(css|js)$ {&lt;br /&gt;
    expires 1M;&lt;br /&gt;
    add_header Cache-Control &amp;quot;public&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
location ~* \.(woff|woff2|ttf|eot)$ {&lt;br /&gt;
    expires 1y;&lt;br /&gt;
    add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 圧縮の設定 ==&lt;br /&gt;
Gzip圧縮を有効化してデータ転送量を削減する設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Gzip圧縮の基本設定 ====&lt;br /&gt;
nginx.confファイル、または、サイト設定ファイルに以下を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    gzip on;&lt;br /&gt;
    gzip_vary on;&lt;br /&gt;
    gzip_proxied any;&lt;br /&gt;
    gzip_comp_level 6;&lt;br /&gt;
    gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;&lt;br /&gt;
    gzip_disable &amp;quot;msie6&amp;quot;;&lt;br /&gt;
    gzip_min_length 256;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Brotli圧縮の設定 ====&lt;br /&gt;
高効率なBrotli圧縮を使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    brotli on;&lt;br /&gt;
    brotli_comp_level 6;&lt;br /&gt;
    brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== レート制限の設定 ==&lt;br /&gt;
DDoS攻撃やブルートフォース攻撃を防ぐためのレート制限設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リクエストレート制限 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;&lt;br /&gt;
 &lt;br /&gt;
    server {&lt;br /&gt;
       listen 80;&lt;br /&gt;
       server_name ratelimit.example.com;&lt;br /&gt;
 &lt;br /&gt;
       location / {&lt;br /&gt;
          limit_req zone=mylimit burst=20 nodelay;&lt;br /&gt;
          proxy_pass http://backend:8000;&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       location /api/ {&lt;br /&gt;
          limit_req zone=mylimit burst=5 nodelay;&lt;br /&gt;
          proxy_pass http://api-backend:3000/;&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続数制限 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    limit_conn_zone $binary_remote_addr zone=addr:10m;&lt;br /&gt;
 &lt;br /&gt;
    server {&lt;br /&gt;
       listen 80;&lt;br /&gt;
       server_name connlimit.example.com;&lt;br /&gt;
 &lt;br /&gt;
       location /download/ {&lt;br /&gt;
          limit_conn addr 1;&lt;br /&gt;
          limit_rate 500k;&lt;br /&gt;
          root /usr/share/nginx/html;&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ログの管理 ==&lt;br /&gt;
Nginxのアクセスログとエラーログを管理する方法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ログの確認 ====&lt;br /&gt;
コンテナ内のログをリアルタイムで確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # アクセスログ&lt;br /&gt;
 podman exec nginx tail -f /var/log/nginx/access.log&lt;br /&gt;
 &lt;br /&gt;
 # エラーログ&lt;br /&gt;
 podman exec nginx tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、podman logsコマンドでコンテナログを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman logs -f nginx&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムログフォーマット ====&lt;br /&gt;
詳細なログフォーマットを定義する例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    log_format main &amp;#039;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#039;&lt;br /&gt;
                    &amp;#039;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#039;&lt;br /&gt;
                    &amp;#039;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
    log_format detailed &amp;#039;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#039;&lt;br /&gt;
                        &amp;#039;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#039;&lt;br /&gt;
                        &amp;#039;&amp;quot;$http_user_agent&amp;quot; rt=$request_time &amp;#039;&lt;br /&gt;
                        &amp;#039;uct=&amp;quot;$upstream_connect_time&amp;quot; uht=&amp;quot;$upstream_header_time&amp;quot; urt=&amp;quot;$upstream_response_time&amp;quot;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/access.log detailed;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ログのローテーション ====&lt;br /&gt;
ログファイルをホスト側で管理する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: &amp;#039;3&amp;#039;&lt;br /&gt;
 services:&lt;br /&gt;
   nginx:&lt;br /&gt;
     image: nginx:latest&lt;br /&gt;
     container_name: nginx&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;0.0.0.0:8080:80&amp;quot;&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./html:/usr/share/nginx/html&lt;br /&gt;
       - ./logs:/var/log/nginx&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
logrotateを使用したログローテーション設定を作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* /etc/logrotate.d/nginx ファイルの例&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 /path/to/logs/*.log {&lt;br /&gt;
    daily&lt;br /&gt;
    rotate 14&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    notifempty&lt;br /&gt;
    create 0640 nginx nginx&lt;br /&gt;
    sharedscripts&lt;br /&gt;
    postrotate&lt;br /&gt;
       podman exec nginx nginx -s reopen&lt;br /&gt;
    endscript&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 条件付きロギング ====&lt;br /&gt;
特定の条件でログを記録しないように設定する例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 map $request_uri $loggable {&lt;br /&gt;
    ~^/health$ 0;&lt;br /&gt;
    ~^/metrics$ 0;&lt;br /&gt;
    default 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    access_log /var/log/nginx/access.log combined if=$loggable;&lt;br /&gt;
 &lt;br /&gt;
    location /health {&lt;br /&gt;
       return 200 &amp;quot;OK\n&amp;quot;;&lt;br /&gt;
       add_header Content-Type text/plain;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== パフォーマンスチューニング ==&lt;br /&gt;
Nginxのパフォーマンスを最適化するための設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ワーカープロセスの最適化 ====&lt;br /&gt;
nginx.confファイルにおいて、以下に示す設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 worker_processes auto;&lt;br /&gt;
 worker_rlimit_nofile 65535;&lt;br /&gt;
 &lt;br /&gt;
 events {&lt;br /&gt;
    worker_connections 4096;&lt;br /&gt;
    use epoll;&lt;br /&gt;
    multi_accept on;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 http {&lt;br /&gt;
    sendfile on;&lt;br /&gt;
    tcp_nopush on;&lt;br /&gt;
    tcp_nodelay on;&lt;br /&gt;
    keepalive_timeout 65;&lt;br /&gt;
    keepalive_requests 100;&lt;br /&gt;
    reset_timedout_connection on;&lt;br /&gt;
    client_body_timeout 10;&lt;br /&gt;
    send_timeout 10;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== バッファサイズの最適化 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    client_body_buffer_size 128k;&lt;br /&gt;
    client_max_body_size 10m;&lt;br /&gt;
    client_header_buffer_size 1k;&lt;br /&gt;
    large_client_header_buffers 4 8k;&lt;br /&gt;
    output_buffers 1 32k;&lt;br /&gt;
    postpone_output 1460;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルディスクリプタキャッシュ ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    open_file_cache max=200000 inactive=20s;&lt;br /&gt;
    open_file_cache_valid 30s;&lt;br /&gt;
    open_file_cache_min_uses 2;&lt;br /&gt;
    open_file_cache_errors on;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ設定 ==&lt;br /&gt;
Nginxのセキュリティを強化するための設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバ情報の非表示 ====&lt;br /&gt;
レスポンスヘッダからNginxのバージョン情報を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティヘッダの追加 ====&lt;br /&gt;
セキュリティ関連のHTTPヘッダを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name secure.example.com;&lt;br /&gt;
 &lt;br /&gt;
    add_header X-Frame-Options &amp;quot;SAMEORIGIN&amp;quot; always;&lt;br /&gt;
    add_header X-Content-Type-Options &amp;quot;nosniff&amp;quot; always;&lt;br /&gt;
    add_header X-XSS-Protection &amp;quot;1; mode=block&amp;quot; always;&lt;br /&gt;
    add_header Referrer-Policy &amp;quot;no-referrer-when-downgrade&amp;quot; always;&lt;br /&gt;
    add_header Content-Security-Policy &amp;quot;default-src &amp;#039;self&amp;#039; http: https: data: blob: &amp;#039;unsafe-inline&amp;#039;&amp;quot; always;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=31536000; includeSubDomains&amp;quot; always;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Basic認証の設定 ====&lt;br /&gt;
特定のディレクトリにBasic認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パスワードファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 podman exec -it nginx sh&lt;br /&gt;
 &lt;br /&gt;
 apk add apache2-utils&lt;br /&gt;
 &lt;br /&gt;
 htpasswd -c /etc/nginx/.htpasswd &amp;lt;ユーザ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nginx設定ファイルに認証を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 location /admin {&lt;br /&gt;
    auth_basic &amp;quot;Restricted Area&amp;quot;;&lt;br /&gt;
    auth_basic_user_file /etc/nginx/.htpasswd;&lt;br /&gt;
    proxy_pass http://admin-backend:4000;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== IPアドレスによるアクセス制限 ====&lt;br /&gt;
特定のIPアドレスからのみアクセスを許可する設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 location /admin {&lt;br /&gt;
    allow 192.168.1.0/24;&lt;br /&gt;
    allow 10.0.0.0/8;&lt;br /&gt;
    deny all;&lt;br /&gt;
 &lt;br /&gt;
    proxy_pass http://admin-backend:4000;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 機密ファイルへのアクセス制限 ====&lt;br /&gt;
特定のファイルやディレクトリへのアクセスを制限する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 location ~ /\.(?!well-known) {&lt;br /&gt;
    deny all;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 location ~* \.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)$ {&lt;br /&gt;
    deny all;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== コンテナが起動しない ====&lt;br /&gt;
設定ファイルの構文エラーを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 podman logs nginx&lt;br /&gt;
 podman exec nginx nginx -t&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポート番号の競合 ====&lt;br /&gt;
他のサービスとポート番号が競合している場合、別のポートを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 podman run -d --name nginx -p 0.0.0.0:8081:80 nginx:latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 502 Bad Gateway エラー ====&lt;br /&gt;
プロキシ設定でバックエンドサーバへの接続を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # バックエンドサーバの稼働確認&lt;br /&gt;
 podman exec nginx curl http://backend:8000&lt;br /&gt;
 &lt;br /&gt;
 # Nginxのエラーログを確認&lt;br /&gt;
 podman exec nginx tail -f /var/log/nginx/error.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 413 Request Entity Too Large エラー ====&lt;br /&gt;
アップロードファイルサイズの上限を増やす。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 http {&lt;br /&gt;
    client_max_body_size 100M;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パーミッションエラー ====&lt;br /&gt;
ボリュームマウントしたディレクトリのパーミッションを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod -R 755 ./html&lt;br /&gt;
 chown -R 101:101 ./html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タイムアウトエラー ====&lt;br /&gt;
プロキシタイムアウト設定を調整する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
 location / {&lt;br /&gt;
    proxy_pass http://backend:8000;&lt;br /&gt;
    proxy_connect_timeout 60s;&lt;br /&gt;
    proxy_send_timeout 60s;&lt;br /&gt;
    proxy_read_timeout 60s;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ファイヤーウォールの設定 ==&lt;br /&gt;
同一ネットワーク上の外部PCからアクセスする場合は、ファイヤーウォールのポート開放を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Linux ====&lt;br /&gt;
 # Firewalldを使用している場合&lt;br /&gt;
 sudo firewall-cmd --permanent --add-port=8080/tcp&lt;br /&gt;
 sudo firewall-cmd --permanent --add-port=8443/tcp&lt;br /&gt;
 sudo firewall-cmd --reload&lt;br /&gt;
 &lt;br /&gt;
 # UFWを使用している場合&lt;br /&gt;
 sudo ufw allow 8080/tcp&lt;br /&gt;
 sudo ufw allow 8443/tcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows 11 ====&lt;br /&gt;
PowerShellを管理者権限で起動して、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPポートの受信ルールを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 New-NetFirewallRule -DisplayName &amp;quot;Nginx HTTP&amp;quot; -Direction Inbound -Protocol TCP -LocalPort &amp;lt;ポート番号  例: 8080&amp;gt; -Action Allow&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPSポートの受信ルールを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 New-NetFirewallRule -DisplayName &amp;quot;Nginx HTTPS&amp;quot; -Direction Inbound -Protocol TCP -LocalPort &amp;lt;ポート番号  例: 8443&amp;gt; -Action Allow&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にポート開放が行われているかどうかを確認する場合、別PCからPowerShellを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 Test-NetConnection -ComputerName &amp;lt;Windows PCのIPアドレス&amp;gt; -Port &amp;lt;ポート番号  例: 8080&amp;gt;&lt;br /&gt;
 Test-NetConnection -ComputerName &amp;lt;Windows PCのIPアドレス&amp;gt; -Port &amp;lt;ポート番号  例: 8443&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイアウォールルールを削除する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # HTTPポートのルール削除&lt;br /&gt;
 Remove-NetFirewallRule -DisplayName &amp;quot;Nginx HTTP&amp;quot; -ErrorAction SilentlyContinue&lt;br /&gt;
 &lt;br /&gt;
 # HTTPSポートのルール削除&lt;br /&gt;
 Remove-NetFirewallRule -DisplayName &amp;quot;Nginx HTTPS&amp;quot; -ErrorAction SilentlyContinue&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows 10 ====&lt;br /&gt;
PowerShellを管理者権限で起動して、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPポートの受信ルールを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 New-NetFirewallRule -DisplayName &amp;quot;Nginx HTTP&amp;quot; -Direction Inbound -Protocol TCP -LocalPort &amp;lt;ポート番号  例: 8080&amp;gt; -Action Allow&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPSポートの受信ルールを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 New-NetFirewallRule -DisplayName &amp;quot;Nginx HTTPS&amp;quot; -Direction Inbound -Protocol TCP -LocalPort &amp;lt;ポート番号  例: 8443&amp;gt; -Action Allow&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にポート開放が行われているかどうかを確認する場合、別PCからPowerShellを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 Test-NetConnection -ComputerName &amp;lt;Windows PCのIPアドレス&amp;gt; -Port &amp;lt;ポート番号  例: 8080&amp;gt;&lt;br /&gt;
 Test-NetConnection -ComputerName &amp;lt;Windows PCのIPアドレス&amp;gt; -Port &amp;lt;ポート番号  例: 8443&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイアウォールルールを削除する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # HTTPポートのルール削除&lt;br /&gt;
 Remove-NetFirewallRule -DisplayName &amp;quot;Nginx HTTP&amp;quot; -ErrorAction SilentlyContinue&lt;br /&gt;
 &lt;br /&gt;
 # HTTPSポートのルール削除&lt;br /&gt;
 Remove-NetFirewallRule -DisplayName &amp;quot;Nginx HTTPS&amp;quot; -ErrorAction SilentlyContinue&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:コンテナ]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>