標準エラー出力をパイプラインで次に渡す

表題を一部知らなかったのでメモ。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ パイプライン

標準エラー出力をパイプラインで後続のコマンドの標準入力に渡すときはいつも下記のように実行していた。

$ command1 2>&1 | command2

上記のように実行すれば、標準出力と標準エラー出力がともにパイプラインで後続のコマンドに引き渡される。これを下記のようにも書けるようだ。

$ command1 |& command2

|&“は”2>&1 |“の短縮表記だそうである。是非覚えておこう。

以上。

DirectoryIndex on nginx

表題の通り。apacheにおける”DirectoryIndex“ってnginxではどうやるんだっけ?というメモ。

■ 環境

  • Nginx 1.12.2
  • Amazon Linux

■ index

Module ngx_http_index_module
https://nginx.org/en/docs/http/ngx_http_index_module.html#index

デフォルト設定では”index.html”を見るようになっているが、諸事情により別のファイルを”/“でアクセスされた時に表示したい。

対象の”location“ディレクティブに”index“ディレクティブを追加する。

location / {
  :
  index index2.html index.html
  :
}

以上。

アクセス制限

nginxにおいて表題を行う。

■ 環境

  • Nginx 1.12.2
  • Amazon Linux

■ allow / deny

アクセス制限をかけたい”location“ディレクティブに、下記の様に設定してしまう。

location / {
  :
    allow XXX.XXX.XXX.XXX/32;
    allow YYY.YYY.YYY.YYY/24;
    deny all;
  :
}

指定したIPアドレス以外からのアクセスは403で返ることになる。

下記が参考になる。

RESTRICTING ACCESS WITH HTTP BASIC AUTHENTICATION
https://www.nginx.com/resources/admin-guide/restricting-access-auth-basic/

以上。

適当なfaviconの設定

nginxにおいて表題の通り。

■ 環境

  • Nginx 1.12.2
  • Amazon Linux

■ favicon

faviconへのアクセスログが大量に出ているので制御したい。設定ファイルに下記を記載する。

location = /favicon.ico {
    access_log off;
    return 200;
}

これでアクセスログが平和になった。

ブラウザに適当な画像をキャッシュさせ、アクセス自体を減らしたければ先日の”empty_gif“を用いて下記のようにすることもできる。

location = /favicon.ico {
    access_log off;
    empty_gif;
    return 200;
}

ただしこれを設定すると、ブラウザのタブ上でも何もアイコンがなくなるので少々わかりづらい。気にならないのであれば構わないが。

以上。

■ 関連

empty_gif

ELBのヘルスチェックログを出力しない

empty_gif

nginxにおいて表題のディレクティブに関して。

■ 環境

  • Nginx 1.12.2
  • Amazon Linux

■ empty_gif

empty_gif“というディレクティブがあるようだ。1×1ピクセルのgifを返してくれるらしい。ELB配下のAmazonLinuxにおいて、healthcheckに使用してみている。

location = /healthcheck.html {
    empty_gif;
    access_log off;
    break;
}

上記を”server“ディレクティブ配下に設定している。”location“ディレクティブなのでそこしかないが…。アクセスログにも出力させないようにしてしまった。これで少し幸せになれた。

以上。