httpd的簡單實用以及編譯安裝

httpd的配置文件

配置文件:

/etc/httpd/conf/httpd.conf    /etc/httpd/conf.d/*.conf

服務腳本:/etc/rc.d/init.d/httpd

腳本配置文件:/etc/sysconfig/httpd

模塊目錄: /etc/httpd/modules: 

鏈接文件   /usr/lib64/httpd/modules

主程序:

/usr/sbin/httpd: prefork        /usr/sbin/httpd.event: event       

/usr/sbin/httpd.worker: worker

日誌文件目錄:

/var/log/httpd

access_log: 訪問日誌

error_log: 錯誤日誌

站點文檔根目錄:  /var/www/html/p_w_picpaths/a.jpg

http配置文件簡要說明:

Listen指令
Listen指令設置服務器監聽的IP以及端口號,默認監聽服務器本機所有的IP地址的80端口。語法格式爲Listen [IP地址:]端口 [協議],其中IP地址與協議爲可選項,默認監聽所有IP,使用TCP協議。一個配置文件中可以多次使用Listen指令來開啓多個端口。

LoadModule指令
Apache HTTP Server的特色之一就是她的功能多數是以模塊方式加載的,但如果希望Apache動態加載模塊,需要在編譯Apache時通過--enable-so將mod_so以靜態方式編譯到Apache核心模塊中,LoadModule指令的作用就是加載模塊。語法格式爲LoadModule 模塊 模塊文件名稱,模塊文件一般位於ServerRoot指定目錄下的modules目錄中。

ServerName指令
ServerName指令設置服務器本機的主機名稱以及端口,對於URL地址的重定向很重要該指令設置Web服務對客戶端開放可見的文檔根目錄,也就是客戶端訪問網站的根路徑,默爲/usr/local/apache2/htdocs

路徑別名

站點根目錄:/www/html


HTTP搭建虛擬服務器:

configure腳本用來檢查系統環境、查找依賴文件、設置安裝路徑等操作,configure擁有很多參數,讀者可以通過./configure --help查看該腳本支持的所有參數。
下面是configure常用參數說明:
參數 描述
--prefix 指定Apache httpd程序的安裝主目錄
--enable-so 開啓模塊化功能,支持DSO(動態共享對象)
--enable-ssl 支持SSL加密
--enable-rewrite 支持地址重寫
--with-mpm 設置Apache httpd工作模式
--with-suexec-bin 支持SUID、SGID
--with-apr 指定apr程序絕對路徑

開始搭建虛擬主機

    虛擬主機是在一臺服務器上同時運行多個網站業務,Apache HTTP Server支持基於域名以及基於IP虛擬主機類型。在Apache配置文件中虛擬主機指令需要使用VirtualHost容器封裝。基於IP的虛擬主機可以根據不同的IP地址以及端口號定位不同的網站請求,但基於IP的虛擬主機需要獨立的IP地址定位連接的網站,而目前IP地址是互聯網的稀缺資源,所以很多時候我們更喜歡基於域名的虛擬主機,服務器可以根據客戶端訪問HTTP的頭部信息來實現網站的分離解析,客戶端可以使用不同的域名訪問位於同一IP地址的服務器資源。
    當客戶端請求到達後,服務器會根據<VirtualHost IP地址:[端口號]>參數匹配IP地址與端口號,IP地址可以使用*匹配服務器本地所有IP地址。接下來我們通過一個案例說明基於域名虛擬主機的實現方式,首先我們需要將主配置文件中Include conf/extra/httpd-vhosts.conf這樣功能開啓,默認該行爲註釋行,去除#符號即可。Include指令會將httpd-vhosts.conf文件視作爲配置文件的一部分。下面我們僅列出該配置文件中需要修改的部分

    所以說虛擬主機有三種不同的訪問路徑,分別是基於端口、ip、主機名。

    在使用虛擬主機之前要取消主服務器。即註釋掉主服務器的站點根路徑指定:DocumentRoot。

定義虛擬主機:啓用 NameVirtualHost  IP:端口 格式如下

 

<VirtualHost IP:PORT>

ServerName  虛擬主機名

DocumentRoot  虛擬主機根路徑

ServerAlias  

ErrorLog  錯誤日誌

CustomLog 訪問記錄

</VirtualHost>


之後使用語法錯誤檢查:service httpd configtest 沒有語法錯誤就在/var/www/目錄下建立虛擬主機的根目錄,以及在/var/log/htppd下建立錯誤日誌。

完成後啓動服務

#service httpd restart

https協議

https的ssl模塊。安裝使用 # yum install mod_ssl

https協議基於443端口

ssl協議是基於ip地址創建的,因此每個ip地址只能創建一個ssl會話。ssl協議需完成的工作如下:

交換協議版本號,選擇雙方都支持的加密方式,客戶端對服務器端實現身份驗證,最後是密鑰交換。

客戶端驗證服務器證書:證書是否在有效期,ca的可信度,證書完整性以及持有者的身份。

https的配置

1、安裝ssl協議模塊: # yum install mod_ssl

2、爲服務器端生成私鑰以及爲期提供證書:

wKioL1PoWt6DZxWYAAAgjC4UGdg927.png

wKiom1PoWg-Q2nKmAAAY6KxN_1I327.pngwKioL1PoW2Xy9KRxAAAdcx4nzY0780.png

wKiom1PoWmOCPthpAAAgjC4UGdg702.png

自建CA參考SSL協議與CA服務器的自建,把/etc/pki/CA/private中的cacert。pem導出修改後綴爲crt。然後安裝

3、配置使用https的虛擬主機

wKiom1PoYK-gn3mvAAAq5UxURhw657.png

wKioL1PoYcjTeRHQAAAtO9hiK_E208.png


4、重新加載配置以及測試

wKiom1PoYgqQKseuAAFgUgl2z3k162.png

新版本的httpd的編譯安裝

準備開發環境:

yum groupinstall -y "Server Platform Development"

yum groupinstall -y "Development tools"

yum install -y pcre-devel-7.8-6.el6.x86_64

編譯安裝httpd2.4所依賴的軟件包


1.安裝apr-1.5.0.tar.bz2

# tar xf ^Cr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install


2.安裝apr-util-1.5.3

ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-util-1.5.3.tar.bz2

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

# make && make install


.以上兩步編譯完成,現正式開始編譯httpd-2.4.9.tar.bz2

http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.9.tar.bz2

# tar xf httpd-2.4.9.tar.bz2

# cd httpd-2.4.9

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event

--prefix=/usr/local/apache 安裝路徑

--sysconfdir=/etc/httpd24 配置文件路徑

--enable-so 允許運行時加載DSO模塊

--enable-ssl 如果不加載將無法使用使用https

--enable-cgi 允許使用cgi腳本

--enable-rewrite 支持URL重寫機制

--with-zlib 支持網絡通用壓縮庫

--with-pcre 支持pcre

--with-apr=/usr/local/apr 指定apr的安裝路徑

--with-apr-util=/usr/local/apr-util/ 指定apr-util的安裝路徑

--enable-modules=most 啓用大多數常用的模塊

--enable-mpms-shared=all 啓用MPM所有支持的模式

--with-mpm=event 默認使用enevt模式

查看安裝後所生成的文件 extra目錄是2.4版新增目錄

# ls

extra  httpd.conf  magic  mime.types  original

# cd extra/

# ls

httpd-autoindex.conf  httpd-info.conf      httpd-mpm.conf                httpd-userdir.conf

httpd-dav.conf        httpd-languages.conf  httpd-multilang-errordoc.conf  httpd-vhosts.conf

httpd-default.conf    httpd-manual.conf    httpd-ssl.conf                proxy-html.conf

導出頭文件;以目錄鏈接的形式來實現

# ln -sv /usr/local/apache/include/ /usr/include/httpd

`/usr/include/httpd' -> `/usr/local/apache/include/'


輸出二進制程序

# vim /etc/profile.d/httpd24.sh

export PATH=/usr/local/apache/bin:$PATH

#. /etc/profile.d/httpd24.sh

# httpd -V    顯示httpd版本信息


導出man文件

# vim /etc/man.config

MANPATH /usr/local/apache/man

# man -M /usr/local/apache/man httpd


修改服務腳本;

修改服務前先把httpd關閉;apachect1 stop

vim /etc/init.d/httpd24.sh




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章