AmazonLinuxでJSTに固定

AmazonLinuxにおいて表題の通り。”glibc“のパッケージを”update“した際に”JST“にしておいた時間が”UTC“に戻ってしまっていた。

■ 環境

  • Amazon Linux

■ /etc/localtime

/etc/localtime“はいつも変更をしている。

$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime

これで”JST“に変わったと満足してしばらく放置してしまうことが多々ある。前述の通り”glibc“のパッケージを”update“した際に再度”UTC”に戻ってしまうという現象が発生する。

■ /etc/sysconfig/clock

このファイルも下記のように変更する。

$ cat /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true
$

後はおとなしく次の”update“を待つべし。

以上。

特定のpathにIP制限をかける

httpdにおいて表題の通り。

■ 環境

  • Apache httpd 2.4.25
  • AmazonLinux

■ IP制限

アクセス元のIPを下記のように制限することができる。

<Directory /var/www/html/www.example.com/path1>
  Order Deny,Allow
  Allow from XXX.XXX.XXX.XX1
  Allow from XXX.XXX.XXX.XX2
  Allow from XXX.XXX.XXX.XX3
  Deny from all
</Directory>

上記設定では、3つのIP以外からのアクセスは”403“のステータスが返される。

ちょっとしたものを置いておくけど、関係ない人には見せたくない時に便利である。

以上。

NameVirtualHostはもういらない

httpdにおいて表題の通り。久しぶりに設定をしたら怒られた。

■ 環境

  • Apache httpd 2.4.25
  • Amazon Linux

■ NameVirtualHost

core – Apache HTTP version 2.4
http://httpd.apache.org/docs/current/ja/mod/core.html#namevirtualhost

ここにもちゃんと”NameVirtualHost“が書かれているのだが、実際に書き加えて`configtest`をしてみると下記のようなメッセージが表示された。

$ sudo service httpd configtest
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf.d/www.example.com.conf:8
Syntax OK
$

次のリリースでは削除されるのか。ドキュメントにも書いておいてくれれば良いのにと思う。

このメッセージの通り”NameVirtualHost“は削除し再起動したが、設定通りに名前ベースのVirtualHostが効いている。

以上。

ELBのヘルスチェックをログに記載しない (Apache)

表題の通り。以前はnginxでの方法を書いていたが今回はapacheである。

■ 環境

  • Apache httpd 2.4.25
  • Amazon Linux

■ httpd.conf

下記を追記した。

SetEnvIf User-Agent "ELB-HealthChecker/2\.0" nolog

また”CustomLog“ディレクティブで下記のように編集した。

CustomLog "logs/www.example.com/access.log" combined env=!nolog

これでELBのヘルスチェックログが出力されないようになった。

以上。

■ 関連

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

ELB配下のApacheでremote_ipを使う

表題の通り。メモ。

■ 環境

  • Apache httpd 2.4.25
  • Amazon Linux
  • AWS

■ remote_ip

ELB等、本来のアクセス元が”X-Forwarded-For“に入っている場合の対処。

mod_remoteip – Apache HTTP Server Version 2.4
https://httpd.apache.org/docs/current/mod/mod_remoteip.html

これが最近はデフォルトで入っている。

httpd.conf“の下記行を追記する。

RemoteIPHeader X-Forwarded-For

また下記の行を書き換えれば良い。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

%h“の箇所を”%a“にすればいける。自身は”combined“とは別名で”%a“に書き換えたものを設定しておいた。お手軽だ。

以上。