Scribble at 2022-08-24 11:01:29 Last modified: 2022-08-24 13:17:32

添付画像

或る統計では、既に Nginx が Apache を抜いてウェブ・サーバのシェアを 50% 以上も獲得しているという。僕が初めて使ってみた10年以上も前だと、lighttpd と同じような実験的というか、まだまだ「チャレンジ」の域にあったソフトウェアなのだが、いまや採用実績が積みあがって Apache や IIS のれっきとした競合である。

いまから扱いを勉強するなら、公式の "nginx documentation" でもいいし、上記に表紙だけ紹介してある O'Reilly Media の "NGINX Cookbook: Advanced Recipes for High-Performance Load Balancing" (2nd edn., Derek DeJonghe, 2022) でもいいはずだ。というか、Nginx は(いや Apache どころか IIS にも言えることだが)書籍も5年おきに出るくらいなので、他に選択肢がないともいえる(ああ、それからジャパンとか言われている田舎国家の著者が書いてたり翻訳してるかどうかは知らないし、興味もない)。なお、この本は Nginx Plus というロード・バランサの導入も想定されて書かれているため、冒頭からいきなり負荷分散の手順が出てきたりする。また、基本的に Cookbook として Q&A の記述スタイルをとっているため、あまり体系的な書き方はされていないし、Nginx というソフトウェアや開発の歴史といった蘊蓄はほとんどない。

これまでローカルですら Nginx を使ってこなかった理由は、公式が Windows 環境でのインストールを殆ど無視しているからだ。ゆえに Windows 用のバイナリ・ファイルは配布されていない。潔いと言えばそれまでだし、今年から僕の自宅の環境には MacBook Air も Raspberry Pi があるから、いまなら導入できるけれど、Windows しかない環境だった頃に導入を躊躇するのは当然だ。ウェブ・サーバ一つのためだけに、まさか Cygwin とか MinGW なんていう、イカサマ UNIX 環境を構築するわけにもいかない。

[追記] と言いつつ何もしないのでは勿体ないので、Nginx を Raspberry Pi Zero W に入れておいた。皮肉なことだが、実は上の本は役に立っていない。第一の理由として、Raspberry Pi のリポジトリが nginx.net には存在しないため、リポジトリを登録する作業には意味がないからだ。ローカル環境で使うだけなら厳密なファイル検証はスキップして、簡単に # apt install nginx でいいと思うし、それ以外にインストールする手順はソースからコンパイルするしかないだろう(それをやってもいいが、それをやるくらいなら当サイトのページとしてまとめるくらい暇をかけたい)。そして上の本が役に立たなかった第二の理由は、静的ページあるいはディフォールトのドキュメント・ルートを設定する説明が書かれているのだけれど、nginx をインストールすればドキュメント・ルートは勝手に作成されるし設定ファイルも生成されるからだ。そうでなければ、インストールするだけで 192.168.1.25(僕の自宅の LAN 環境で Raspberry Pi に固定してあるプライベート IP アドレス)を叩くとブラウザに初期画面が出てくるわけないのである。そして、上記の本に書かれている default_server の設定内容は、わざわざ /etc/nginx/conf.d/default.conf というファイルを作成して記述しなくてもいい。最初から同じ設定が /etc/nginx/sites-available/default という(拡張子なしの)ファイルに記述されていて、これが使われるからだ。本のとおりに新しくファイルを作って default_server の設定を記述すると、あたりまえだが設定は二重になるので、nginx -s reload すると "[emerg] a duplicate default server for 0.0.0.0:80" というエラーが出る。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook