Nginx

2023 年 2 月 17 日 改訂

Nginex (エンジンエックス) は、web サーバーです。

 

Nginx ファイルとディレクトリ

$ sudo nginx -t

Nginx ファイルに構文エラーがないことをテストする。

$ sudo systemctl restart nginx

構文にエラーがなければ、Nginx を再起動して変更を有効にする。

/etc/nginx

Nginx 設定ディレクトリ。

/etc/nginx/nginx.conf

Nginx のメイン設定ファイル。Nginx のグローバル設定を変更できる。

/etc/nginx/sites-available/

サイトごとのサーバーブロックを保存できるディレクトリ。Nginx では、ここに保存されている設定ファイルが、site-enabled ディレクトリ内部からリンクされている必要がある。通常、サーバーブロック設定はこのディレクトリで行われ、他のディレクトリ (site-enabled ディレクトリ?) にリンクすることで有効になる。

/etc/nginx/sites-enabled/

有効なサイトごとのサーバーブロックが保存されるディレクトリ。sites-avaiable ディレクトリにある設定ファイルへのリンクが保存されている。

/var/log/nginx/access.log

Web サーバーにきたリクエストのログファイル。

/var/log/nginx/error.log

Nginx エラーのログファイル。

 

インストール

Ubuntu 20.04 に Nginx をインストールする方法

1) インストール、2) ファイアウォールの調整、3) Nginxプロセスの管理、4) サーバーブロックをセットアップして単一のサーバーから複数のドメインをホストする方法、を紹介。

これでインストールできたのですが、

chown nginx:username html

と入力すると

chown: invalid user: ‘nginx:username’

と言われました。以下、id nginx コマンドに続く

Ubuntu 日本語フォーラム

id nginx と入力した際に、id: `nginx': no such user、と言われた時の対処法。これが正しいのか、まだ確認してないです。

エラー対策

ufw status が inactive の場合。こちらを参照しました。

$ sudo ufw status
Status: inactive

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

$ sudo ufw status
Status: active

To Action From
-- ------ ----
Nginx HTTP ALLOW Anywhere
OpenSSH ALLOW Anywhere
Nginx HTTP (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)

 

リンク

Nginx で Index of を表示させる

index ファイルがなかった時に、そのディレクトリ内のファイル一覧を自動表示する機能。

nginx で 403 を回避するために、パブリックファイルの権現についておさらい

www-data は、web サーバー実行時のポプラーなユーザー/グループ名。apache, nginx ともに設定ファイルから実行時のユーザー名が変更できる。使用する web サーバーを意識したくないなら、www-data にしておくのがベター。デフォルトでwww-data になっていることもあれば、apache, nginx などになっていることもある。

Python CGI on Nginx

Ubuntu, Nginx 環境で CGI プログラムを動かすチュートリアル。

Nginx: CGI スクリプトを利用する

 

主に、Ubuntu 20.04 に Nginx をインストールする方法を参考にしました。ありがとうございます。