nginx関係のメモ

主なディレクトリ構成

Directory note
/etc/logrotate.d ログローテーション設定ファイル
/etc/nginx/~ 設定ファイル関連
/usr/lib/systemd/system/nginx.service 起動スクリプト(systemdの設定ファイル)
/usr/lib64/nginx/modules/~ モジュール置き場
/usr/share/nginx/html/ ドキュメントルート
/var/cache/nginx/~ キャッシュファイルが置かれる
/var/log/nginx/~ ログファイル

設定ファイル

  • nginx.conf : 最初に読み込みまれる、以下の記述が有り別のファイルを読み込んでいる。
  • mime.types : フィアルタイプのマッピング
  • conf.d/default.conf : 基本的なWebサーバーの設定
  • scgi_params,uwsgi_params : CGI/WSGIのパラメータとnginxの変数のマッピング
  • win-utf,koi-utf,koi-win : ロシア語の文字コード関連ファイル普段使わない

設定ファイルのチェック

sudo nginx -t

状態確認、起動、終了、再起動、再読込+バイナリ入れ替え

$ sudo systemctl status nginx
$ sudo systemctl status nginx  //状態表示+ログ
$ sudo systemctl start nginx
$ sudo systemctl stop nginx
$ sudo systemctl restart nginx
$ sudo systemctl reload nginx

バイナリ入れ替えは新しいものが起動した後で、元を順次終了するのでサービスをストップせずに行える

$ sudo /sbin/service nginx upgrade

nginxコマンド

Command Note
nginx -h ヘルプ
nginx -v バージョン
nginx -t 設定ファイルのテスト
nginx -T 設定ファイルのテスト+表示
nginx -V バージョン情報+コンパイルフラグなど、組込モジュールの確認
nginx -s stop デーモンの停止強制
nginx -s quit 処理中のリクエストを待って停止
nginx -s reopen ログファイルを開き直す
nginx -s reload 実行中に設定ファイルを再読込

設定ファイルで使える変数

var value
$request_method GET
$host,$http_host www.example.com
$uri,$document_uri /path/to/file
$request_uri /path/to/file?a=1
$http_user_agent ユーザーエージェント
$http_cookie クッキー
$server_protocol HTTP/1.1
$query_string,$args 引数部分
$arg_{name},$cookie_{name},$http_{name} 引数、クッキー、HTTPヘッダー