LAMP

Web:httpd有個功能模塊MPM(multi processing modules 多道處理模塊)

該模塊有兩種類型:

(1)thread    一個進程中包含多個線程;

(2)process  

基於線程有兩種類型:

1、prefork類型:完全基於進程的方法來實現,每個用戶的會話需要一個獨立的進程響應。

   工作模式:當web服務進來時,就會new一個httpd進程(如果有100個用戶請求就有100個進程響應),              由該進程產生一個父子進程,

2、worker類型:利用線程的能力來提供高併發的一種多通道處理模塊。

   工作模式:而對於worker模式有可能啓動2個httpd進程,當一個用戶訪問時就在這兩個進程負載均衡              的分配,對以上prefork類型來講是父子進程,而對於worker來講有進程和線程。

一、實踐部分:

     1、配置文件:/etc/httpd/

/etc/httpd/conf/http.conf   

配置文件說明:parameter   value

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

     2、網頁文件

/var/www/html

二、軟件安裝:

#yum list all httpd*

httpd.i386   服務端包

httpd-devel.i386   開發包

httpd-manual.i386   手冊

1、#yum install httpd 

注意:安裝完成後檢查IP和主機名稱是否正常解析,如果正常解析服務啓動應該就沒有問題。

/etc/hosts配置文件裏添加:

IP地址(192.168.0.12)   解析名稱(www.bac.com)  別名(www)

#hostname www.bac.com

#vim /etc/sysconfig/network

$HOSTNAME=www.bac.com

最後驗證一下解析情況,ping www.bac.com,如果正常解析,接下來即可直接啓動服務。


2、、#ls /etc/init.d |grep httpd

所以直接可以用#service httpd start 

#chkconfig httpd on 加入開機啓動項,即可以通過瀏覽器訪問主頁面;

如果不想訪問時看到默認主頁面,需#cd /etc/http/conf目錄下httpd.conf

以及#cd ../conf.d/目錄下welcome.conf

注意:

一旦修改配置文件需要service httpd reload一下。


3、網頁存放目錄:/var/www/html/

場景1:例如可否通過網卡多配置一個ip地址來訪問頁面

  #ifconfig  eth0:1 172.16.100.1/16 輸入該IP即可訪問;

  #netstat -tnlp 驗證80端口是否開啓

  #elinks 127.0.0.1 命令行模式下訪問

  #grep Section !$

ab: apache benchmark

   -c 模擬多少個客戶端用戶數訪問

   -n 請求數。

例如:ab -c 100 -n 1000 http://192.168.0.151/index.html

在本機電腦輸入監控命令:watch -n.5'(刷新次數)  ps aux|grep httpd 動態的監控

/etc/http/conf/httpd.conf配置文件詳解:

ServerRoot  "/etc/httpd/" 根目錄存放。

PidFile: 服務器用於記錄啓動時進程ID的文件,所有的PID進程存放/var/run。

Timeout:定義tcp三次握手的時間,特定於http協議而言,用戶的請求發來了、也響應了;等待用戶再繼續發,此時tcp                  還沒有端口,啥時候斷開呢?就是這個時間。

Keeplive:是否啓用保持連接。

Prefork MPM   多道處理模塊。

  •   <LfModule Prefork.c>  Start Servers    8      服務個數(命令 ps aux | grep httpd查看是有8個)

  •                                    跟蹤一個進程方法:strace -p 12736 (這個是pid號)

  •      MinSpareServers  5     最少空閒

  •      MaxSpareServers 20      最大空閒

  •      ServerLimit           256

  •      MaxClients             256  允許最大併發個數;http是一種無狀態協議,用戶連接後就斷開,用戶同時連接進來的峯值

  •      MaxRequestsPerChild   4000

  •   <LfModule>

  • Worker MPM

  •  <LfModule Prefork.c> 

  • 其他參數與上面相同的省略。。。

  <LfModule>

Listen  80  監聽端口

Dcocument “/var/www/html”定義存放網頁的位置目錄

  •      注意:如果修改該目錄爲/www,需要修改selinux設置,

  •      方法:#setenforce 1

  •     #chcon -R --reference=/var/www/html /www

  •    #ll -dZ /www   查看

2類日誌:訪問日誌access_log和錯誤日誌err_log(均在/var/log/httpd/目錄下)

   

4、實現基於用戶的認證:AllowOverRide AuthConfig

AuthName "our site"

AuthType basic

AuthUserFile /etc/httpd/.htpasswd  

如何創建該文件呢?利用#htpasswd -c(初次創建) -m(md5加密方式存放)/etc/http/.htpasswd tom

  • #htpasswd -c -m /etc/http/.htpasswd tom

  • #htpasswd -m /etc/http/.htpasswd jerry

  • #tail /etc/http/.htpasswd查看剛剛創建的用戶

  • #service httpd configtest檢查語法錯誤(或httpd -t)

require user valid-user (如果指定用戶,就不需要valid-user;多個用戶用空格隔開)


Order allow,deny  --這裏的order是順序的意思,先允許再禁止。

Allow from 192.168.0.1/20 172.16.0.0/16 以上是基於IP訪問控制。


DirectoryIndex 網站的默認索引 index.html index.htm 注意次序

ErrorLog logs/error_log 相對於ServerRoot目錄

LogLevel warn  日誌級別

CustomLog logs/access_log Combined(包含common、referer、agent三種類型格式)

Alias /icons/ "/var/www/icons/" 路徑別名

ScriptAlias /cgi-bin/ "/var/www/cgi-bin" CGI格式動態網頁文件

AddDefaultCharset UTF-8  默認字符集

AddType application/x-compress .Z 添加文件支持的格式類型,後續需要添加php、asp、jsp

虛擬主機:一臺物理機上可以提供多個站點,每個頁面均有一個socket(IP+Port),實現方式有三種:

基於IP(首先1、要在Listen包含有地址 2、取消中心主機:DocumentRoot )

在配置文件添加以下:

<virtualHost  192.168.0.181:80>

        ServerName www.mma.com

     DocumentRoot "/web/magedu.com"

</virtualhost>

<virtualHost  172.16.100.1:80>

       ServerName www.b.org

     DocumentRoot "/web/b.org"

</virtualhost>

#語法檢查正確性httpd -t

基於Port(首先1、要在Listen包含有地址添加Listen 8080)

在配置文件添加以下:

<virtualHost  172.16.100.1:80>

        ServerName www.magedu.com

     DocumentRoot "/web/magedu.com"

</virtualhost>

<virtualHost  172.16.100.1:8080>

       ServerName www.b.org

     DocumentRoot "/web/b.org"

</virtualhost>

基於FQDN(可以直接叫基於主機頭或者域名)保證解析能夠正常以下兩個域名

/etc/named.conf添加區域文件,

zone “magedu.com” IN {

    type master;

    file “magedu.com.zone”

};

zone “b.org” IN {

    type master;

    file “b.org.zone”

};

再查看zone文件,/var/named/magedu.com.zone文件,添加A記錄即可

www.mma.com

www.b.org


第二部分:mysql的安裝

#yum install mysql-server -y

#service mysqld start ------啓動服務

#chkconfig mysqld on ------開機自動啓動









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