Apache之因此受到不少公司的親睞,正是他的開源代碼,跨平臺,模塊化設計,功能靈活,不只性能穩定,安全性也表現出色。下面咱們就一塊兒看看他安全性的表現,以及虛擬主機的配置。html
http服務的訪問控制:web
主機控制apache
在apache的主配置文件中,經過配置項 Order,Denyfrom,allowform 能夠限制客戶機ip或者是主機名的訪問,其中order 用來設置限制順序,denyfrom和allowfrom用來設置具體的內容。windows
Order: 決定匹配的順序瀏覽器
allow,deny 先容許 後拒絕 默認拒絕全部沒有明確容許的客戶端。安全
deny,allow 先拒絕 後容許,默認容許全部沒有明確拒絕的客戶端。服務器
能夠用all 來指定全部的地址。ide
下面我就來限制一下模塊化
這樣就除了192.168.1.1之外的全都會拒絕掉了。性能
表示沒有權限
用戶認證:
在主配置文件的「目錄」中
添加
AuthName:定義受保護的領域名稱,也能夠理解爲是提示信息。
AuthType:設置認證類型,Basic 表示基本認證。
AuthUserFile:設置用於保存用戶帳號,密碼的文件路徑。
Requite valid—user :要求認證文件中只有合法的用戶才能訪問其中 valid-user表示全部合法用戶,若要指定單個用戶 後面跟上指定的用戶名。
下面來測試一下
而後再用htpasswd 命令指定認證文件和用戶以及密碼
-c 是建立認證文件 後面跟上用戶名robin
第二次建立用戶的時候就不用加-c 了 由於文件已經存在了 否則會提示 覆蓋操做
能夠看出如今有兩個用戶 以及加密的密碼。
訪問一下
提示要認證
Robin用戶已經成功登錄
否側提示沒有認證成功
以上都是體現了Apache的安全性方面,接下來是怎麼樣構建虛擬主機
什麼是虛擬web主機, 虛擬web主機就是在同一臺服務器中運行多個web站點,每一個站點並非徹底佔有整個服務器。所以稱爲 ‘虛擬的web’主機,經過虛擬主機能夠大大減小web站點的成本和維護費用。
不管是微軟的IIS網站服務,仍是Apache 以及後面要研究的Nginx 構建虛擬主機的方法無外乎三種方法:
基於域名: 服務器的一個ip對應多個不一樣的域名。
基於ip地址:每一個虛擬主機的域名不一樣,切對應的ip也不同,也就是說,一臺服務器上有多個ip地址。
基於端口:咱們知道http 是監聽的80 端口,若是咱們將不一樣的虛擬主機監聽的端口都不同的話 也可以實現虛擬主機, 可是客戶端訪問的時候要指定端口訪問,由於瀏覽器默認訪問服務器的80端口。
Apache配置虛擬主機的主要配置文件除了以前的httpd.conf以外,還有就是httpd-vhosts.conf 默認是放在Apache安裝目錄下的conf/extra/ 下
下面就來操做一下
顯示基於域名 的
由於是靠域名範文 就要有域名解析 這裏由於環境問題 我就把兩個域名直接寫在hosts文件當中了 同一個ip對應不一樣的域名
域名問題解決了 還有網頁文件的問題 我就手工寫兩行網頁文件
mkdir 建立了兩個站點的根目錄 echo 命令是向index.html 默認文檔中寫入內容
最後就是配置兩個配置文件了
先是 httpd的主配置文件 要讓他支持虛擬主機的功能 。
默認這一項是註釋掉的 如圖
取消他的註釋 重啓服務便可
另外一個就是 httpd-vhosts.conf配置文件了 這裏的默認位置如圖:
通常在配置虛擬主機的時候 主要配置的是這幾個方面的內容
監聽地址: 包括 ip 端口號 由NameVirtualHost 配置項指定
虛擬主機區域:其中包括主機名稱 網頁更目錄,管理員郵箱 以及log方面
目錄權限:爲每個虛擬主機所在的目錄配置訪問權限。
httpd—vhosts.conf 文件中默認有虛擬主機的示例,咱們只要稍做改動便可
NameVirtualHost:指定要全部虛擬主機要監聽的地址和端口 * 表明全部
<VirtualHost *:80>
……
…… 省略
</VritualHost> : 虛擬主機區域,不一樣的區域就以這個標誌區分
ServerAdmin : 指定管理員郵箱
DocumentRoot:指定網頁的根目錄
Server-Name:指定網站名稱
ServerAlias:網站的別名
Errolog: 錯誤日誌存放位置
CustomLog:訪問日誌存放位置 common 格式爲通用
知道這些參數做用以後 就根據剛纔建立的網頁和網頁目錄修改
而後重啓服務 瀏覽器訪問
百度
51cto
好了 而後是根據端口作虛擬主機
只要把建立虛擬主機三種方法的原理弄明白,就很好配置了,只須要繼續作改動就能夠
先改動httpd.conf主配置文件 由於他默認只監聽了80 端口 因此要添加 這裏我添加了51端口 (要保證這個端口沒有被其餘的服務所佔用)
虛擬主機方面也要更改
另外 建議httpd-vhosts.conf 中默認監聽的80 給他註釋掉 有每一個虛擬主機中的配置決定監聽的地址
瀏覽器訪問
哦了
關於基於ip的配置方法就不詳細解釋了 他並非最經常使用的,緣由是公網的ip造價高,小公司用不起啊!Apache就介紹到這吧。有時間在介紹下windows下Apache的配置。(其實前面博客已經稍稍介紹了一點了 )
Ps:我今天微博添加了一些比較冷門的音樂,有興趣的能夠多串串。