用apache搭建一個網頁,【Linux】apache虛擬主機實戰

 2023-12-25 阅读 38 评论 0

摘要:文章目錄前言一. 什么是虛擬主機二. 虛擬主機類型三. VirtualHost參數的意義四. 虛擬主機實戰1. 基于IP的虛擬主機a. 虛擬機原ipb. 添加臨時IPc.配置文件中添加虛擬主機d. 創建測試文件進行測試2. 基于端口的虛擬主機a. 修改配置文件b. 測試3. 基于域名的虛擬主機a. 修改配置

文章目錄

        • 前言
        • 一. 什么是虛擬主機
        • 二. 虛擬主機類型
        • 三. VirtualHost參數的意義
        • 四. 虛擬主機實戰
          • 1. 基于IP的虛擬主機
            • a. 虛擬機原ip
            • b. 添加臨時IP
            • c.配置文件中添加虛擬主機
            • d. 創建測試文件進行測試
          • 2. 基于端口的虛擬主機
            • a. 修改配置文件
            • b. 測試
          • 3. 基于域名的虛擬主機
            • a. 修改配置文件
            • b. 修改hosts解析
            • c. 測試
        • 總結

前言

前面的文章中,我們學習了apache的基本使用,apache的配置文件,以及使用apache實現LAMP的架構,并搭建博客,也探討了編譯LAMP實現架構的方式。

在我們之前的探討中,一直使用的是ip作為訪問網站的方式, 但事實上我們訪問百度,訪問其他網站都是訪問的域名,而非IP。 在討論寶塔面板的章節的時候,我們還使用了ip+端口號的形式訪問。

用apache搭建一個網頁,那么除了用ip或者ip加端口的形式訪問之后,還有別的方式嗎,今天我們就來聊一聊,虛擬主機的那些事。

一. 什么是虛擬主機

百度百科的定義是這樣的:

在一個Apache服務器上可以配置多個虛擬主機,實現一個服務器提供多站點服務其實就是訪問同一個服務器上的不同目錄一個服務器主機可以運行多個網站,每個網站都是一個虛擬主機

我們都知道Linux當中一切皆為目錄,那么我們訪問一個網站,到底訪問的是什么?
比如我們搭建好了dz論壇,訪問IP或者域名, apache配置文件里指定了路徑

在這里插入圖片描述上圖可以看出,當我們訪問bbs.zmkjedu.com的時候,實際上是訪問的黃色框里的路徑,默認訪問index.php

centos7搭建apache服務器?輸入網址的時候,也會默認帶著index.php
在這里插入圖片描述

到這里我們就明白了,當我們訪問網站的時候,我們其實是訪問了一個目錄里的文件。

那虛擬主機又是什么意思呢?

簡單點說,虛擬主機就是不同的訪問目錄里的文件。

在這里插入圖片描述
如圖所示當我們訪問www.zmkjedu.com和訪問bbs.zmkjedu.com的時候,訪問的路徑不一樣,所以訪問的文件就不一樣。

centos部署web項目、在這里插入圖片描述
上圖也是在apache的配置文件里面,但是路徑不同,訪問的是二級域名zh.zmkjedu.com

那么虛擬主機除了基于域名,還有什么樣的方式

二. 虛擬主機類型

Apache虛擬主機的實現方式有3種。

  • 基于IP的虛擬主機
  • 基于端口的虛擬主機
  • 基于域名的虛擬主機

三. VirtualHost參數的意義

<VirtualHost *:80>			#服務器ip和端口DocumentRoot "/var/www/html/"	 #站點目錄ServerName www.cq.com	#域名ServerAlias 			#給虛擬主機增加多個域名,上面網址的別名<Directory "/var/www/html">	#對根目錄行為的限制Options FollowSymLinks ExecCGI	#followsymlinks表示允許使用符號鏈接,默認為禁用AllowOverride None 	 #表示禁止用戶對目錄配置文件(.htaccess進行修改)重載,普通站點不建議開啟Order allow,deny		#是否顯示列表 (在發布項目后一般是不啟用,對于這個配置,針對DocumentRoot在apachede的默認文件夾外的目錄生效。比如下面的例一 )Allow from all#Deny from all  	#拒絕所有的訪問Require all granted</Directory></VirtualHost>

