1. 程式人生 > >linux 下的Apache 服務

linux 下的Apache 服務

        Apache HTTP Server 專案是在Windows 與UNIX 等平臺上都可以執行的跨平臺開源HTTP 伺服器軟體,該專案的目標是提供安全、高效、可擴充套件的HTTP 服務。Apache httpd 自從1996 年釋出以來,如今已經成為世界排名第一的Web 伺服器軟體。Apache httpd 最新的穩定版本為2.4.4。安裝Apache httpd 軟體可以選擇原始碼安裝或二進位制資料包安裝,但由於原始碼安裝是可以定製的一種安裝方式,這種安裝方式的靈活性比較大,可以滿足企業對各種環境的不同需求。

        Apache HTTP Server 非常重要的特性是它採用了模組化設計模型,Apache 模組分為靜態模組與動態模組,靜態模組是Apache 最基本的模組,是無法隨時新增與解除安裝的模組,靜態模組在編譯軟體時設定。動態模組是可以隨時新增和刪除的模組,這樣的設計使得企業部署Apache 時可以獲得最大的靈活性,每個企業都可以根據自己的平臺以及實際需求,安裝使用不同的模組功能。Apache 模組將被編譯為動態共享物件(DSO),這些動態共享物件獨立於httpd 程式,DSO 模組可以在編譯Apache 是新增,也可以在後期隨時通過Apache Extension Tool (apxs)工具編譯新增模組。Apache HTTP Server 軟體安裝完成後可以使用httpd -M 命令檢視模組載入清單。

一、Apache 的安裝部署

1. 檢視各網站的服務軟體型別

使用curl -I 命令

2. Apache 的安裝

軟體安裝

Apache 手冊安裝

然後開啟服務,同時使服務開機自啟動

檢視服務預設埠:80

服務預設日誌目錄:/etc/httpd/logs

預設釋出目錄與預設釋出檔案:/var/www/html/index.html

3. 更改防火牆配置,使防火牆永久允許http 服務

檢視防火牆資訊

圖形方式修改:

設定為永久

加入http 、 https

然後重新載入服務

再次檢視防火牆資訊,發現http 和https 已經被允許

命令方式:

4. 測試

編輯預設釋出目錄下的預設釋出檔案:/var/www/html/index.html

在瀏覽器中輸入ip 地址進行測試

還可從其他網站下載html 檔案進行測試

先下載網頁檔案

並將下載好的網頁檔案更名為 index ,移動到預設釋出目錄下,進行測試

5. 檢視Apache 手冊

下載好的手冊僅支援英文,若想檢視中文手冊,可登入官網檢視

6. apache 的基礎資訊

主配置目錄與主配置檔案:/etc/httpd/conf/httpd.conf

