Ubuntu - 26.04 - Server - apache → nginx


クラウディア 


1. 概要
2. インストール
3. 起動
4. 設定
5. ログ
6. 参考サイト

1. 概要

 事情があって、「apache」で動作させていた、ウェブサーバを、「nginx」へ変更します。  2026年7月のことで、わたしが「nginx」をさわるのは、実は初めてのことです。  コンテンツは、すべて、リバースプロキシで、「flask」へ渡しています。

2. インストール


sudo apt update

sudo apt install -y nginx
 「apache」からの切り替えでなく、「nginx」をいきなりインストールした場合は、証明書ファイルが存在しない可能性があるので。

dpkg -l ssl-cert
 の結果が。

+-- Desired=Unknown/Install/Remove/Purge/Hold
|+- Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
||+ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||| 名前           バージョン   アーキテクチ 説明
+++-==============-============-============-=========================================
un  ssl-cert       <なし>       <なし>       (説明 (description) がありません)
 と「なし」になっている場合は、インストールします。

sudo apt install ssl-cert
 この結果。

dpkg -l ssl-cert

+-- Desired=Unknown/Install/Remove/Purge/Hold
|+- Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
||+ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||| 名前           バージョン   アーキテクチ 説明
+++-==============-============-============-==================================
ii  ssl-cert       1.1.3ubuntu2 all          simple debconf wrapper for OpenSSL

3. 起動

 起動中の「apache」を止めて、無効化。

sudo systemctl stop apache2

sudo systemctl disable apache2
 「nginx」を有効化して、起動。

sudo systemctl enable nginx

sudo systemctl start nginx
 「nginx」の実行を確認します。

sudo systemctl status nginx

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Sat 2026-08-01 06:41:11 JST; 4 days ago
 Invocation: fa399466f01547c4a365bbdd075f8329
       Docs: man:nginx(8)
    Process: 303818 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUC>
    Process: 303830 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 303845 (nginx)
      Tasks: 3 (limit: 3736)
     Memory: 6.2M (peak: 7.1M)
        CPU: 1min 15.652s
     CGroup: /system.slice/nginx.service
             tq303845 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             tq303846 "nginx: worker process"
             mq303847 "nginx: worker process"

4. 設定

 いくつか、設定したい項目があったので。  「mime」に拡張子を追加。

sudo vi /etc/nginx/mime.types
 末尾の。

    video/x-msvideo                                  avi;
}
 のカッコの前に、下記の行を追加します。

    multipart/x-mixed-replace             			 mjpeg mjpg;
 「flask」へのリバースプロキシの設定。

sudo vi /etc/nginx/sites-available/default
 末尾の記述を以下にします。

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

    location / {
        # (Apache の ProxyPass / ProxyPassReverse 相当)
        proxy_pass http://127.0.0.1:5000/;
        proxy_redirect off;

        # (Apache の ProxyPreserveHost On / RequestHeader 相当)
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto "https";

        # (Apache の Header set 相当)
        add_header Access-Control-Allow-Origin "*" always;
        add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
        add_header Access-Control-Allow-Headers "Content-Type" always;

        if ($request_method = 'OPTIONS') {
            return 204;
        }
    }
}
 ここで定義している証明書は、なんちゃってなのですが。  実は、運用しているのが「AWS」上で、ロードバランサに定義しているので、外部では本物の証明書が有効になっているようです。  設定内容に間違いがないか、チェックします。

sudo nginx -t
 反映。

sudo systemctl reload nginx
 外部からアクセスして、問題ないことが確認できました。

5. ログ

 「Ubuntu」上の「nginx」のログは、下記へ出力されます。

/var/log/nginx/access.log
/var/log/nginx/error.log
 起動時のエラー等は、「systemd」のジャーナルに出ることがありますので、それを参照するには、下記のようなコマンドで参照します。

sudo journalctl -u nginx --no-pager -n 50

sudo systemctl status nginx

6. 参考サイト

 本ページは、「Gemini」伍長および「Claude」上等兵を参考にさせていただきました。

audiobook.jp
5G CONNECT
TikTok Shop 【リピート用プログラム】
それがだいじWi-Fi
葬送のフリーレン Prime Video
earthcar(アースカー)
Amazonギフトカード
ベルリッツ
JETBOY
サウンドハウス
アフィリエイトのアクセストレード
損保との違い
ネットオークションの相場、統計、価格比較といえばオークファン
U-NEXT
EaseUS
健康サポート特集
ハイスピードプラン
【usus ウズウズ】
薬屋の独り言