中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Apache-httpd

一、HTTPD特性

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、梁河網(wǎng)站維護、網(wǎng)站推廣。

httpd:特性

1.事先創(chuàng)建進程:在請求來之前,創(chuàng)建進程監(jiān)聽,加快響應(yīng)速度

2.按需維持適當(dāng)?shù)倪M程

3.模塊設(shè)計,核心比較小,各個功能都可以按照模塊添加

4.支持多種方式的虛擬主機配置:

Socket IP:Port

1.基于IP的虛擬主機(如果一個server有多個ip,而在互聯(lián)網(wǎng)上,每個IP每年都需要一定的費用)

2.基于端口的虛擬主機(如果不是標準的80端口,那么別人無法知道到底使用的是啥端口)

3.基于域名的虛擬主機(比較好的選擇)

protocol://host:port/path/to/source

=================

Method URL version

header

body

=================

GET /download/linux.tar.bz2 HTTP/1.0

Host: www.harry.com

4.支持https協(xié)議(mod_ssl)

5.支持用戶認證

6.支持基于IP或主機名的ACL

7.支持每目錄的訪問控制

8.支持URL重寫

二、HTTPD安裝

1.rpm包

httpd:

/usr/sbin/httpd(MPM: prefork)

httpd: root,root(master process)

httpd: apache,apache(worker process)

/etc/rc.d/init.d/httpd (啟動腳本)

port:(http: 80/tcp)(https: 443/tcp)

/ec/httpd:工作根目錄,相當(dāng)于程序安裝目錄

/etc/httpd/conf:配置文件目錄

httpd.conf主配置文件(以段文件分散到conf.d目錄下,以include引入)

