導航:首頁 > IDC知識 > apache虛擬主機多個域名

apache虛擬主機多個域名

發布時間:2021-03-09 03:09:19

1、如何為Apache綁定多IP多域名

無論Windows主機還是Linux主機,在Apache接收處理前,首要要確保這些IP地址已經映射到APACHE服務上,也就是說,對要首先保證操作系統本身接受這些IP地址訪問,Windows綁定多IP參考前一篇文章(如何為Windows綁定多個IP和多個域名 ),Linux綁定多IP地址先自行搜索解決,以後再補充。

測試之前,確保域名已經解析到本伺服器上且已生效。

本文默認按照80埠配置,還可以通過同IP但不同埠來區分不同網站,該情況一般是用在主機管理上。舉個例子:可以使用http://192.168.1.100作為正常網址,而http://192.168.1.100:2020則可以用來做後台配置管理等。

綁定方法有很多種,比如虛擬綁定、單IP多域名綁定、多IP單域名綁定、多IP多域名綁定、埠識別綁定等等,而且每種綁定可能還有不同的實現方法,根據自己習慣和場合選擇使用。

一、Apache綁定單IP多域名

1、示例綁定:

IP地址192.168.1.100

比如:對應兩個域名http://chaodiquan.com和http://chaodiquan.cn(域名)

2、綁定過程

a、打開http.conf,該文件位置在apache/conf下面,直接用文本編輯器即可打開。

b、添加以下欄位,位置靠近ServerName 127.0.0.1或ServerName localhost:80下面附近,方便修改和理解。

view source
print?
1 <VirtualHost 192.168.1.100>

2 DocumentRoot D:/xampp/htdocs/chaodiquan.com

3 ServerName zhanhelp.com

4 </VirtualHost>

5 <VirtualHost 192.168.1.100>

6 DocumentRoot D:/xampp/htdocs/chaodiquan.com/wwwroot

7 ServerName chaodiquan.cn

8 </VirtualHost>

這個方法是對指定IP地址的主機比較適合,但是如果是動態獲取IP地址的主機就有問題了,則可以把<VirtualHost 192.168.1.100>統一修改為<VirtualHost *:80>,這樣設置後APACHE不再對IP區分,只根據ServerName和處理優先順序識別。比如很多虛擬主機要求使用CNAME解析域名,那麼該虛擬主機的IP可能會變化的,就無法使用上面的配置方法,還是<VirtualHost *:80>要更好用一些。

補充一下,如果是Linux主機,DocumentRoot欄位需要修改為類似:

usr/local/www/chaodiquan.com/

usr/local/www/chaodiquan.com/wwwroot

這樣的路徑,該路徑指向網站所在根目錄或子目錄。

c、此外還可以為每個域名指定單獨的錯誤日誌(ErrorLog)及用戶日誌地址(CustomLog)只需要把下面兩句添加到上述<VirtualHost ...></VirtualHos>欄位之間即可,示例如下(具體存儲地址可根據實際情況修改掉):

ErrorLog "logs/error.log"

CustomLog "logs/access.log" combined

d、重啟Apache服務即可生效。

二、Apache綁定多IP多域名

1、示例綁定

IP地址192.168.1.100/192.168.1.101
對應兩個域名http://chaodiquan.com和http://chaodiquan.cn

2、綁定過程

步驟同上文,還是打開httpd.conf,然後增加下面腳本。

view source
print?
1 <VirtualHost 192.168.1.100>

2 DocumentRoot D:/xampp/htdocs/chaodiquan.com

3 ServerName chaodiquan.com

4 </VirtualHost>

5 <VirtualHost 192.168.1.101>

6 DocumentRoot D:/xampp/htdocs/chaodiquan.cn

7 ServerName chaodiquan.cn

8 </VirtualHost>

這樣就是兩個IP地址對應兩個域名。實際上在上面的單IP地址綁定中,提到<VirtualHost *:80>這樣的設置方式也可以用來多IP訪問,只是只能使用ServerName來區分,而如果輸入對應的IP地址來訪問,APACHE只會顯示符合第一個優先順序網站(假設無埠區分條件下),因為它無法判斷IP地址與多域名之間的映射關系,所以使用明確的IP地址配置還是有點好處,支持直接輸入IP地址訪問,只是看起來不太好。

補充一下,如果是Linux主機,DocumentRoot欄位需要修改為類似:

usr/local/www/chaodiquan.com/

usr/local/www/chaodiquan.com/wwwroot

這樣的路徑,該路徑指向網站所在根目錄或子目錄。

