LoginSignup
0

IHS で defalte 設定

Last updated at Posted at 2017-07-30

DockerHub の ibmcom/ibm-http-server をベースに deflate の実験をした時のメモ

前提

.htaccess を使ってディレクトリーごとの設定として実験する。
コンテナー起動

  docker run -name ihs -h ihs -it -v "$PWD":/opt/IBM/HTTPServer/htdocs/s ibmcom/ibm-http-server bash

bash の画面になったらサーバー起動

/opt/IBM/HTTPServer/bin/apachectl start

設定ファイル、開くhtml文書の場所

http.conf : /opt/IBM/HTTPServer/conf
.htaccess : /opt/IBM/HTTPServer/htdocs/s
a.html : /opt/IBM/HTTPServer/htdocs/s

準備

コンテナで vi が使えないのでインストールする。

apt-get update
apt-get install vim
vim ~/.vimrc  # set number など設定をして保存
vim ~/.bashrc # bash の設定もついでにどうぞ

この状態をコンテナー再起動後も使いたいなら、ここで一旦コンテナーを止めてイメージを作成する。

(例)

docker commit ihs myihs

保存したら run する際に、ibmcom/ibm-http-server の代わりに保存したイメージ(myihs)を起動対象としてコンテナーを起動する。

ディレクトリごとの設定を有効にする

http.conf を編集。
セクションの中の AllowOverride を None から All に変更

http.conf
#    AllowOverride None
    AllowOverride All

mod_mime, mod_deflate を有効にする

viで開いて、モジュール名で検索して、下のようにコメントアウト行をコピーしてコメントを外す。

http.conf

#LoadModule mime_module modules/mod_mime.so
LoadModule mime_module modules/mod_mime.so

#LoadModule deflate_module modules/mod_deflate.so
LoadModule deflate_module modules/mod_deflate.so

モジュールの意味

mod_mime は AddOutputFilterByType ディレクティブを使用するのに必要。
mod_deflate は gzip する機能そのもの。

.htaccess を作る

一旦コンテナーから ^p^q で抜けてファイルを作る。

^p^q
### ここでホストに戻っている ###
vi .htaccess 

中身は次のような内容。
DirectoryIndex a.htmlを指定しているのはこのファイルが IHS に認識されているかどうかの確認用に、ファイル名省略時の URL で開くファイル名をデフォルトのindex.htmlから変更している。あとで実際に deflate が効くかどうかを試すための html をその名前(a.html)で作成する。

.htaccess
DirectoryIndex a.html

<IfModule mod_deflate.c>
     SetOutputFilter DEFLATE

     # Mozilla4系などの古いブラウザで無効、しかしMSIEは除外
     BrowserMatch ^Mozilla/4\.0[678] no-gzip
     BrowserMatch ^Mozilla/4 gzip-only-text/html
     BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

     # gifやjpgなど圧縮済みのコンテンツは再圧縮しない
     SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
     SetEnvIfNoCase Request_URI _\.utxt$ no-gzip

     # htmlやcssなどは圧縮
     AddOutputFilterByType DEFLATE text/plain
     AddOutputFilterByType DEFLATE text/html
     AddOutputFilterByType DEFLATE text/xml
     AddOutputFilterByType DEFLATE text/css
     AddOutputFilterByType DEFLATE application/xhtml+xml
     AddOutputFilterByType DEFLATE application/xml
     AddOutputFilterByType DEFLATE application/rss+xml
     AddOutputFilterByType DEFLATE application/atom_xml
     AddOutputFilterByType DEFLATE application/x-javascript
     AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>

(参考:Apacheのmod_deflateでコンテンツを圧縮してサイトを高速化する方法 )

終わりに

世の中の情報は Apache なり Apache2 の情報が多いが、一応 IHS のベースが Apache HTTP Server らしいので、同じように設定できたの巻、でした。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0