conf.d/*.conf

/etc/httpd/modules:模塊路徑(都是連接)

/etc/httpd/logs:->/var/log/httpd:日志目錄

日志文件有兩類:訪問日志access_log錯誤日志err_log

/var/www: 資源文件目錄

html :靜態(tài)文件路徑

cgi-bin:動態(tài)文件路徑

cgi: Common Gateway Interface httpd通過cgi和各個模塊進行通信

client --> httpd(index.cgi) --> spawn process(index.cgi) --> httpd --> client

perl, python, java(servlet,jsp), php

cgi工作原理:

1.一個動態(tài)請求到Web Server,Web Server判斷cgi類型,創(chuàng)建對應(yīng)的cgi進程來處理動態(tài)請求,并返回html給Web Server,Web Server響應(yīng)client。動態(tài)cgi進程銷毀

2.fast-cgi:cgi進程池,由master-workers模式

一個動態(tài)請求Web Server,Web Server和master進程通信由master分配給worker進程,來處理

這樣Web Server與cgi可以部署在不同Server上

動靜分離:

----->|------- | |------------|

|Apache|| 應(yīng)用服務(wù)器|

| 如果是靜態(tài)的,|

則直接返回

|

如果是動態(tài)的,

則請求應(yīng)用服務(wù)器------>||

| -------- |

httpd是不處理動態(tài)文件的,而是通過調(diào)用模塊,處理,并返回靜態(tài)文件

2.源碼編譯

三、Global配置

[root@hfdb0001conf]#pwd /etc/httpd/conf [root@hfdb0001conf]#grep"Section*"httpd.conf=>可以看出配置主要有三段。 ###Section1:GlobalEnvironment=>全局配置項 ###Section2:\'Main\'serverconfiguration=>主Server配置 ###Section3:VirtualHosts=>虛擬主機配置(與主Server配置不能同時生效)

ServerTokens OS

http://httpd.apache.org/docs/2.2/zh-cn/mod/core.html#servertokens

ServerTokens Major|Minor|Min[imal]|Prod|[uctOnly]|OS|Full

#超時時間 TCP相關(guān)的,如TCP第一次握手后,就不在請求了。

Timeout 120

KeepAlive Off#如果服務(wù)器的訪問不大,則需要打開長連接

MaxKeepAliveRequests 100

KeepAliveTimeout 15

#是否使用長連接(tcp連接每次都需要3次握手,而長連接,則第一次三次握手后,一直保持連接狀態(tài)),如果是KeepAlive On,則需要定義MaxKeepAliveRequests 100(即該連接打開后,最多能請求的資源數(shù),不能無盡的請求)。這樣一個用戶請求都會最多能請求100個。 KeepAliveTimeout 15.當(dāng)用戶擁有一個長連接,但是并不請求,15s后,即自我銷毀了。

#對于繁忙的Server可以降低KeepAliveTimeout的值,可以提高并發(fā)

#eg 當(dāng)?shù)谝粋€請求到來,獲取一個長連接,他最多能請求100個,到了后,就會斷開連接,重新排隊。這樣下一個請求就能回的連接,請求資源,不然,第一個請求永遠擁有連接,除非自我斷開。

MPM:Multi-Processing Modules(可以切換,通過配置文件修改)

當(dāng)并發(fā)請求時,Server是如何工作的

1.mpm_winnt

2.prefork(一個請求用一個進程響應(yīng))=>預(yù)先會生成多個進程,每個進程響應(yīng)一個請求

3.worker (一個請求用一個線程響應(yīng))=>生成多個進程,進程不處理,每個進程生成多個線程,每個線程來處理請求

多線程共享。當(dāng)同一個進程下的線程已經(jīng)打開了文件,其他線程和讀取,但是存在競爭。需要枷鎖。

4.event (一個進程處理多個請求)

[root@hfdb0001conf]#httpd-l=>查看所有的模塊,可以看到當(dāng)前只支持prefork模型 Compiledinmodules: core.c prefork.c http_core.c mod_so.c [root@hfdb0001conf]#rpm-qlhttpd|grepbin /usr/sbin/apachectl /usr/sbin/htcacheclean /usr/sbin/httpd=>是默認的,prefork /usr/sbin/httpd.event /usr/sbin/httpd.worker=>可以看出Server是支持worker,event的。 /usr/sbin/httxt2dbm /usr/sbin/rotatelogs /usr/sbin/suexec [root@hfdb0001conf]#httpd.worker-l Compiledinmodules: core.c worker.c http_core.c mod_so.c 我們可以修改配置文件,使得http.worker是默認的 [root@hfdb0001conf]#cat/etc/sysconfig/httpd #Configurationfileforthehttpdservice. # #Thedefaultprocessingmodel(MPM)istheprocess-based #\'prefork\'model.Athread-basedmodel,\'worker\',isalso #available,butdoesnotworkwithsomemodules(suchasPHP). #Theservicemustbestoppedbeforechangingthisvariable. # #HTTPD=/usr/sbin/httpd.worker ....

prefork:

<IfModuleprefork.c> StartServers8=>service啟動后,會創(chuàng)建8個進程 MinSpareServers5=>最小空閑進程(當(dāng)有4個請求后,會重新創(chuàng)建一個,保持最少5個) MaxSpareServers20=>空閑進程(當(dāng)100個進程空閑后,會被kill,至20個,即最多20個) ServerLimit256=> MaxClients256=>最多可以處理256個請求,多余的請求排隊MaxClients<ServerLimit MaxRequestsPerChild4000=>一個進程最多能響應(yīng)多少次請求(當(dāng)一個進程響應(yīng)請求后,空閑了,還沒有被kill,此時又有請求過來,并響應(yīng),那么該進程響應(yīng)次數(shù)就加1,當(dāng)達到4000后,無論如何都會被kill,再可能會生成新進程來響應(yīng)) </IfModule> [root@hfdb0001conf]#psaux|grephttpd=>可以看到初始是8個httpd root131800.00.01757243712?Ss03:520:00/usr/sbin/httpd=>主進程,不處理請求 apache131820.00.01758603032?S03:520:00/usr/sbin/httpd apache131830.00.01758603036?S03:520:00/usr/sbin/httpd apache131840.00.01757242940?S03:520:00/usr/sbin/httpd apache131850.00.01757242940?S03:520:00/usr/sbin/httpd apache131860.00.01758602960?S03:520:00/usr/sbin/httpd apache131870.00.01758602964?S03:520:00/usr/sbin/httpd apache131880.00.01757242516?S03:520:00/usr/sbin/httpd apache131890.00.01757242516?S03:520:00/usr/sbin/httpd

worker:

<IfModuleworker.c> StartServers4=>初始生成進程數(shù),到不夠是,會創(chuàng)建新的進程,并生成線程 MaxClients300 MinSpareThreads25=>最小空閑線程數(shù)(是所有的進程數(shù)的總和) MaxSpareThreads75=>空閑線程數(shù) ThreadsPerChild25=>每個進程最多能生成多少個線程 MaxRequestsPerChild0=>每個進程最多能響應(yīng)多少個響應(yīng),由于是有線程響應(yīng)的,則不做控制,即為0 </IfModule>

Listen80 => 監(jiān)聽該Server上所有的80 端口

Listen 8080=>可以監(jiān)聽多個端口

Listten x.x.x.x:8181=> 可以指定IP:端口

Includeconf.d/*.conf=>加載conf.d目錄下所有conf文件(以段文件形式)

LoadModulepath/to/...so

Userapache

Groupapache=>所有的httpd進程,只有一個是root:root權(quán)限啟動的,其他的都是apache:apache權(quán)限

四、虛擬主機配置概述

Socket IP:Port

1.基于IP的虛擬主機(如果一個server有多個ip,而在互聯(lián)網(wǎng)上,每個IP每年都需要一定的費用)

IP1:80

IP2:80

....:80

2.基于端口的虛擬主機(如果不是標準的80端口,那么別人無法知道到底使用的是啥端口,互聯(lián)網(wǎng)上不好適用)

IP:80

IP:8080

3.基于域名的虛擬主機(比較好的選擇)

IP:80

主機名不同(不同的主機名會被解析到同一個IP和端口上)

www.harry1.com=>都會被解析到IP:80上

www.harry2.com=>都會被解析到IP:80上

通過HTTP協(xié)議的請求頭的host: 來判斷到底訪問的那臺主機

ServerName:www.harry1.com

ServerAlias:www.harry11.com=> 當(dāng)想www.harry1.com和 www.harry11.com是同一個Server時

DocuemtRoot/www/harry1.com/

<Directoy "/www/harry1.com">=> 本地文件系統(tǒng)的路徑

.....

.....

</Directoy>

當(dāng)訪問 http://www.harry1.com/images => 自然會解析到/www/harry1.com/這個目錄下的images

Alias=> 當(dāng)想再訪問http://www.harry1.com/test/images 也要解析到 之前的images目錄,此時需要別名

ErrorLog

CustomLog

<Location "/images">=> URL路徑,可以再訪問該路徑的時候,作限制

<Location>

ScriptAlias

<VirutalHost HOST>

</VirtualHost>

虛擬主機和中心主機是不能使用的,注釋中心主機的DocumentRoot即可

五、虛擬主機配置

1.基于IP

Host:

ip1:80

ip2:80

注釋httpd.conf的DocuemtRoot配置,即注釋中心主機配置 [root@hfdb0001conf]#pwd /etc/httpd/conf 在conf.d目錄下新建配置文件 [root@hfdb0001conf.d]#pwd /etc/httpd/conf.d [root@hfdb0001conf.d]#ll total12 -rw-r--r--1rootroot392Aug132013README -rw-------1rootroot227Oct3005:39virtual-ip.conf -rw-r--r--1rootroot299Aug22013welcome.conf [root@hfdb0001conf.d]#catvirtual-ip.conf=>前提是要有兩個ip <VirtualHost10.224.243.1:80> ServerNamewww.harry1.com DocumentRoot"/www/harry1.com" </VirtualHost> <VirtualHost10.224.243.2:80> ServerNamewww.harry2.com DocumentRoot"/www/harry2.com" </VirtualHost> 創(chuàng)建根目錄注意目錄權(quán)限755 [root@hfdb0001conf.d]#mkdir-p/www/{harry1.com,harry2.com} 創(chuàng)建index.html 分別訪問10.224.243.1:80和10.224.243.2:80=>會被解析到不同的目錄下

2.基于端口

Host:

ip:80

ip:8080

在conf.d目錄下新建配置文件 [root@hfdb0001conf.d]#pwd /etc/httpd/conf.d [root@hfdb0001conf.d]#ll total12 -rw-r--r--1rootroot392Aug132013README -rw-------1rootroot227Oct3005:39virtual-ip.conf-bak -rw-------1rootroot227Oct3005:39virtual-port.conf -rw-r--r--1rootroot299Aug22013welcome.conf [root@hfdb0001conf.d]#catvirtual-port.conf <VirtualHost10.224.243.1:80> ServerNamewww.harry1.com DocumentRoot"/www/harry1.com" </VirtualHost> <VirtualHost10.224.243.1:8080> ServerNamewww.harry2.com DocumentRoot"/www/harry2.com" </VirtualHost> 修改主配置,listen8080 分別訪問10.224.243.1:80和10.224.243.1:8080也會被解析到不同的目錄下

3.基于域名

serverName不同即可

在conf.d目錄下新建配置文件 [root@hfdb0001conf.d]#pwd /etc/httpd/conf.d [root@hfdb0001conf.d]#ll total12 -rw-r--r--1rootroot392Aug132013README -rw-------1rootroot227Oct3005:39virtual-ip.conf-bak -rw-------1rootroot227Oct3005:39virtual-port.conf-bak -rw-r--r--1rootroot299Aug22013welcome.conf [root@hfdb0001conf.d]#catvirtual-domain.conf===>domain需要被解析到該主機上,可以修改hosts可以DNS NameVirutalHost10.224.243.1:80 <VirtualHost10.224.243.1:80> ServerNamewww.harry1.com DocumentRoot"/www/harry1.com" </VirtualHost> <VirtualHost10.224.243.1:80> ServerNamewww.harry2.com DocumentRoot"/www/harry2.com" </VirtualHost> 分別訪問www.harry1.com和www.harry2.com也會被解析到不同的目錄下 注意:如果此時訪問的是10.224.243.1:80==>那么會被解析到第一個 每個虛擬主機可以定義自己的CustomLog,format,error等等

六、其他配置

1.目錄權(quán)限控制

針對某個IP不能訪問www.harry1.com [root@hfdb0001conf.d]#catvirtual-domain.conf===>domain需要被解析到該主機上,可以修改hosts可以DNS NameVirutalHost10.224.243.1:80 <VirtualHost10.224.243.1:80> ServerNamewww.harry1.com DocumentRoot"/www/harry1.com" <Directory"/var/www/harry1.com"> Optionsnone AllowOverridenone Orderdeny,allow=>注意指定了Order為denyallow,那么就只排除 Denyfrom{ip} </Directory> </VirtualHost> <VirtualHost10.224.243.1:80> ServerNamewww.harry2.com DocumentRoot"/www/harry2.com" </VirtualHost>

2. 身份驗證 轉(zhuǎn)http://www.cnblogs.com/loveCloud/archive/2012/01/12/2320636.html

一、編輯虛擬目錄配置文件,設(shè)置認證方式 <VirtualHost10.224.243.1:80> ServerNamewww.harry1.com DocumentRoot"/www/harry1.com" <Directory"/var/www/harry1.com"> Optionsnone AllowOverrideAuthConfig=>表明需要進行身份驗證(會再虛擬目錄下,查找.htaccess文件) Orderdeny,allow Denyfrom{ip} </Directory> </VirtualHost> 注意:也可以把以下第二步的內(nèi)容嵌入到Directory節(jié)點下。 二、創(chuàng)建.htaccess文件,并配置 vim/var/www/harry1.com/.htaccess AuthName"test"=>僅僅是描述,但最好設(shè)置成虛擬目錄的名字,(會在彈出層有體現(xiàn)) AuthTypeBasic=>驗證類型 AuthUserFile/var/www/harry1.com/.htpasswd=>密碼文件路徑 Requirevalid-user=>表示驗證成功的用戶都可以訪問 注意:Apache默認系統(tǒng)對.ht開頭的文件默認是不允許外部訪問的。安全性較高。 注意:Requirevalid-user表示只要htpasswd文件驗證都給的任何一個均可以登陸 也可以僅僅允許htpasswd文件內(nèi)的個別用戶Requireuserusername1username2 也可以僅僅允許htpasswd文件內(nèi)的個別用戶組Requiregroupgroup1group2 注意文件權(quán)限: -rw-r--r--.htaccess -rwxr--r--.htpasswd 三、創(chuàng)建.htpasswd文件,并配置 htpasswd-c/var/www/harry1.com/.htpasswd{username}第一次創(chuàng)建用戶用-c,第二次則不用,會提示你輸入密碼的。密碼是加密的 htpasswd-m/var/www/harry1.com/.htpasswd{username}修改密碼 四、通過用戶組訪問

3.Location配置 相對于Directory是配置本地文件系統(tǒng)路徑的,而Location是針對URL路徑的

<Location/server-status> SetHandlerserver-status=>該Handler能查看當(dāng)前系統(tǒng)的狀態(tài),如啟用了多少進程,即各個進程狀態(tài) OrderDeny,Allow Denyfromall Allowfrom{ip} </Location>

新聞名稱:Apache-httpd
新聞來源:http://www.rwnh.cn/article16/cgcjdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、全網(wǎng)營銷推廣網(wǎng)站策劃、ChatGPT、自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
商水县| 英山县| 寿宁县| 高邑县| 呼图壁县| 辽宁省| 新津县| 常州市| 志丹县| 台湾省| 横峰县| 大新县| 宝兴县| 平果县| 龙江县| 康平县| 新乐市| 正阳县| 东乡族自治县| 晋城| 嘉禾县| 襄垣县| 东乌珠穆沁旗| 诸暨市| 金溪县| 葵青区| 孟津县| 大城县| 金昌市| 峨边| 阜阳市| 平顺县| 静安区| 怀化市| 湾仔区| 乐业县| 阳江市| 彩票| 昌都县| 修武县| 黔西县|