httpd.confによる設定
設定上書きの許可/禁止
.htaccessによる設定の上書きを許可または禁止する。AllまたはNoneを指定します。
AllowOverride All
public_html下で上書きを許可したい場合、まずデフォルトの設定を書き換える必要があるようです(インストール直後はとても厳しい設定になっています)。またバーチャルホストを設定している場合、以下のようにディレクティブを指定可能です。
<VirtualHost 192.168.0.1>
:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
:
AllowOverride All
デフォルトのエンコードを指定
AddDefaultCharset EUC-JP
EUC-JP,WINDOWS-1251,UTF-8,Shift_JIS
IPによるアクセス制限
Order deny,allow
Deny from all
Allow from 172.16.0.0/255.255.255.0 127.0.0.1
MIMEタイプの追加
AddType application/x-java-jnlp-file .jnlp
CGIの実行を許可する
まずAddHandlerを追加し、任意のDirectoryディレクティブ中にOptionsで実行を許可します(Apacheのドキュメントには、Directoryの設定はサブディレクトリにも適用される、と書いてありますが実際には動作しなかったため、ディレクトリを正規表現で記述しています)。
AddHandler cgi-script .cgi
<Directory ~ "/home/toyota/Datas/.*">
Options ExecCGI
その他(オプション)
Options Indexes FollowSymLinks
Indexes,ディレクトリ一覧の許可
FollowSymLinks,シンボリックリンク追跡の許可
ExecCGI,CGI(PHP)の実行を許可
バーチャルホストを定義
以下のように設定します。
NameVirtualHost 64.239.191.242:80
# デフォルトのホスト
<VirtualHost 64.239.191.242:80>
ServerName rabbit.lumber-mill.info
</VirtualHost>
# 通常のコンテンツとして利用
<VirtualHost xxx.lumber-mill.info:80>
DocumentRoot /home/xxx/public_html
ServerName xxx.lumber-mill.info
</VirtualHost>
# Tomcatへのプロキシとして利用
<VirtualHost yyy.lumber-mill.info:80>
ServerName yyy.lumber-mill.info
ProxyPass / http://yyy.lumber-mill.info:8080/
ProxyPassReverse / http://yyy.lumber-mill.info:8080/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
バーチャルホストの設定を確認
バーチャルホストの設定を確認する。
# /usr/sbin/httpd -S
BASIC認証
認証を行いたいLocationに以下の設定を追加します。VirtualHost+Proxy環境下では、Proxyディレクティブ以下に追加することが可能です。
AuthType Basic
AuthName "Protected Area"
AuthUserFile /var/www/protected/.htpasswd
AuthGroupFile /dev/null
Require valid-user
<Proxy http://foo.com:8080/bar/*>
AuthType Basic
AuthName "Protected Area"
AuthUserFile /var/www/protected/.htpasswd
AuthGroupFile /dev/null
Require valid-user
</Proxy>
htpasswdコマンドを使ってユーザを作成します。
{{{
# htpasswd -c /var/www/protected/.htpasswd username
直接パスワードを指定することもできます。大量に設定する場合、便利です。
# htpasswd -b -c /var/www/protected/.htpasswd username pass
DIGEST認証
認証を行いたいLocationに以下の設定を追加します。
AuthType Digest
AuthName "Protected Area"
# AuthDigestDomain /protected/
# AuthDigestFile /var/www/protected/.htdigest
AuthUserFile /var/www/protected/.htdigest
Require user username #もしくは、valid-user
※「AuthDigestFile」はApache2.2から使用できなくなったようです。
htdigestコマンドを使ってユーザを作成する。
# htdigest -c /var/www/protected/.htdigest 'Protected Area' username
WebDAVを使う
Location以下にDav Onを書くだけで完了しますが、通常は認証等の設定も状況に応じて行う必要があります。また、日本語ファイルを扱えないなどの問題も当時はありました(mod_encodingのインストールで回避できるそうですが、副作用もあってうまく導入できませんでした)。いずれにせよ、相当古い情報ですので、参考に留めて下さい。
DavLockDB /usr/local/apache2/var/DavLock # Fedoraでは設定済み
<Location /foo>
Dav On
AuthType Basic
AuthName DAV
AuthUserFile user.passwd
<LimitExcept GET OPTIONS>
require user admin
</LimitExcept>
</Location>
URLの変更を通知する
[301 Moved Permanently]ステータスを返す方法です。
Redirect permanent / http://www.lumber-mill.info/
バーチャルホスト内でプロキシを使用する場合、以下のようにProxyディレクティブの下に記述します。ちなみに下記例では、「410 Gone」を返しています。
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName foo.com
ProxyPass / http://bar.com:8080/
ProxyPassReverse / http://bar.com:8080/
<Proxy *>
Order deny,allow
Allow from all
{strong:Redirect gone /abc.html}
</Proxy>
</VirtualHost>
ログの保存位置を変更する
バーチャルホストを定義している場合など、ログを分割して管理したい場合があります。以下のように指定します。
CustomLog logs/access_log_foo combined
プロキシの適用範囲を限定する
例えば主な処理はtomcatに任せる(ProxyPassで飛ばす)のだけれど、特定のディレクトリだけは別のリソースを使いたい、といった場合ProxyPassのURLに「!」を指定することで適用を解除できます。そうすると下記のようなAlias指定が有効になります。
ProxyPass /foo !
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
Alias /foo /var/www/html/foo
SSLを使う
SSLモジュールをインストールして再起動するだけ。特に何も設定していません。
# yum -y install mod_ssl
# service httpd restart
インストールが完了すると/etc/httpd/conf/ssl.confというファイルが生成されます。
tomcatのSSLポート(8443)へのプロキシとして利用する場合、以下の設定を行って下さい。
ssl.conf
SSLProxyEngine on
設定ファイルをチェックする
# apachectl configtest
或いは、
# service httpd configtest
ホストレベルのアクセス制御とユーザ認証との相互作用を指定する
ある特定のアドレス(ネットワーク)からのアクセスはそのまま許可し、それ以外にはユーザ認証をかける、といった指定をする場合には「Satisfy」ディレクティブを使い、以下のように記述します。
Require valid-user
Allow from 192.168.1
Satisfy Any
「Satisfy All」とすると規定の動作と同じく、全ての制限を満たさないとアクセスできなくなります(=許可済みホストからのアクセスで、かつ認証に成功した場合)。
参考リンク
${Unknown macro: link:http://httpd.apache.org/docs/2.0/}この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について