1. 程式人生 > >Apache2.4配置woker模式以及目錄屬性優化

Apache2.4配置woker模式以及目錄屬性優化

c語言 esc pcre ins water dev 主機名 添加圖片 .com

簡介

worker也是多路處理模塊(MPM),使網絡服務器支持混合的多線程多進程,由於使用線程來處理請求,所以可以處理海量請求,而系統資源的開銷小於基於進程的MPM,但是也使用了多進程,每個進程又有多個線程,以獲得基於進程的MPM的穩定性

工作方式

每個進程能夠擁有的線程數量是固定的,服務器會根據負載情況增加或減少進程數量,一個單獨的控制進程(父進程)負責子進程的建立。每個子進程能夠建立ThreadsPerChild數量的服務線程和一個監聽線程,監聽線程監聽接入請求並將其傳遞給服務線程處理和應答,同時Apache總是會維持個備用(spare)或是空閑的服務線程池,客戶端無須等待新線程或新進程的建立即可得到服務,一般父進程都是以root身份啟動,以綁定80端口;隨後,Apache以較低權限的用戶建立子進程和線程,而User和Group指令用於配置Apache進程的運行用戶。子進程要對網頁內容擁有讀權限,但應該盡可能限制權限

實驗環境

  • 系統環境:centos6.5
  • 服務器IP地址:192.168.100.103
  • yum掛載目錄:/mnt/sr0
  • 相關源碼包下載地址:百度雲下載 ??密碼:pko3

搭建步驟

一、準備工作

1、關閉防火墻及selinux

[root@Init5 ~]# chkconfig iptables off #隨開機關閉iptables
[root@Init5 ~]# vim /etc/sysconfig/selinux
技術分享圖片

[root@Init5 ~]# reboot #重啟生效

2、卸載以RPM方式安裝httpd相關包

[root@Init5 ~]# rpm -qa | grep "httpd"

技術分享圖片

[root@Init5 ~]# yum remove httpd #卸載httpd相關包

3、搭建DNS服務器

如果沒有搭建以上兩個服務的朋友,請查看我的其他帖子有詳細介紹
http://blog.51cto.com/11905606/2156944

二、搭建httpd服務

1、安裝gcc、gcc-c++、make、arp、arp-util、pcre等工具包

[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel #安裝C語言編譯器以及make

[root@localhost ~]# tar -zxvf apr-1.4.6.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/apr-1.4.6/
[root@localhost apr-1.4.6]# ./configure prefix=/usr/local/apr && make && make install

[root@localhost ~]# tar -zxvf apr-util-1.4.1.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/apr-util-1.4.1/
[root@localhost apr-util-1.4.1]# ./configure prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install

[root@localhost ~]# tar -zxvf pcre-8.10.tar.gz -C /usr/src #支持正則
[root@localhost ~]# cd /usr/src/pcre-8.10/
[root@localhost pcre-8.10]# ./configure prefix=/usr/local/pcre && make && make install

2、配置編譯安裝apache

[root@Init5 ~]# tar zxvf httpd-2.4.2.tar.gz -C /usr/src/
[root@Init5 ~]# cd /usr/src/httpd-2.4.2/
[root@Init5 httpd-2.4.2]# ./configure \
--prefix=/usr/local/httpd \
--with-apr=/usr/local/apr \
--with-pcre=/usr/local/pcre \
--enable-expires \
--with-mpm=prefork \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

參數解析:

prefix:指定安裝目錄
enable-expire:啟用mod_expires模塊(網頁緩存)
with-mpm=prefork:指定prefork工作模式
enable-so:啟用動態加載模塊支持,需要什麽功能可以動態加載
enable-rewrite:啟用網頁地址重寫功能,實現偽靜態
enable-charset-lite:默認字符集
enable-cgid:啟用CGID

[root@Init5 httpd-2.4.2]# make && make install #編譯及編譯安裝

3、添加系統服務

[root@Init5 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@Init5 ~]# vim /etc/init.d/httpd

第2、3兩行添加以下參數:

# chkconfig:2345 85 15
# description:Apache is a World Wide Web server.

[root@Init5 init.d]# chmod +x /etc/init.d/httpd
[root@Init5 init.d]# chkconfig --add httpd

4、建立軟鏈接,方便管理

[root@Init5 ~]# mkdir -p /etc/httpd
[root@Init5 ~]# ln -s /usr/local/httpd/conf/ /etc/httpd/ #優化配置文件路徑
[root@Init5 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ #優化命令路徑

5、修改配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf

修改以下參數:

ServerName www.bt.com:80 #填寫完全主機名
Listen 192.168.100.103:80 #監聽本地IP

6、啟動httpd服務

[root@Init5 ~]# service httpd start
[root@Init5 ~]# netstat -anpt | grep ‘:80‘
技術分享圖片

7、編輯默認首頁

[root@Init5 ~]# cp qingzi.jpg /usr/local/httpd/htdocs/ #將圖片拷貝到站點目錄下
[root@Init5 ~]# cd /usr/local/httpd/htdocs/ #進入站點目錄
[root@Init5 htdocs]# vim index.html

<html>
??<body>
????<h1>It works!</h1>
????<img src=‘qingzi.jpg‘ /> #首頁添加圖片
??</body>
</html>

8、測試首頁

技術分享圖片

三、配置woker工作模式

1、查看工作模式

[root@Init5 ~]# httpd -l
技術分享圖片

2、查看進程數

[root@Init5 ~]# lsof -i :80

lsof是一個列出當前系統打開文件的工具,可顯示系統打開的文件,因為lsof需要訪問核心內存和各種文件。
-i:列出端口或者協議的連接信息

技術分享圖片

3、使用ab工具進行壓力測試

[root@Init5 ~]# ab -n2000 -c1000 www.bt.com/index.html
技術分享圖片

4、編輯主配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
技術分享圖片

5、編輯MPM配置文件

[root@Init5 ~]# vim /etc/httpd/conf/extra/httpd-mpm.conf
技術分享圖片

6、再次使用ab工具進行壓力測試

[root@Init5 ~]# ab -n2000 -c1000 www.bt.com/index.html
技術分享圖片

7、再次查看進程數

[root@Init5 ~]# lsof -i :80
技術分享圖片

四、目錄屬性優化

1、查看主配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
技術分享圖片

2、進入站點目錄,編輯測試文件

[root@Init5 ~]# cd /usr/local/httpd/htdocs/ #進入站點目錄
[root@Init5 htdocs]# mv index.html index.html.bak #將默認首頁進行改名,達到服務器無法識別默認首頁的目的
[root@Init5 htdocs]# echo "<h1>123</h1>" > a.html #添加相應測試文件
[root@Init5 htdocs]# echo "<h1>456</h1>" > b.html
[root@Init5 htdocs]# echo "<h1>789</h1>" > c.html
[root@Init5 htdocs]# ln -s /etc/services test #添加一條軟鏈接

3、測試網頁

技術分享圖片

4、編輯主配置文件

[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
技術分享圖片

5、再次測試網頁

技術分享圖片

Apache2.4配置woker模式以及目錄屬性優化