需要注意的是,每次寫這個配置的時候,不需要所有的都寫,就像我上面的例子一樣,只寫三行也可以。

四. 虛擬主機實戰

1. 基于IP的虛擬主機

將不同的網站掛在不同的IP上,訪問不同的IP,所看到的是不同網站.因為一般服務器沒那么多公網IP,而且大家一般都是用域名訪問的,所以這種情況,我們做實驗的時候會用,內網測試的時候會用,公司一般不用

a. 虛擬機原ip
[root@gaosh-1 ~]# ifconfig |grep inetinet addr:192.168.1.22  Bcast:192.168.1.255  Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fed9:e81/64 Scope:Linkinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:Host
[root@gaosh-1 ~]# 
b. 添加臨時IP
[root@gaosh-1 ~]# ifconfig eth0:0 192.168.1.23
[root@gaosh-1 ~]# ifconfig |grep inet inet addr:192.168.1.22  Bcast:192.168.1.255  Mask:255.255.255.0inet addr:192.168.1.23  Bcast:192.168.1.255  Mask:255.255.255.0
c.配置文件中添加虛擬主機

apache基于域名虛擬主機配置?[root@gaosh-1 ~]# vim /etc/httpd/conf/httpd.conf

在這里插入圖片描述

方便復制版

<VirtualHost 192.168.1.22:80>DocumentRoot /var/www/html/zmgaosh22
</VirtualHost><VirtualHost 192.168.1.23:80>DocumentRoot /var/www/html/zmgaosh23
</VirtualHost>

[root@gaosh-1 ~]# service httpd restart

d. 創建測試文件進行測試
[root@gaosh-1 ~]# mkdir -p /var/www/html/zmgaosh22
[root@gaosh-1 ~]# mkdir -p /var/www/html/zmgaosh23[root@gaosh-1 ~]# echo '192.168.1.22 我是高勝寒22' > /var/www/html/zmgaosh22/index.html
[root@gaosh-1 ~]# echo '192.168.1.23 我是高勝寒23' > /var/www/html/zmgaosh23/index.html
[root@gaosh-1 ~]# 
測試:
[root@gaosh-1 ~]# elinks -source 192.168.1.22
192.168.1.22 我是高勝寒22
[root@gaosh-1 ~]# elinks -source 192.168.1.23
192.168.1.23 我是高勝寒23
[root@gaosh-1 ~]# 
2. 基于端口的虛擬主機
a. 修改配置文件
[root@gaosh-1 ~]# vim /etc/httpd/conf/httpd.conf
Listen 80
Listen 81<VirtualHost 192.168.1.22:80>DocumentRoot /var/www/html/zmgaosh22
</VirtualHost><VirtualHost 192.168.1.23:81>DocumentRoot /var/www/html/zmgaosh23
</VirtualHost>
b. 測試
[root@gaosh-1 ~]# service httpd restart
[root@gaosh-1 ~]# elinks -source 192.168.1.22:80
192.168.1.22 我是高勝寒22[root@gaosh-1 ~]# elinks -source 192.168.1.23:81
192.168.1.23 我是高勝寒23
[root@gaosh-1 ~]# 
3. 基于域名的虛擬主機
a. 修改配置文件
<VirtualHost 192.168.1.22:80>DocumentRoot /var/www/html/zmgaosh22ServerName www.zmgaosh22.com
</VirtualHost><VirtualHost 192.168.1.23:80>DocumentRoot /var/www/html/zmgaosh23ServerName www.zmgaosh23.com
b. 修改hosts解析
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.22   www.zmgaosh22.com
192.168.1.23   www.zmgaosh23.com
c. 測試
[root@gaosh-1 ~]# service httpd restart[root@gaosh-1 ~]# elinks -source www.zmgaosh22.com
192.168.1.22 我是高勝寒22
[root@gaosh-1 ~]# elinks -source www.zmgaosh23.com
192.168.1.23 我是高勝寒23
[root@gaosh-1 ~]# 

總結

虛擬主機在配置基于域名和基于端口的用的比較多,需要熟練掌握。
我是高勝寒,一個在教培行業不忘初心的人。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/196456.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息