自配置目錄與自配置檔案:/etc/httpd/conf.d/*.conf

預設安全上下文:httpd_sys_content_t

服務預設日誌目錄:/etc/httpd/logs

預設釋出目錄與預設釋出檔案:/var/www/html/index.html

二、服務引數的修改

1. 修改服務埠

進入主配置檔案進行修改

重啟服務,然後檢視埠,發現埠已經修改

若是改成其他埠,則可能會報錯

這是因為該埠沒有被服務所支援

只需用過設定selinux ,將該埠開放給該服務即可

更改完埠號後,還無法訪問該埠,還需在防火牆中設定相應的資訊

然後即可訪問該埠

2. 更改預設釋出檔案

進入主配置檔案進行修改

在此處新增檔名,服務按順序訪問檔案,預設第一個為釋出檔案,若為找到,則會將第二個作為釋出檔案

然後在預設釋出目錄下,建立westos.html 檔案,重啟服務生效

3. 更改預設釋出目錄

先建立釋出目錄

再在釋出目錄下建立釋出檔案

同時還要修改釋出目錄即檔案的安全上下文

然後修改主配置檔案

重啟服務後生效

三、Apache 的虛擬主機

若想通過一個ip 地址訪問不同的釋出檔案,則需要設定虛擬主機

1. 為測試主機新增本地解析

2. 建立虛擬主機發布目錄及測試檔案

3. 修改子配置檔案

修改預設域名的子配置檔案

其中80為預設開啟的埠,DocumentRoot 為預設釋出目錄,CustomLog 為日誌目錄,其為相對路徑,其地址前要加/etc/httpd/,combined 為4種混合型別日誌

修改指定域名news.westos.com 的訪問配置檔案

其中ServerName 為指定站點名稱,Directory 中寫的是給釋出目錄授權訪問,同時使得所有使用者允許訪問

修改指定域名music.westos.com 的訪問配置檔案

配置檔案只需將news 的配置檔案中‘news‘ 的字串替換為‘music’ 即可

4. 測試

重啟服務

訪問預設域名

訪問news.westos.com

訪問music.westos.com

四、Apache 內部的訪問控制

1. 針對主機的訪問控制

修改預設域名的子配置檔案

其中Order 為列表讀取順序,後讀取的列表會覆蓋先讀取的內容

例如僅允許ip 為100的主機進行訪問,先讀取deny 再讀取allow ,利用allow 覆蓋deny

若是僅拒絕ip 為100的主機進行訪問,則先讀取allow 再讀取deny

2. 使用者方式的訪問控制

建立使用者認證資訊

首次建立使用者,引數要加‘c’

再次建立使用者時,只需向已有認證資訊中新增使用者即可,所以不用再加引數‘c’

檢視已建立的認證資訊

編輯預設域名的子配置檔案

其中,AuthUserFile 為認證資訊檔案的位置,AuthName 為認證提示,AuthType 為認證型別,Require user admin 為僅允許admin使用者認證,Require valid-user 為允許所有有效使用者認證

然後重啟服務

再次進入網頁需要認證

認證通過後方可瀏覽該網頁

五、Apache 支援的語言

Apache 支援html、php、perl 和python

1. php

安裝php 軟體包

在預設釋出目錄下編輯測試檔案

然後在瀏覽器中進行測試

2. 在cgi (通用閘道器介面中)編寫併發布perl 指令碼檔案

通過Apache 手冊檢視指令碼編寫方法

然後建立檔案

編寫指令碼語句,顯示日期時間

給該檔案增加可執行許可權

在命令列執行指令碼進行測試

在瀏覽器中輸入地址進行測試

3. 在自己建立的釋出目錄內釋出perl 指令碼檔案

在服務已有的cgi-bin 目錄下發布perl 指令碼檔案無需修改配置檔案,服務已經提供相應的介面,自動進行配置

若在自己的釋出目錄下發布,還需修改配置

在預設域名的子配置檔案中進行修改

建立釋出目錄與檔案

更改釋出目錄與檔案的安全上下文與cgi-bin 的一致

然後重啟服務進行測試

4. python

python 指令碼語言需要網路伺服器閘道器介面即WSGI

因此需要下載相關軟體提供支援

在cgi-bin 釋出目錄下建立釋出檔案

建立子配置檔案

在測試機上新增本地解析

重啟服務進行測試

六、https 超文字傳輸安全協議

1. 安裝服務相關軟體

安裝生成金鑰軟體

2. 進入軟體生成鑰匙

選擇加密長度

獲取隨機的加密字元(此時需要在控制檯敲擊鍵盤)

無需傳送認證請求

輸入資訊

此時在/etc/pki/tls 中便生成了證書和金鑰

3. 在配置檔案中替換證書和金鑰

4. 測試

重啟服務

然後在瀏覽器輸入https://www.westos.com 進行測試

然後在瀏覽器中獲取認證

然後再次訪問該頁面,網頁已被加密

還可在瀏覽器中檢視證書

七、設定https 虛擬主機並設定網頁重寫

1. 建立釋出目錄與檔案

2. 在測試機上加入本地解析

3. 編寫子配置檔案

其中^(/.*)$  為客戶在瀏覽器位址列中輸入的所有字元

https:// 為強制客戶加密訪問

%{HTTP_HOST} 為客戶請求主機

$1 表示^(/.*)$ 中的值

[redirect=301] 為永久轉換 ,302 為臨時重寫

4. 測試

在瀏覽器中新增認證,此時便可自動訪問加密的頁面了