セキュリティ
- POSTの制限値: LimitRequestBody
- デフォルトは0(無制限)のため、DoSアタックをされる可能性がある。
Server:ヘッダ: ServerTokens- この値を
ProductOnlyにすると、Server: Apacheとのみ表示される。 - これ自身がセキュリティ向上になるわけではないが、入れておいて損はない。
- この値を
HTTP -> HTTPへの昇格
以下のようにします。 RewriteCondはLet’s Encryptのための設定です。
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme-\challenge/
RewriteRule ^/?(.*) https://example.com/$1 [R=301,L]
</VirtualHost>
Proxy
Apacheの背後にTomcatがある時など、 プロキシを使ったときのエラー画面をデフォルトにするには、 ProxyErrorOverrideをOnにする。
ProxyErrorOverride On
ログ
標準で設定されているアクセスログフォーマットがあって、 それぞれCommonと、Combinedと呼びます。
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined
それぞれ以下のような意味があります1。
%h: リモートホスト名(デフォルトはHostnameLookupsがOffのため、IPアドレスになる。%l: ログ名(mod_identが存在してIdentityCheckがOnのときのみ。それ以外は-になる。%u: 認証したときはそのユーザ名。認証に失敗したときはいんちきの(bogus)ユーザ名になりうる。- 記載がないですが、認証していないときは
-になります。
- 記載がないですが、認証していないときは
%t: 時刻([18/Sep/2011:19:18:28 -0400]のような形式([日/月/年:時:分:秒 オフセット])%r: リクエストの最初の行- 記載されていないですが、
GET / HTTP/1.1などのHTTPヘッダが入ります。
- 記載されていないですが、
%s,%>s: ステータスコード。%sはオリジナルのリクエストのステータスコード%>sは最後のステータスコード。- 301でリダイレクトして200を返したときは、
%sは301、%>sは200が返ると思われます。
%b: レスポンスのサイズ(バイト)、ただしHTTPヘッダは除く。-のときは何も返していません。- Combinedのみ
%{Referer}i: リクエストヘッダReferer。%{User-agent}i: リクエストヘッダUser-agent。
リスト表示(DirectoryListings)
ファイルサーバなど、ディレクトリ以下をリスト表示する場合の機能。 ヘッダとフッタの設定も可能。
DirectoryListings - Httpd Wiki
CGI
昔懐かしい(?)CGIを動かす方法。
基本的には以下の設定が必要です。
- mod_cgiまたはmod_cgidが有効なこと
- AddHandler/SetHandlerによるCGIの設定
- Options ExecCGI
あとCGIスクリプト側の設定
- CGIスクリプトは実行パーミッションが必要
- CGIスクリプトまでのディレクトリのパーミッション
- Apacheの実行ユーザで実行権限があること2
- オーナー以外の書き込み権限がないこと
-
ディレクトリの実行権限なので、そのディレクトリへ移動する権限です。 ↩︎