2、apache多站點虛擬主機,每個域名一個日誌文件

參考 :http://httpd.apache.org/docs/2.2/logs.html

Piped Logs ,管道日誌。
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common

希望對你有用。

3、伺服器上的linux系統 apache怎麼配置多個域名解析

最簡單高效的方法如下: 1. 先打開Apache的配置文件httpd.conf,在這個文件, 找到這句:「#Include etc/extra/httpd-vhosts.conf」 (根據安裝路徑不同,上面的路徑會略有不同) 把前面的#去掉,即開啟了使用虛擬主機的功能;

4、用兩個域名指向apache下兩個虛擬主機行嗎?

指向同一個IP,虛擬主機綁定不一樣的域名就行了

5、apache 配置多域名需要改什麼

需要添加虛擬主機,配置文件應該是 apache目錄/conf/extra/httpd-vhosts.conf,這個文件中有示例,照著配一下即可,以下為一個簡單的例子,有以下幾項的簡單配置就可以運行了,如果需要別名、rewrite都可以加在里邊,
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/xyz/htdocs"
ServerName xyz.abc.com
<Directory "/home/xyz/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

然後在httpd.conf中把這個文件載入:Include conf/extra/httpd-vhosts.conf

6、apache 下多個域名多個目錄 怎麼配置 SSL

下面是apache 的文檔: 必須指定伺服器IP地址(和可能的埠)來使主機接受請求,這個可以用NameVirtualHost指令來進行配置。如果伺服器上所有的IP地址都會用到,你可以用"*"作為NameVirtualHost的參數。如果你打算使用多埠(如運行SSL)你必須在參數中指定一個埠號,比如"*:80"。請注意,在NameVirtualHost指令中指定IP地址並不會使伺服器自動偵聽那個IP地址。請參閱設置Apache使用的地址和埠一章獲取更多詳情。另外,這里設定的IP地址必須對應伺服器上的一個網路介面。 下一步就是為每個虛擬主機建立<VirtualHost>段。<VirtualHost>的參數與NameVirtualHost的參數必須是一樣的(比如說,一個IP地址或"*"代表的所有地址)。在每個<VirtualHost>段中,至少要有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容位於文件系統的什麼地方。 取消中心主機(Mainhost) 如果你想在現有的web伺服器上增加虛擬主機,你必須也為現存的主機建造一個<VirtualHost>定義塊。這個虛擬主機中ServerName和DocumentRoot所包含的內容應該與全局的ServerName和DocumentRoot保持一致。還要把這個虛擬主機放在配置文件的最前面,來讓它扮演默認主機的角色。 比如說,假設你正在為域名www.domain.tld提供服務,而你又想在同一個IP地址上增加一個名叫www.otherdomain.tld的虛擬主機,你只需在httpd.conf中加入以下內容: NameVirtualHost *:80 <VirtualHost *:80> ServerName www.domain.tld ServerAlias domain.tld *.domain.tld DocumentRoot /www/domain </VirtualHost> <VirtualHost *:80> ServerName www.otherdomain.tld DocumentRoot /www/otherdomain </VirtualHost> 當然,你可以用一個固定的IP地址來代替NameVirtualHost和<VirtualHost>指令中的"*"號,以達到一些特定的目的。比如說,你可能會希望在一個IP地址上運行一個基於域名的虛擬主機,而在另外一個IP地址上運行一個基於IP的或是另外一套基於域名的虛擬主機。 很多伺服器希望自己能通過不只一個域名被訪問。我們可以把ServerAlias指令放入<VirtualHost>小節中來解決這個問題。比如說在上面的第一個<VirtualHost>配置段中ServerAlias指令中列出的名字就是用戶可以用來訪問同一個web站點的其它名字: ServerAlias domain.tld *.domain.tld 這樣,所有對域domain.tld的訪問請求都將由虛擬主機www.domain.tld處理。通配符標記"*"和"?"可以用於域名的匹配。當然你不能僅僅搞個名字然後把它放到ServerName或ServerAlias里就算完了。你必須先在你的DNS伺服器上進行配置,將這些名字和您伺服器上的一個IP地址建立映射關系。 最後,你可以把其他一些指令放入<VirtualHost>段中,以更好的配置一個虛擬主機。大部分指令都可以放入這些<VirtualHost>段中以改變相應虛擬主機配置。如果您想了解一個特定的指令是否可以這樣運用,請參見指令的作用域。主伺服器(main server)范圍內的配置指令(在所有<VirtualHost>配置段之外的指令)僅在它們沒有被虛擬主機的配置覆蓋時才起作用。 這樣,當一個請求到達的時候,伺服器會首先檢查它是否使用了一個能和NameVirtualHost相匹配的IP地址。如果能夠匹配,它就會查找每個與這個IP地址相對應的<VirtualHost>段,並嘗試找出一個與請求的主機名相同的ServerName或ServerAlias配置項。如果找到了,它就會使用這個伺服器。否則,將使用符合這個IP地址的第一個列出的虛擬主機。 綜上所述,第一個列出的虛擬主機充當了默認虛擬主機的角色。當一個IP地址與NameVirtualHost指令中的配置相符的時候,主伺服器中的DocumentRoot將永遠不會被用到。所以,如果你想創建一段特殊的配置用於處理不對應任何一個虛擬主機的請求的話,你只要簡單的把這段配置放到<VirtualHost>段中,並把它放到配置文件的最前面就可以了。 認真讀完的話,你就知道怎麼做了 希望對你有幫助

7、如何在同一台vps上使用apache綁定多個域名(

我有兩個域名進行實際操作:fengzhongjincao.com和meiweirenqi.com,我希望兩個域名都由同一台VPS提供服務。

首先到DNS解析那裡設置正確的A記錄,例如

iicode的主機記錄為www A記錄 記錄值為182.254.*.*

fengzhongjincao.com的主機記錄為www A記錄 記錄值為182.254.*.*(這里的記錄值和上一個是完全一樣的,即同一台VPS)

然後只需要編輯/etc/httpd/conf/httpd.conf文件即可。

因為是基於域名的虛擬主機,因此要將NameVirtualHost *:80前面的#去掉使其生效!(最好檢查一下LoadMole rewrite_mole moles/mod_rewrite.so這一句,去掉前面的#使其生效)

然後在httpd.con最後加上虛擬主機的內容

<VirtualHost *:80>
ServerName www.fengzhongjincao.com #瀏覽器訪問www.fengzhongjincao.com的時候
DocumentRoot /var/www/html/www #royalchen的內容路徑
DirectoryIndex index.html #首頁
</VirtualHost>

<VirtualHost *:80>
ServerName www.meiweirenqi.com #瀏覽器訪問www.meiweirenqi.com的時候
ServerAlias meiweirenqi.com *.meiweirenqi.com
DocumentRoot /var/www/html/iicode #meiweirenqi.com的內容目錄
DirectoryIndex index.html
</VirtualHost>

最後重啟一下httpd服務即可!這樣就可以讓一台web伺服器綁定兩個域名了,多個域名的設置也是完全一樣的。

下面再稍微說下二級域名的設置。

其實也是完成一樣的,以我的fengzhongjincao.com為例,擁有blog,mail,home,code等多個二級域名。

首先也是設置正確的DNS解析,例如
home A 182.254.*.*
blog A 182.254.*.*(和上面那個是同一個)
一樣需要打開NameVirtualHost *:80

然後virtualHost的內容也是差不多的

<VirtualHost *:80>
ServerName home.fengzhongjincao.com
DocumentRoot /var/www/html/home
DirectoryIndex index.htm
</VirtualHost>

<VirtualHost *:80>
ServerName blog.fengzhongjincao.com
DocumentRoot /var/www/html/blog
DirectoryIndex index.PHP
</VirtualHost>

重啟httpd之後就可以了,需要注意的是,如果使用了*名字進行模糊匹配,則要將該匹配放到最後,因為apache是順序下來匹配的!

8、一個虛擬主機如何設置多個二級域名?

虛擬主機想綁定二級域名解決方案如下:
1、在網站根目錄新建個.htaccess文件,在此文件中加入以下語句:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?要綁定的域名$
RewriteCond %{REQUEST_URI} !^/目錄名/
# 不要改以下兩行.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /目錄名/$1
# 目錄名/ 後面是首頁文件index.php, index.html……
RewriteCond %{HTTP_HOST} ^(www.)?要綁定的域名$
RewriteRule ^(/)?$ 目錄名/index.php [L]
2、上面的整套語句是綁定一個子目錄,綁定多個子目錄,可以重復添加以上的全套語句。

9、在使用Apache網站伺服器時,如何實現多個不同域名的虛擬主機

在iis中搭建站點,不同的站點綁定不同的域名就可以實現了,不懂可以扣扣我,鄭州景安的vps,四線的,3m獨享,一年999
可以開多個網站,有需要可以扣扣我,全程指導

與apache虛擬主機多個域名相關的知識