日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

httpd2.2的配置文件常见设置

發(fā)布時(shí)間:2023/11/30 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 httpd2.2的配置文件常见设置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 1、啟動(dòng)報(bào)錯(cuò):提示沒有名字fqdn
  • 2、顯示服務(wù)器版本信息
  • 3、修改監(jiān)聽的IP和Port
  • 3、持久連接
  • 4 、MPM( Multi-Processing Module )多路處理模塊
  • 5 、DSO:Dynamic Shared Object
  • 6 、定義'Main' server (主站點(diǎn)) 的文檔頁(yè)面路徑
  • 7、定義站點(diǎn)主頁(yè)面
  • 8 、站點(diǎn)訪問(wèn)控制常見機(jī)制
  • 9 、?中"基于源地址"實(shí)現(xiàn)訪問(wèn)控制
  • 10 、日志設(shè)定

?

?

?摘要:一個(gè)服務(wù)的配置文件非常重要,弄懂配置文件是熟練掌握服務(wù)的必要前提。

一、httpd-2.2常見文件介紹

(1)配置文件:

主配置文件盡量別改,改自己的子配置文件

  /etc/httpd/conf/httpd.conf?主配置文件

  /etc/httpd/conf.d/*.conf?自配置文件

檢查配置語(yǔ)法:

  httpd -t 通用

  service httpd configtest centos7不支持

服務(wù)腳本:/etc/rc.d/init.d/httpd

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

服務(wù)控制和啟動(dòng):

  chkconfig httpd on|off

  service?{start|stop|restart|status|configtest|reload}?httpd

站點(diǎn)網(wǎng)頁(yè)文檔根目錄:

/var/www/html

模塊文件路徑 :

  /etc/httpd/modules 軟連接

  /usr/lib64/httpd/modules

主程序文件:

  /usr/sbin/httpd

  /usr/sbin/httpd.worker

  /usr/sbin/httpd.event

主進(jìn)程文件 :服務(wù)起來(lái)后會(huì)自動(dòng)生成,可以查進(jìn)程pid,最后不要手動(dòng)加

  /etc/httpd/run/httpd.pid

日志文件目錄:

  /var/log/httpd

    access_log: 訪問(wèn)日志

    error_log :錯(cuò)誤日志

幫助文檔包:httpd-manual?,按完包后,重啟服務(wù),就能看幫助文檔,沒網(wǎng)也可以看

?

(2)httpd 配置文件的組成:修改前先備份,養(yǎng)成好習(xí)慣

# grep "Section" /etc/httpd/conf/httpd.conf ?人為的分成3大段,方便管理,可以隨便放

### Section 1: Global Environment 全局環(huán)境配置

### Section 2: 'Main' server configuration 主服務(wù)器

### Section 3: Virtual Hosts 虛擬主機(jī),全是注釋,默認(rèn)沒有

?

配置格式:directive(指令) value(值)

  directive: 不區(qū)分字符大小寫

  value: 為路徑時(shí),是否區(qū)分大小寫,取決于文件系統(tǒng)

?

二、Httpd 2.2 常見配置:可以在官網(wǎng)或安裝幫助包查看幫助

vim /etc/httpd/conf/httpd.conf 總配置文件

1、啟動(dòng)報(bào)錯(cuò):提示沒有名字fqdn

在總配置文件搜索 /ServerName,把注釋去掉,隨便寫,最好寫自己的網(wǎng)站名;啟動(dòng)就不報(bào)錯(cuò)了

修改后:

?

2、顯示服務(wù)器版本信息

ServerTokens:管理響應(yīng)首部信息的,顯示服務(wù)器版本信息

搜索/ServerTokens,文件默認(rèn)是OS,可以注釋掉、刪掉,有默認(rèn)值full

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

  配置文件在的設(shè)置      首部顯示的信息

① ServerTokens Prod[uctOnly]:Server: Apache

② ServerTokens Major: Server:Apache/2

③ ServerTokens Minor: Server:Apache/2.0

④ ServerTokens Min[imal]: Server:Apache/2.0.41

⑤ ServerTokens OS: Server:Apache/2.0.41 (Unix)

⑥ ServerTokens Full (or not specified):Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

This setting applies to the entire server and cannot be enabled or disabled on a virtualhost-by-virtualhost basis. After version 2.0.44, this directive also controls the information presented by the ServerSignature directive.

建議使用:ServerTokens Prod 安全,顯示越詳細(xì)越不安全

可以查看幫助信息,要安裝httpd-manual包,幫助信息很詳細(xì)

實(shí)例:cur -I 192.168.37.106 查詢頭部信息

另:可以在調(diào)度器上設(shè)置:直接隱藏版本信息或隨意修改

?

3、修改監(jiān)聽的IP和Port

搜索/Listen,默認(rèn)80

Listen [IP:]PORT,不要隨意更改,可以用于只想讓特定的ip訪問(wèn),不讓其他人訪問(wèn)

(1) 省略IP 表示為0.0.0.0; 端口綁定所有ip

(2) Listen 指令至少一個(gè),可重復(fù)出現(xiàn)多次,寫多個(gè),不能為空或注釋掉,注釋掉服務(wù)起不來(lái)

  Listen 80

  Listen 8080 寫多個(gè)就可開啟多個(gè)端口,但是訪問(wèn)的還是同一個(gè)網(wǎng)站

注意:改了端口,要在訪問(wèn)時(shí)加上自己改的端口

(3) 修改監(jiān)聽socket,重啟服務(wù)進(jìn)程方可生效

?

3、持久連接

Persistent Connection :連接持久建立,每個(gè)資源獲取完成后不會(huì)斷開連接,而是繼續(xù)等待其它的請(qǐng)求完成,默認(rèn)關(guān)閉持久連接 KeepAlive Off

  斷開條件:數(shù)量限制:100

  時(shí)間限制:以秒為單位, httpd-2.4 支持毫秒級(jí)

  副作用:對(duì)并發(fā)訪問(wèn)量較大的服務(wù)器,持久連接功能會(huì)使用有些請(qǐng)求得不到響應(yīng)

  折中:使用較短的持久連接時(shí)間

設(shè)置: KeepAlive On|Off

   KeepAliveTimeout 15

  MaxKeepAliveRequests 100

測(cè)試:telnet?WEB_SERVER_IP?PORT

  GET /URL HTTP/1.1 ? ?模仿報(bào)文首部

  Host: WEB_SERVER_IP

?

4 、MPM( Multi-Processing Module )多路處理模塊

(1)MPM 工作模式介紹:prefork、worker、 event(試驗(yàn)階段)

①?prefork?多進(jìn)程I/O 模型每個(gè)進(jìn)程響應(yīng)一個(gè)請(qǐng)求,默認(rèn)模型

  一個(gè)主進(jìn)程 :生成和回收n個(gè)子進(jìn)程 , 創(chuàng)建套接字,不響應(yīng)請(qǐng)求

  多個(gè)子進(jìn)程:工作work 進(jìn)程,每個(gè)子進(jìn)程處理一個(gè)請(qǐng)求;系統(tǒng)初始時(shí),預(yù)先生成多個(gè)空閑進(jìn)程,等待請(qǐng)求,最大不超過(guò)1024個(gè)

②?worker?:復(fù)用的多進(jìn)程I/O 模型, 多進(jìn)程多線程,IIS 使用此模型

  一個(gè)主進(jìn)程: 生成m 個(gè)子進(jìn)程,每個(gè)子進(jìn)程負(fù)責(zé)生成n個(gè)線程,每個(gè)線程響應(yīng)一個(gè)請(qǐng)求 ,并發(fā)響應(yīng)請(qǐng)求:m*n

?event?:事件驅(qū)動(dòng)模型(worker 模型的變種)

  一個(gè)主進(jìn)程:生成m個(gè)子進(jìn)程,每個(gè)進(jìn)程直接響應(yīng)n個(gè)請(qǐng)求,并發(fā)響應(yīng)請(qǐng)求:m*n ,有專門的線程來(lái)管理這些keep-alive?類型的監(jiān)控線程,當(dāng)有真實(shí)請(qǐng)求時(shí), 將請(qǐng)求傳遞給服務(wù)線程,執(zhí)行完畢后,又允許釋放 。這樣增強(qiáng)了高并發(fā)場(chǎng)景下的請(qǐng)求處理力 能力

httpd-2.2: event 測(cè)試版 ,centos6 默認(rèn)

httpd-2.4 :event 穩(wěn)定版,centos7 默認(rèn)

? 圖示:

① prefork MPM

② worker MPM

③ event MPM

注意:httpd-2.2 不支持同時(shí)編譯多個(gè)模塊,所以只能編譯時(shí)選定一個(gè);rpm 安裝的包提供三個(gè)二進(jìn)制程序文件,分別用于實(shí)現(xiàn)對(duì)不同MPM 機(jī)制的支持

(2)確認(rèn)方法:

  ps aux | grep httpd

  默認(rèn)為/usr/sbin/httpd, 即prefork 模式

查看模塊列表:

  查看靜態(tài)編譯的模塊

    httpd?-l

  查看靜態(tài)編譯及動(dòng)態(tài)裝載的模塊

    httpd?-M

動(dòng)態(tài)模塊加載:不需重啟即生效

動(dòng)態(tài)模塊路徑:/usr/lib64/httpd/modules

?

(3)更換使用的httpd 程序模塊:

/etc/sysconfig/httpd?在這個(gè)文件中改

① HTTPD=/usr/sbin/httpd.worker ?默認(rèn)是被注釋的,去掉注釋就切換到worker程序了

重啟服務(wù)生效

pstree -p|grep httpd 查看進(jìn)程和線程

httpd.worker?-l 模塊換了,命令也換了

②?Httpd 2.4 與之不同

以動(dòng)態(tài)模塊方式提供

配置文件:/etc/httpd/conf.modules.d/00-mpm.conf

httpd -M |grep mpm

重啟服務(wù) 生效

pstree -p|grep httpd 查看進(jìn)程和線程

?

(4)prefork 的默認(rèn)配置:主配置文件中,搜索/prefork

<IfModule prefork.c> 根據(jù)工作環(huán)境設(shè)置

StartServers 8 一開啟服務(wù)就準(zhǔn)備8個(gè)進(jìn)程

MinSpareServers 5 最小的空閑進(jìn)程,先預(yù)留,不夠就生成

MaxSpareServers 20 最大空閑進(jìn)程

ServerLimit 256 最多進(jìn)程數(shù), 最大256

MaxClients 256 最大并發(fā)數(shù)

MaxRequestsPerChild 4000 子進(jìn)程最多能處理請(qǐng)求數(shù)量。在處理MaxRequestsPerChild 個(gè)請(qǐng)求之后, 子進(jìn)程將會(huì)被父進(jìn)程終止,這時(shí)候子進(jìn)程占用的內(nèi)存就會(huì)釋放( 為0時(shí)永遠(yuǎn)不釋放)

</IfModule>

?

(5) worker 的默認(rèn)配置:主配置文件中,搜索/worker

<IfModule worker.c>

StartServers 4 一開啟服務(wù)就準(zhǔn)備4個(gè)進(jìn)程,4x25=100線程

MaxClients 300 最多300個(gè)線程

MinSpareThreads 25 最小空閑25線程

MaxSpareThreads 75 最大空閑75線程,和上邊沖突,開服務(wù)先開啟4個(gè)進(jìn)程,再殺死1個(gè)進(jìn)程

ThreadsPerChild 25 每個(gè)子進(jìn)程最大25個(gè)線程

MaxRequestsPerChild 0 無(wú)限制

</IfModule>

(6) 測(cè)試性能:ab命令 yum -y install httpd-tools

ab -c 100 -n 1000?http://192.168.30.106/

-  c:并發(fā)連接數(shù)

  -n:總的連接數(shù)

結(jié)果:發(fā)現(xiàn)prefork和worker性能沒有什么較大的差異

?

5 、DSO:Dynamic Shared Object

①?加載動(dòng)態(tài)模塊配置:/etc/httpd/conf/httpd.conf 主配置文件

配置指定實(shí)現(xiàn)模塊加載格式:搜索/LoadModule

② 格式:

LoadModule <mod_name> <mod_path>

模塊文件路徑可使用相對(duì)路徑:相對(duì)于ServerRoot 服務(wù)的根(設(shè)置的為/etc/httpd)

③?httpd -M 可以查詢模塊信息,若刪除或注釋掉一個(gè)模塊,那個(gè)模塊的功能就會(huì)禁用,且httpd -M 查詢不到

因此,當(dāng)我們需要用PHP時(shí),可以寫入PHP的模塊,就能使用了

示例:

LoadModule auth_basic_module

modules/mod_auth_basic.so

?

6 、定義'Main' server (主站點(diǎn)) 的文檔頁(yè)面路徑

搜索/DocumentRoot

格式:DocumentRoot?"/path"

作用:文檔路徑映射:

  DocumentRoot 指向的路徑為URL 路徑的起始位置

注意:

① 可以寫多行,但是下邊的會(huì)覆蓋上邊的,最后還是使用下邊的,寫到子配置文件一樣,因?yàn)樽优渲梦募蘒nclude conf.d/*.conf在這行設(shè)置的上邊,會(huì)被這行設(shè)置覆蓋。

② 若設(shè)置的主站點(diǎn)不存在,那么服務(wù)會(huì)啟動(dòng)失敗!

示例:

  DocumentRoot "/app/site1"

   http:/192.168.30.106/--> /app/site1/index.html

注意:SELinux 和iptables 的狀態(tài),要關(guān)掉

?

7、定義站點(diǎn)主頁(yè)面

搜索:/DirectoryIndex

格式:DirectoryIndex?index.html index.html.var

分析:

① 查詢http://192.168.30.106/ 及其子目錄時(shí),不指定文件,可以默認(rèn)打開目錄下的index.html文件

②?若沒有設(shè)置中的兩個(gè)文件,看其他設(shè)置:下設(shè)置9,默認(rèn)是報(bào)錯(cuò);

有特定設(shè)置會(huì)顯示特定設(shè)置,如首頁(yè);子配置文件 /etc/httpd/conf.d/welcome.conf?有設(shè)置,若只有 / 或多個(gè),目錄下沒有index.html,就顯示報(bào)錯(cuò)頁(yè)面,welcome.conf這個(gè)設(shè)置優(yōu)先級(jí)高,安全

報(bào)錯(cuò)頁(yè)面

?

8 、站點(diǎn)訪問(wèn)控制常見機(jī)制

可基于兩種機(jī)制指明對(duì)哪些資源進(jìn)行何種訪問(wèn)控制訪問(wèn)控制機(jī)制有兩種:客戶端來(lái)源地址,用戶賬號(hào)

?文件系統(tǒng)路徑:格式

<Directory?"/path">

...

</Directory>

<Files?"/path/file">

...

</Files>

<FilesMatch?"PATTERN">

...

</FilesMatch>

例:主配置文件中,不能訪問(wèn) .ht 開頭的文件的設(shè)置

?

②?URL 路徑:支持正則,通配符

<Location?"">

...

</Location>

<LocationMatch?"">

...

</LocationMatch>

例:子配置文件,/etc/httpd/conf.d/welcome.conf 的設(shè)置

注意:支持正則,通配符

示例:

<FilesMatch "\.(gif|jpe?g|png)$"> 正則

<Files?"?at.*">?通配符

<Location?/status> 絕對(duì)路徑的目錄

<LocationMatch "/(extra|special)/data">

?

9 、<Directory> 中"基于源地址"實(shí)現(xiàn)訪問(wèn)控制

(1)?Options?:后跟1 個(gè)或多個(gè)以空白字符分隔的選項(xiàng)列表,可在總配置文件中修改,也可從創(chuàng)建一個(gè)自配置文件中修改設(shè)置

在選項(xiàng)前的+ ,- 表示增加或刪除指定選項(xiàng)

  常見選項(xiàng):

  Indexes?:指明的URL 路徑下不存在定義的主頁(yè)面資源相符的資源文件時(shí),返回索引列表給用戶,默認(rèn)是不允許,加上不安全;有需要的時(shí)候,例如做yum源的時(shí)候

  FollowSymLinks?:允許訪問(wèn)符號(hào)所指向的源文件,例:鏈接文件,默認(rèn)允許

  None :全部禁用

  All:全部允許

注意:若沖突,后邊的設(shè)置會(huì)覆蓋前邊的

子目錄也可以設(shè)置的和父目錄不一樣,放在下邊

例:vim /etc/httpd/conf.d/test.conf 子配置文件

?

(2) AllowOverride,和上邊實(shí)現(xiàn)的效果一樣,就是把設(shè)置放在目錄的隱藏文件下.htaccess

與訪問(wèn)控制相關(guān)的哪些指令可以放在指定目錄下的.htaccess(由AccessFileName 指定)文件中,覆蓋之前的,.htaccess是主配置文件中設(shè)置指定的

用法:vim /etc/httpd/conf.d/test.conf

只對(duì)<directory> 語(yǔ)句有效

  AllowOverride All: 所有指令都有效

  AllowOverride None :.htaccess 文件無(wú)效

  AllowOverride AuthConfig Indexes 除了AuthConfig和Indexes的其它指令都無(wú)法覆蓋

然后在.htaccess文件中設(shè)置,.htaccess放在所需要控制的目錄下,例bbs目錄

vim /app/site1/.htaccess

options +indexes -followsymlinks

?

(3) order 和allow 、deny,在2.4中已無(wú)效,有另外的權(quán)限控制

order :定義生效次序;寫在后面的表示默認(rèn)法則,覆蓋,優(yōu)先級(jí)高

  Order allow,deny

  Order deny,allow

  Allow from, Deny from

來(lái)源地址的表達(dá)方法:IP、網(wǎng)絡(luò):

  172.16

  172.16.0.0

  172.16.0.0/16

  172.16.0.0/255.255.0.0

分析:① 若不沖突,allow,deny都產(chǎn)生效果,例

若沖突,看誰(shuí)在后,在后的優(yōu)先級(jí)高,但是只限于沖突的

例:除107,這個(gè)網(wǎng)段的其他ip可以訪問(wèn),但這個(gè)網(wǎng)段以外,都拒絕

③ 沒在deny、allow中設(shè)置的,看allow/deny誰(shuí)在后邊,誰(shuí)優(yōu)先級(jí)高

?

10 、日志設(shè)定

日志類型:

  訪問(wèn)日志

  錯(cuò)誤日志

錯(cuò)誤日志:

  ErrorLog logs/error_log

  LogLevel warn

  loglevel 可選值:

  debug, info, notice, warn,error

  crit, alert, emerg

?

訪問(wèn)日志:搜索:/LogForma

定義訪問(wèn)日志格式:LogFormat format strings,

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

下邊有選擇哪一個(gè)日志

使用日志格式:

CustomLog logs/access_log combined

參考幫助:

http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

各項(xiàng)設(shè)置的意思:可以隨便改自己想要的

??%h?客戶端IP 地址

??%l?遠(yuǎn)程用戶, 啟用mod_ident 才有效,通常為減號(hào)"-" "

??%u?驗(yàn)證(basic ,digest )遠(yuǎn)程用戶, 非登錄訪問(wèn)時(shí),為一個(gè)減號(hào)"-"

??%t?服務(wù)器收到請(qǐng)求時(shí)的時(shí)間

??%r?First line of request ,即表示請(qǐng)求報(bào)文的首行;記錄了此次請(qǐng)求的"方法","URL" 以及協(xié)議版本

??%>s?最后的響應(yīng)狀態(tài)碼

??%b?響應(yīng)報(bào)文的大小,純數(shù)據(jù)大小,單位是字節(jié);不包括響應(yīng)報(bào)文http 首部

??%{Referer}i?請(qǐng)求報(bào)文中首部"referer" 的值;即從哪個(gè)頁(yè)面中的超鏈接跳轉(zhuǎn)至當(dāng)前頁(yè)面的

  防止倒鏈,i就是首部的意思

??%{User-Agent}i?請(qǐng)求報(bào)文中首部"User-Agent" 的值;即發(fā)出請(qǐng)求的應(yīng)用程序

幫助文檔里都有

查詢?nèi)罩?#xff1a;tail /var/log/httpd/access_log

?

11 、設(shè)定默認(rèn)字符集

AddDefaultCharset UTF-8(全球) 默認(rèn)

中文字符集:GBK, GB2312(中文簡(jiǎn)體), GB18030

?

12 、定義路徑別名

格式:?Alias?/URL/ "/PATH/"?/URL/有沒有都無(wú)所謂,虛擬的目錄

Alias /download/ "/rpms/pub/"

  例:http://www.magedu.com/download/bash.rpm?==> /rpms/pub/bash.rpm

  http://www.magedu.com/images/logo.png?==> /www/htdocs/images/logo.png

?

13 、status 頁(yè)面

這個(gè)功能需要status_module 模塊

  httpd -M | grep status 查詢這個(gè)模塊有沒有被加載

在總配置文件中搜索/server-status

LoadModule status_module modules/mod_status.so 這個(gè)模塊在總配置文件有加載

<Location /server-status> 本來(lái)是注釋掉的

  SetHandler server-status2 這個(gè)名字隨便寫,只要訪問(wèn)時(shí)用這個(gè)名字就行

  Order allow,deny

  Allow from 192.168.30.0/24

</Location>

ExtendedStatus On 顯示擴(kuò)展信息,默認(rèn)也是注釋的

顯示狀態(tài)頁(yè)面

狀態(tài)的類型:

  "-"等待連接 "S"啟動(dòng) "R"處于讀取狀態(tài)

  "W"發(fā)送應(yīng)答 "K"保持長(zhǎng)連接 "D"dns查詢

  "C"正處于關(guān)閉狀態(tài) "L"記錄日志 "G"優(yōu)雅的終止,溫柔的斷開

  "r"把空閑的worker進(jìn)程清理 "."沒有正常的進(jìn)程

?

轉(zhuǎn)載自:http://www.cnblogs.com/along21/p/7691642.html

版權(quán)聲明:本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。


不積跬步無(wú)以至千里

轉(zhuǎn)載于:https://www.cnblogs.com/dannylinux/articles/7999156.html

總結(jié)

以上是生活随笔為你收集整理的httpd2.2的配置文件常见设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。