1、用apache如何實現單IP多域名
在你本地一般都是 分成目錄才存放
localhost/dz
localhost/phpcms
或者監聽多個埠,和ip對應多域名差不多
在apache的 http.conf 中配置虛擬機
在apache中根據域名不同
<VirtualHost *:80>
DocumentRoot "D:/www/baidu"
ServerAlias www.baidu.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/www/aaaa"
ServerAlias www.abc.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "D:/www/ddd"
</VirtualHost>
2、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
3、apache 下多個域名多個目錄 怎麼配置 SSL
Apache不同域名部署不同SSL證書,您需要滿足以下條件:
(1)apache 2.2.12以上版本
(2)openssl 0.9.8f以上版本
listen 443
<VirtualHost *:443>
ServerName 這里填寫域名
DocumentRoot /var/www/site
SSLEngine on
SSLProtocol all -SSLv2 -SSLV3
SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!aNULL:!eNULL
SSLCertificateFile /path/to/2_domain1.com.crt
SSLCertificateKeyFile /path/to/3_doamin1.com.key
SSLCertificateChainFile /path/to/1_root_bundle.crt
</VirtualHost>
<VirtualHost *:443>
ServerName 這里填寫域名
DocumentRoot /var/www/site2
SSLEngine on
SSLProtocol all -SSLv2 -SSLV3
SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!aNULL:!eNULL
SSLCertificateFile /path/to/2_domain2.com.crt
SSLCertificateKeyFile /path/to/3_doamin2.com.key
SSLCertificateChainFile /path/to/1_root_bundle.crt
</VirtualHost>
最後重啟Apache伺服器。
伺服器不支持的需要使用多域名或者通配符SSL證書。
4、懸賞100分求apache多域名綁定不同目錄
下面是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>段中,並把它放到配置文件的最前面就可以了。
認真讀完的話,你就知道怎麼做了
希望對你有幫助
5、Apache怎麼設置一個ip多個域名訪問
修改copyhttpd.conf文件 修改之後要重啟httpd服務. service httpd restart
NameVirtualHost 192.168.164.133:80 設置此處為你的伺服器ip和服務埠
第一個網站用來設置為ip直接訪問定位的文件夾, nofile文件夾里設置一個空白的index.html文件即可
Apache默認ip訪問直接定位於第一個網站.所以這里綁定的文件夾不能存放其它網站的文件!
6、如何為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
這樣的路徑,該路徑指向網站所在根目錄或子目錄。
7、Apache 、 tomcat 配置多域名
找到你tomcat下server.xml 並找到<Host xxxx標簽;
添加如下代碼:
<Host name=f1.abc.com appBase="f1" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false" />
<Context path="" docbase="C:\Program Files\Apache\Tomcate6.0\webapps" crosscontext="true" />
</Host>
<Host name=f2.abc.com appBase="f2" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false" />
<Context path="" docbase="C:\Program Files\Apache\Tomcate6.0\webapps" crosscontext="true" />
</Host>
注意上面 C:\Program Files\Apache\Tomcate6.0\webapps 替換成你TOMCATE的路徑!
主要思路就是把APP放到不同的文件夾來實現 多域名!
8、apache https多域名綁定
根據你提出的這種情況,實際上是因為你伺服器的獨立IP可以訪問所導致的,你將你內伺服器的對應埠的IP訪問禁止他即容可,第二段開始再配置正常的證書和域名,例如你將你伺服器的443埠的IP禁止訪問,配置如下:
<VirtualHost *:443>
DocumentRoot "${SRVROOT}/www/error" #指向一個錯誤頁的目錄
ServerName 8.8.8.8 #你伺服器的公網IP SSLEngine on
<Directory />
Require all denied
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "文件目錄2"
ServerName 域名2
SSLEngine on
SSLCertificateFile 證書2
SSLCertificateKeyFile 證書2
SSLCertificateChainFile 證書2
</VirtualHost>