MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Apache - 仮想ホストのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Apache - 仮想ホスト
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == 1台のサーバを使って複数のドメイン名を使ったWebサーバとしての機能を提供する方法を記載する。<br> サーバが複数のインターフェースを持っていて、IPアドレスが複数割り当て可能な場合と、1つのIPアドレスでホスト名を見て振り分ける方法がある。<br> <br><br> == IPベースの仮想ホスト == IPベースとは、1台のサーバに複数のネットワークインターフェースカード(NIC)が付いていて別々のIPアドレスを持っている場合に、<br> それぞれのIPアドレスに対して仮想ホストを割り当てる。<br> <br> IPベースの仮想ホストを割り当てる場合には、VirtualHostを使う。<br> <syntaxhighlight lang="apache"> <VirtualHost IPアドレス1:ポート番号> ... ,,, </VirtualHost> <VirtualHost IPアドレス2:ポート番号> ... ... </VirtualHost> </syntaxhighlight> <br> より具体的に記載する。 例として、192.168.1.5と192.168.1.6という2つのIPアドレスが割り当てられているとする。<br> そして、DNSに対して、wwww.adminweb.jpを192.168.1.5に、www.officepro.jpを192.168.1.6を登録する。<br> <br> 1つのApacheで2つのホストに対する設定を行う場合は、httpd.confファイルに次のように記述する。<br> Apache2.2以降では、httpd.confではなく、http-vhosts.confに記述する。詳細は、下記の名前ベースの仮想ホストを参照すること。<br> <syntaxhighlight lang="apache"> <VirtualHost 192.168.1.5:80> ServerName www.adminweb.jp ServerAdmin hogehoge@adminweb.jp DocumentRoot "/var/www/html/adminweb_docs" CustomLog logs/adminweb.access.log common ErrorLog logs/adminweb.error.log </VirtualHost> <VirtualHost 192.168.1.6:80> ServerName www.officepro.jp ServerAdmin hogehoge@officepro.jp DocumentRoot "/var/www/html/officepro_docs" CustomLog logs/officepro.access.log common ErrorLog logs/officepro.error.log </VirtualHost> </syntaxhighlight> <br> IPアドレス毎に必要な設定を記述する。<br> 例えば、www.adminweb.jpにアクセスがあった場合は、192.168.1.5に記述された設定が有効となるため、<br> ドキュメントルート/var/www/html/adminweb_docs直下にあるコンテンツが返される。<br> <br> VirtualHostごとに個別の設定を記述できるので、必要な設定を記述しておく。<br> 最低限上記に記述したようなServerNameやDocumentRoot、そしてログ関係は個別に設定する。<br> その他の設定は、共通した設定にしても構わない。<br> <br> その他にも各ドキュメントルートへのアクセス権限の設定などが必要である。<br> 実際の設定例は、名前ベースの仮想ホストを参照する。<br> <br><br> == 名前ベースの仮想ホスト == 名前ベースの仮想ホストは、1つのIPアドレスで、クライアントからのリクエストに含まれるHostsヘッダを見てどのホストへアクセスするのかを判断する。<br> <br> ===== Apacheの設定 ===== まず、アクセス先のIPアドレスに対して、名前ベースの仮想ホストを設定していることを表すために、NameVirtualHostを設定する。<br> IPアドレスを固定で指定するか、または1つだけしかIPアドレスが無い場合には*を記述しても構わない。<br> <nowiki>*</nowiki>は、サーバに対する全てのIPアドレスと言う意味になる。<br> # 記述方法 NameVirtualHost IPアドレス:ポート番号 # 実際の設定例 NameVirtualHost 192.168.1.5:80 または NameVirtualHost *:80 <br> 次に、VirtualHostを使用して、ServerNameごとに個別の設定を記述する。<br> リクエストに含まれるHostsヘッダを参照し、ServerNameと一致するブロックを探す。<br> 一致したブロックが見つかった場合にはそのブロック内の設定が適用される。<br> <syntaxhighlight lang="apache"> <VirtualHost IPアドレス:ポート番号> ServerName wwww.adminweb.jp .... </VirtualHost> <VirtualHost IPアドレス:ポート番号> ServerName www.officepro.jp .... </VirtualHost> </syntaxhighlight> <br> より具体的に記載する。<br> wwww.adminweb.jpとwww.officepro.jpの2つのホストに対して、192.168.1.5が割り当てられているとする。<br> それぞれに対するアクセスがあった場合に、別の動作をさせたい場合には次のように設定する。<br> <br> <u>※注意</u><br> <u>下記で、*:80となっている箇所は、192.168.1.5:80と明示的にIPアドレスを指定しても構わない。</u><br> <syntaxhighlight lang="apache"> NameVirtualHost *:80 <VirtualHost *:80> ServerName www.adminweb.jp ServerAdmin hogehoge@adminweb.jp DocumentRoot "/var/www/html/adminweb_docs" CustomLog logs/adminweb.access.log common ErrorLog logs/adminweb.error.log </VirtualHost> <VirtualHost *:80> ServerName www.officepro.jp ServerAdmin hogehoge@officepro.jp DocumentRoot "/var/www/html/officepro_docs" CustomLog logs/officepro.access.log common ErrorLog logs/officepro.error.log </VirtualHost> </syntaxhighlight> <br> ===== DNSの設定 ===== まず、2つのホストに関するDNSの登録を行う。<br> ここでは、DNSの代わりにhostsファイルに次の記述を行う。<br> (hostsファイルについては、ホスト名によるアクセス設定(hostsファイル)を参照すること)<br> 127.0.0.1 www.adminweb.jp 127.0.0.1 www.officepro.jp <br> 次に、httpd.confファイルを設定する。<br> 仮想ホストに関する設定はApache2.2以降では、httpd-vhosts.confファイルに記述する。<br> <br> まず、httpd-vhosts.confファイルを有効にする。<br> httpd.confファイルでhttpd-vhosts.confを検索する。(デフォルトでは474行目付近に記述がある)<br> Includeの先頭に記述されている#を外して、httpd-vhosts.confを読み込むように設定する。<br> <syntaxhighlight lang="apache"> # 変更前 # Virtual hosts #Include conf/extra/httpd-vhosts.conf # 変更後 # Virtual hosts Include conf/extra/httpd-vhosts.conf </syntaxhighlight> <br> 次に、httpd-vhosts.confファイルを編集する。(Apacheをインストールしたディレクトリ¥conf¥extraにある)<br> 次のような記述がサンプルとして記述されている。(コメント行は省略している)<br> ここでは、次のように記述を変更する。<br> <br> <u>※注意</u><br> <u>httpd-vhosts.confファイルは、Includeによってhttpd.confファイル内に読み込まれる。</u><br> <u>そのため、上記でログのフォーマット名に指定しているcommonは、httpd.confファイル内で定義されたcommonフォーマットが利用される。</u><br> <syntaxhighlight lang="apache"> # 変更前 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.localhost DocumentRoot /www/docs/dummy-host.localhost ServerName dummy-host.localhost ServerAlias www.dummy-host.localhost ErrorLog logs/dummy-host.localhost-error_log CustomLog logs/dummy-host.localhost-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.localhost DocumentRoot /www/docs/dummy-host2.localhost ServerName dummy-host2.localhost ErrorLog logs/dummy-host2.localhost-error_log CustomLog logs/dummy-host2.localhost-access_log common </VirtualHost> # 変更後 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin dumy@adminweb.jp DocumentRoot "D:/Apache Group/Apache2.2/adminweb_docs" ServerName www.adminweb.jp CustomLog logs/adminweb.access.log common CustomLog logs/adminweb.error.log </VirtualHost> <VirtualHost *:80> ServerAdmin dumy@officepro.jp DocumentRoot "D:/Apache Group/Apache2.2/officepro_docs" ServerName www.officepro.jp CustomLog logs/officepro.access.log common ErrorLog logs/officepro.error.log </VirtualHost> </syntaxhighlight> <br> また、上記で設定したドキュメントルートをそれぞれ作り、別々のHTMLファイルを置く。<br> <br> 最後に、httpd.confファイルにて、この2つのドキュメントルートに対して適切なアクセス許可を設定する。<br> <syntaxhighlight lang="apache"> <Directory "/var/www/html/adminweb_docs"> Order allow,deny Allow from all </Directory> <Directory /var/www/html/officepro_docs"> Order allow,deny Allow from all </Directory> </syntaxhighlight> <br> まず、http://www.adminweb.jp/ にアクセスする。<br> www.adminweb.jp用のドキュメントルートに含まれるHTMLファイルが表示されることを確認する。<br> <br> 次に、http://www.officepro.jp/ にアクセスする。<br> www.officepro.jp用のドキュメントルートに含まれるHTMLファイルが表示されることを確認する。<br> <br> このように、1つのIPアドレスとApacheを使用して、複数のドメインを使ったホストに対して別々のページを返すことが出来るようになる。<br> <br><br> == 仮想ホストのエイリアスの設定 == 名前ベースの仮想ホストの設定が行われている時に、登録されてないホスト名でのアクセスがあった場合を考える。<br> <br> 例えば、DNS(またはhostsファイル)にて以下の設定がされていたとする。<br> 127.0.0.1 localhost 127.0.0.1 www.adminweb.jp 127.0.0.1 www.officepro.jp <br> それに対して、仮想ホストの設定が、www.adminweb.jpとwww.officepro.jpにしか行われていなかったとする。<br> <syntaxhighlight lang="apache"> NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin dumy@adminweb.jp DocumentRoot "/var/www/html/adminweb_docs" ServerName www.adminweb.jp CustomLog logs/adminweb.access.log common CustomLog logs/adminweb.error.log </VirtualHost> <VirtualHost *:80> ServerAdmin dumy@officepro.jp DocumentRoot "/var/www/html/officepro_docs" ServerName www.officepro.jp CustomLog logs/officepro.access.log common ErrorLog logs/officepro.error.log </VirtualHost> </syntaxhighlight> <br> この時、http://localhost/ に対してアクセスがあった場合、最初に登録されている仮想ホストの設定がデフォルトとして適用される。<br> <br> このような場合、仮想ホストの設定が行われていないホストに対して、デフォルト以外のホストの設定を適用させることが可能である。<br> ServerAliasを使用して、仮想ホストの設定に別名として登録する。<br> 複数のホスト名を登録したい場合は、空白で区切って続けて記述する。<br> # 記述方法 ServerAlias ホスト名1 ホスト名2 ... <br> http://localhost/ に対するアクセスをwww.officepro.jpの設定が適用されるように、www.officepro.jpに別名としてlocalhostを登録する。<br> <syntaxhighlight lang="apache"> NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin dumy@adminweb.jp DocumentRoot "/var/www/html/adminweb_docs" ServerName www.adminweb.jp CustomLog logs/adminweb.access.log common CustomLog logs/adminweb.error.log </VirtualHost> <VirtualHost *:80> ServerAdmin dumy@officepro.jp DocumentRoot "/var/www/html/officepro_docs" ServerName www.officepro.jp ServerAlias localhost CustomLog logs/officepro.access.log common ErrorLog logs/officepro.error.log </VirtualHost> </syntaxhighlight> <br> Apacheを再起動して、http://localhost/ にアクセスする。<br> エイリアスで設定が行われた www.officepro.jp の設定が適用されていることを確認する。<br> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Web]]
Apache - 仮想ホスト
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse