2012年9月3日 星期一

[Linux] Apache - VirtualHost within server different port(如何利用伺服器的port來架設多個site

此篇為筆記可能未整理完整概念,
剛好是因為遇到工作環境硬碟損壞的情形,
需要將所有的伺服器合併到同一台虛擬機上。(虛擬機架設於 Easy Cloud - powered by ezilla)
此篇筆記比較適合於您的DNS申請麻煩,
還未下來前您需要再這台機器上先佈置多個網站環境,所以,用port來分別多個不同site。


OS: CentOS 6.3 minimal
Software: Apache version 2.2.15
             

下面yourdomainname 可以替代為你的伺服器domainname(網址列上打的那串),或者是IP。
而Directory 的 /var/www/html/site808x都可以替換成你原先置放的網頁位子
例如 /var/www/html/yoursite
 
#此三行必加 用來增加apache聆聽主機上的port
Listen 8080 
Listen 8081
Listen 8082

NameVirtualHost yourdomainname:8080
NameVirtualHost yourdomainname:8081
NameVirtualHost yourdomainname:8082

#此處改成你想放置的網頁位子
#/var/www/html/site1
<directory "/var/www/html/site8080">
        Options FollowSymLinks Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
</directory>

<directory "/var/www/html/site8081">
        Options FollowSymLinks Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
</directory>

<directory "/var/www/html/site8082">
        Options FollowSymLinks Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
</directory>

# set DocumentRoot

<virtualhost yourdomainname:8080>
        ServerAdmin     your@email.com
        ServerName      yourdomainname:8080
#這裡也可以改成
#       ServerName      www.example.com
        DocumentRoot    /var/www/html/site8080
        ErrorLog        logs/site8080-error_log
        CustomLog       logs/site8080-access_log common

</virtualhost>

<virtualhost yourdomainname:8081>
        ServerAdmin     your@email.com
        ServerName      yourdomainname:8081
        DocumentRoot    /var/www/html/site8081
        ErrorLog logs/site8081-error_log
        CustomLog logs/site8082-access_log common
</virtualhost>

<virtualhost yourdomainname:8080>
        ServerAdmin     your@email.com
        ServerName      yourdomainname:8082
        DocumentRoot    /var/www/html/site8082
        ErrorLog logs/site8083-error_log
        CustomLog logs/site8083-access_log common
</virtualhost>
別忘了再檢查 iptables 是否有開設8080 - 8083 port
 
vi /etc/sysconfig/iptables
#新增下列三行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
新增完成後,將 iptables 重啟
 
service iptables restart
你就可利用 任何一種瀏覽器做測試了! [1]http://linux.vbird.org/linux_server/0360apache.php#www_adv_virtual
[2]http://httpd.apache.org/docs/2.2/vhosts/examples.html#port

沒有留言:

張貼留言