前言:
情景一:平時在我們開發的時候,一般項目都只存放在 localhost 指定的根目錄下,當有好幾個項目的時候,只能在根目錄下以不同的文件夾區分,特別的不方便。
情景二:平時在看教學視頻的時候,總是看到那些老師在單機下使用不同的域名,訪問的卻是本地的項目代碼,每當這時候我都會問,這個怎么實現的。
情景三:在最近去實習面試的時候,面試官問我如何在 apache 服務器上搭建多站點。我只能回答我不會。
為了解決上面的幾個問題,我決定把 apache 多站點配置這個知識點搞清楚。關鍵是搞懂 apache 虛擬主機,Apache的虛擬主機是一種允許在同一臺機器上,運行超過一個網站的解決方案。后面圍繞的就是 apache 虛擬主機展開的。
在本篇博客中我將介紹兩種方法來實現 apache 多站點的配置:
1、如何配置根據訪問的域名區分配置不通的站點?
(比如,訪問 www.49028c.com訪問的是 /home/www/jb51項目,訪問 www.wordpress.com 訪問的是 /home/www/wordpress 項目)
2、在相同域名地址的情況下,如何通過訪問不同的端口獲得不同的站點?
(比如,訪問 www.49028c.com訪問的是 /home/www/jb51項目,訪問 www.49028c.com:8080 訪問的是 /home/www/jb51_admin 項目(即 jb51的后臺管理系統))
一:根據訪問的域名區分站點
在這里我先介紹Ubuntu 系統下的配置,在來討論CentOS 下(因為我在學習過程中也是先 ubuntu,再配置 centos 的時候都是參考的 ubuntu 的配置)
Ubuntu 環境下:
我的環境是:
操作系統:Ubnutu 16.04 LTS
apache 服務:Apache/2.4.18 (Ubuntu)(使用 apache2 -v 命令獲取 )
在 Ubnutu 上,apache 服務叫 apache2,而不是 httpd(在 Centos 上叫 httpd),主配置文件為 /etc/apache2/apache2.conf,我們打開 /etc/apache2/apache2.conf,發現最后兩行為:
# Include the virtual host configurations:IncludeOptional sites-enabled/*.conf |
顯然 /etc/apache2/sites-enabled 下存放著有關虛擬站點(VirtualHost)的配置。經查看,初始情況下,該目錄下包含一個符號連接(軟鏈接,相當于快捷方式):
000-default.conf -> ../sites-available/000-default.conf |
這里又引出另外一個配置目錄:/etc/apache2/sites-available。這個目錄下放置了所有可用站點的真正配置文件,對于 Enabled 的站點,Apache2 在 sites-enabled 目錄建立一個到 sites-available 目錄下文件的符號鏈接。
/etc/apache2/sites-available 下有兩個文件:
000-default.conf default-ssl.conf |
/etc/apache2/sites-enabled/000-default.conf 鏈接的文件是 /etc/apache2/sites-available/000-default.conf,我們就以 /etc/apache2/sites-available/000-default.conf 文件為例,看看一個 VirtualHost 的配置是啥樣的(為了簡潔,所有的注釋我都去掉了):
新聞熱點
疑難解答