1、如何在同一台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是順序下來匹配的!
2、求助,Apache上放多個域名卻自動跳轉到同一個網站
echo "NameVirtualHost *:80">>/etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart
3、如何為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
這樣的路徑,該路徑指向網站所在根目錄或子目錄。
4、apache綁定多ip多域名
<VirtualHost 127.0.0.1:80>
DocumentRoot "/home/www/site1"
ServerName 域名列copy表
</VirtualHost>
<VirtualHost 127.0.0.2:80>
DocumentRoot "/home/www/site2"
ServerName 域名列表
</VirtualHost>
按照上面的方法加就好了 ip 域名都可以是多個的。
如果你伺服器有多個公網IP,將127.0.0.1換成你的公網IP就好了。
5、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證書。
6、Apache怎麼設置一個ip多個域名訪問
修改copyhttpd.conf文件 修改之後要重啟httpd服務. service httpd restart
NameVirtualHost 192.168.164.133:80 設置此處為你的伺服器ip和服務埠
第一個網站用來設置為ip直接訪問定位的文件夾, nofile文件夾里設置一個空白的index.html文件即可
Apache默認ip訪問直接定位於第一個網站.所以這里綁定的文件夾不能存放其它網站的文件!
7、apache下怎樣配置一個IP對應多個域名
mkdir /etc/httpd/conf/vhost
echo "Include conf/vhost/*.conf">> /etc/httpd/conf/httpd.conf
echo "NameVirtualHost *:80">>/etc/httpd/conf/httpd.conf
8、伺服器上的linux系統 apache怎麼配置多個域名解析
最簡單高效的方法如下: 1. 先打開Apache的配置文件httpd.conf,在這個文件, 找到這句:「#Include etc/extra/httpd-vhosts.conf」 (根據安裝路徑不同,上面的路徑會略有不同) 把前面的#去掉,即開啟了使用虛擬主機的功能;