Custom Search

JITAKU_SVR_Wiki

VirtualHostの設定

VirtualHostには「Nameベース」、「IPベース」の二種類がある。

/etc/apache2/vhosts.d/配下に~~~.confと言う名前で作成する。
※httpd.confでvhostをインクルードしている必要がある。
デフォルトで「vhost-ssl.template」、「vhost.template」の二種類のテンプレートが用意されている。

以下conf内容

NameベースのVirtualHost

NameVirtualHost 192.168.0.1:80

### http:hogehoge.com ###
#<VirtualHost 192.168.0.1:80>
<VirtualHost 192.168.0.1:80>
  ServerAdmin foo@hogehoge.com
  ServerName hogehoge.com
  ErrorLog /var/log/apache2/hogehoge.com/error_log
  CustomLog /var/log/apache2/hogehoge.com/access_log combined
  <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteLog /var/log/apache2/hogehoge.com/rewrite.log
      RewriteLogLevel 9
      RewriteRule (.*) http://192.168.0.2/$1 [P,L]
  </IfModule>
</VirtualHost>

### https:hogehoge.com ###
<VirtualHost 192.168.0.1:443>
  ErrorLog /var/log/apache2/hogehoge.com/error_log
  CustomLog /var/log/apache2/hogehoge.com/access_log combined
  ServerAdmin foo@hogehoge.com
  ServerName hogehoge.com
  <IfModule mod_rewrite.c>
      SSLEngine On
      SSLProxyEngine On
      SSLCertificateFile /etc/apache2/ssl.crt/hogehoge.com.2008.crt
      SSLCertificateKeyFile /etc/apache2/ssl.key/hogehoge.com.2008.key
      SSLCertificateChainFile /etc/apache2/ssl.crt/www.hogehoge.com-dvcacert.cer
      RewriteEngine On
      RewriteLog /var/log/apache2/hogehoge.com/rewrite.log
      RewriteLogLevel 9
      RewriteRule (.*) https://hogehoge.com/$1 [P,L]
  </IfModule>
</Virtualhost>


### http:ageage.com ###
<VirtualHost 192.168.0.1:80>
  ServerAdmin foo@hogehoge.com
  ServerName ageage.com
  ErrorLog /var/log/apache2/ageage.com/error_log
  CustomLog /var/log/apache2/ageage.com/access_log combined
  <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteLog /var/log/apache2/ageage.com/rewrite.log
      RewriteLogLevel 9
      RewriteRule (.*) http://192.168.0.2/$1 [P,L]
  </IfModule>
</VirtualHost>

tips:
Nameベースのvirtualhostを使用する場合は、confの一番上記に使用するIPアドレスを明記する。(Nameベースの宣言)
※場所は本来VirtualHostディレクティブ外であれば問題ないが、場所によってはエラーになる可能性があるので、トップに書くのがベター。

NameVirtualHost 192.168.0.1:80
IPアドレスの後ろにコロンを入れて使用するポートを書く。

NameVirtualHost *:80
上記の様に記述すると、サーバがデフォルトで持っているIPアドレスを参照することになる。IPアドレスを指定したい場合には明記する必要がある。

  • Nameベースの特徴
    ・NameベースのVirtualHostを使用すると、IPアドレスが1つでも複数のapacheを立てることができる。
    ・一般的にはSSLを使用することはできないとされている(※使用する方法もあるがここでは省略)


IPベースのVirtualHost

## http: geehageeha.com ###
<VirtualHost 192.168.0.10:80>
  ServerAdmin foo@hogehoge.com
  ServerName geehageeha.com
  ErrorLog /var/log/apache2/geehageeha.com/error_log
  CustomLog /var/log/apache2/geehageeha.com/access_log combined
  <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteLog /var/log/apache2/geehageeha.com/rewrite.log
      RewriteLogLevel 9
      RewriteRule (.*) http://geehageeha.com/$1 [P,L]
 </IfModule>
</VirtualHost>

### https: geehageeha.com ###
<VirtualHost 192.168.0.10:443>
  ErrorLog /var/log/apache2/geehageeha.com/error_log
  CustomLog /var/log/apache2/geehageeha.com/access_log combined
  ServerAdmin foo@hogehoge.com
  ServerName geehageeha.com
  <IfModule mod_rewrite.c>
      SSLEngine On
      SSLProxyEngine On
      SSLCertificateFile /etc/apache2/ssl.crt/geehageeha.com-2009.crt
      SSLCertificateKeyFile /etc/apache2/ssl.key/geehageeha.com-2009.key
      SSLCertificateChainFile /etc/apache2/ssl.crt/dvcacert-2009.cer
      RewriteEngine On
      RewriteLog /var/log/apache2/geehageeha.com/rewrite.log
      RewriteLogLevel 9
      RewriteRule (.*) https://geehageeha.com/$1 [P,L]
  </IfModule>
</Virtualhost>

tips:
基本的にはNameベースのVirtualHostの設定とほぼ同じ。
Nameベースでは、トップにNameVirtualHostの宣言をしたが、IPベースなので必要ない。
その代わり、virtualhostディレクティブにきちんと使用するIPアドレスを宣言すること。

apacheの起動(worker、preforkの見分け方)

/${APACHE}/bin/apachectl(またはapache2ctl) -V

# ./apachectl -V
Server version: Apache/2.2.11 (Unix)
Server built:   May 15 2009 13:08:50
Server's Module Magic Number: 20051115:21
Server loaded:  APR 1.3.3, APR-Util 1.3.4
Compiled using: APR 1.3.3, APR-Util 1.3.4
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/home/daiwa/apache2"
 -D SUEXEC_BIN="/home/daiwa/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Server MPM: Prefork
と表記されていることを確認する。これが現在の起動もmodule。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-12-02 (日) 03:38:30 (1759d)