2013-05-05 63 views
3

我正在嘗試爲我的EC2實例配置虛擬主機。我在我的EC2實例上使用ubuntu,在服務器上使用apache2。如何在AWS EC2上配置多個虛擬主機運行Ubuntu?

我有3個應用程序(基於Web)的在/ var/WWW 3個不同的文件夾: - 在/ var/WWW/APP_A - 在/ var/WWW/APP_B - 在/ var/WWW/mywebsite

我希望人們只能使用IP地址(我已將彈性IP附加到EC2實例)訪問app_A和app_B,如http://my.ip.address/app_Ahttp://my.ip.address/app_B中所示。至於/ var/ww/mywebsite中的應用程序,我希望人們能夠通過我的域名mywebsite.com訪問該應用程序。我已將域名指向我的EC2 IP地址(my.ip.address)。

我知道我必須創建虛擬主機才能實現這一點,但我真的很新。我一直試圖谷歌的解決方案,並嘗試了幾種解決方案,但保持失敗。

請告訴我如何正確設置一個虛擬主機,這樣我就可以達到我上面寫的目的。

回答

5

這很簡單,因爲你已經安裝了apache,你將能夠看到一個名爲/etc/apache2/sites-enabled/000-default的文件,它指向var內的www文件夾。這個想法是,阿帕奇將其作爲主要的配置文件,因此,你需要這樣您就可以定義爲許多.conf文件,你可能希望有這樣的事情:

/etc/apache2/sites-enabled/ 
├── 000-default -> ../sites-available/default 
└── subsystems 
    └── appA.conf 
    └── appB.conf 
    └── appMyWebSite.conf 

所以它更容易處理,因爲你有一切都會根據您的需要分割成幾個配置文件。

現在,那些必須具備的東西?這取決於你所需要的,但其實這就是你需要擁有的一切:

<Directory "/var/www/mywebsite.com/"> 
    Options Indexes Includes FollowSymLinks MultiViews +ExecCGI 
    AddHandler cgi-script cgi pl 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    DirectoryIndex index.cgi index.html 
</Directory> 

<VirtualHost *:80> 
    ServerName mywebsite.com 
    ServerAdmin [email protected] 
    SetEnv VAR_IF_YOU_NEED_ONE VALUE 
    RewriteEngine on 

    DocumentRoot "/var/www/mywebsite.com/" 

    LogLevel warn 
    ServerSignature Off 

    #And whatever you need take a look to apache documentation 
</VirtualHost> 

因此,您可以將您的域名到同一服務器的IP地址,Apache會處理,取決於這些域的名稱(即相同的IP爲您的所有域)

希望這會有所幫助。

+0

謝謝。這有助於。 – reflyh2 2013-05-18 16:29:47

+1

我認爲這個答案遺漏了最後一個關鍵步驟,創建一個符號鏈接,從'sites-enabled'啓動到'sites-available'中定義的任何新網站。無論如何,我必須這樣做。 – cdmo 2014-01-27 15:17:12

+0

@cdmo或者,如果可用,使用「a2ensite」命令,該命令爲您設置符號鏈接,並可能執行一小部分錯誤檢查。 – Desty 2014-07-16 14:24:54