CentOS 6:httpd-2.2
程序環(huán)境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服務(wù)腳本:
/etc/rc.d/init.d/httpd
腳本配置文件:/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log:訪(fǎng)問(wèn)日志
error_log:錯(cuò)誤日志
站點(diǎn)文檔:
/var/www/html(頁(yè)面文件)
模塊文件路徑:
/usr/lib64/httpd/modules
服務(wù)控制和啟動(dòng):
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd
單縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),單縣網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為單縣成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的單縣做網(wǎng)站的公司定做!
常用配置:
1、修改監(jiān)聽(tīng)的IP和PORT
# vim /etc/httpd/conf/httpd.conf
(1) 省略IP表示為0.0.0.0;
(2) Listen指令可重復(fù)出現(xiàn)多次;
Listen 80
Listen 8080
(3) 修改監(jiān)聽(tīng)socket,重啟服務(wù)進(jìn)程方可生效;
注意:改配置文件需要重啟服務(wù) service httpd restart
netstat -tnlp(查看當(dāng)前啟動(dòng)的服務(wù)所用的端口)
2、持久連續(xù)
tcp連續(xù)建立后,每個(gè)資源獲取完成后不全斷開(kāi)連接,而是繼續(xù)等待其它資源請(qǐng)求的進(jìn)行;
副作用:對(duì)并發(fā)訪(fǎng)問(wèn)量較大的服務(wù)器,長(zhǎng)連接機(jī)制會(huì)使得后續(xù)某些請(qǐng)求無(wú)法得到正常 響應(yīng);
折衷:使用較短的持久連接時(shí)長(zhǎng),以及較少的請(qǐng)求數(shù)量;
KeepAlive On|Off(是否開(kāi)啟持久連續(xù))
KeepAliveTimeout 15(時(shí)間限制)
MaxKeepAliveRequests 100(數(shù)量限制)
# vim /etc/httpd/conf/httpd.conf
重啟服務(wù) service httpd restart
3、MPM
httpd-2.2不支持同時(shí)編譯多個(gè)MPM模塊,所以只能編譯選定要使用的那個(gè);
CentOS 6的rpm包為此專(zhuān)門(mén)提供了三個(gè)應(yīng)用程序文件:
httpd(prefork), httpd.worker, httpd.event
查看現(xiàn)在使用的是哪個(gè)程序文件的方法啟動(dòng)了多少進(jìn)程:
# ps aux | grep httpd
第一行為主控進(jìn)程(管理進(jìn)程的創(chuàng)建和銷(xiāo)毀)
默認(rèn)使用的為/usr/sbin/httpd,其為prefork的MPM模塊 ;
查看httpd程序的模塊列表:
查看靜態(tài)編譯的模塊:
# httpd -l
查看靜態(tài)編譯及動(dòng)態(tài)編譯的模塊:
# httpd -M
更換使用httpd程序,以支持其它MPM機(jī)制;
# vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.{worker,event}
注意:重啟服務(wù)進(jìn)程方可生效
# service httpd restart
MPM配置:
# vim /etc/httpd/conf/httpd.conf
prefork的配置
<IfModule prefork.c>(如果prefork存在)
StartServers 8(啟動(dòng)多少空閑進(jìn)程)
MinSpareServers 5(最少空閑進(jìn)程數(shù))
MaxSpareServers 20(最大空閑進(jìn)程)
ServerLimit 256(允許MaxClients最大啟動(dòng)的進(jìn)程數(shù)量)
MaxClients 256(最大允許啟動(dòng)的進(jìn)程數(shù)量)
MaxRequestsPerChild 4000(每個(gè)進(jìn)程最多可處理多少請(qǐng)求,處理了4000個(gè)就要銷(xiāo)毀此進(jìn)程)
</IfModule>
worker的配置:
<IfModule worker.c>
StartServers 4(啟動(dòng)多少空閑進(jìn)程)
MaxClients 300(最大允許啟動(dòng)的進(jìn)程數(shù)量)
MinSpareThreads 25(最少空閑進(jìn)程數(shù))
MaxSpareThreads 75(最多空閑進(jìn)程數(shù))
ThreadsPerChild 25(每個(gè)主進(jìn)程最大可生成多少線(xiàn)程)
MaxRequestsPerChild 0(每個(gè)進(jìn)程可處理無(wú)上限的請(qǐng)求)
</IfModule>
PV,UV
PV:Page View(頁(yè)面瀏覽量)
UV: User View(用戶(hù)瀏覽量)
4、DSO(動(dòng)態(tài)共享模塊)
配置指定實(shí)現(xiàn)模塊加載
LoadModule <mod_name> <mod_path>(模塊文件路徑)
模塊文件路徑可使用相對(duì)路徑:
相對(duì)于ServerRoot(默認(rèn)/etc/httpd)
5、 定義訪(fǎng)問(wèn)主文檔頁(yè)面路徑
# vim /etc/httpd/conf/httpd.conf
DocumentRoot " "
文檔路徑映射:
DoucmentRoot指向的路徑為URL路徑的起始位置
其相當(dāng)于站點(diǎn)URL的根路徑;
注意:重啟服務(wù)進(jìn)程方可生效
# service httpd restart
6、站點(diǎn)訪(fǎng)問(wèn)控制常見(jiàn)機(jī)制
# vim /etc/httpd/conf/httpd.conf
可基于兩種機(jī)制指明對(duì)哪些資源進(jìn)行何種訪(fǎng)問(wèn)控制
文件系統(tǒng)路徑:
<Directory "">
...
</Directory>
<File "">
...
</File>
<FileMatch "PATTERN">
...
</FileMatch>
URL路徑:
<Location "">
...
</Location>
<LocationMatch "">
...
</LocationMatch>
<Directory>中“基于源地址”實(shí)現(xiàn)訪(fǎng)問(wèn)控制:
(1) Options
后跟1個(gè)或多個(gè)以空白字符分隔的“選項(xiàng)”列表;
Indexes:指明的URL路徑下不存在與定義的主頁(yè)面資源相符的資源文件時(shí),返回索引列表給用戶(hù);(建議關(guān)掉)
FollowSymLinks:允許跟蹤符號(hào)鏈接文件所指向的源文件(建議關(guān)掉);
None:一個(gè)也沒(méi)有
All:全部
建議改為:Options None
(2) AllowOverride(允許覆蓋)
與訪(fǎng)問(wèn)控制相關(guān)的哪些指令可以放在.htaccess文件(每個(gè)目錄下都可以有一個(gè))中;
All: 全部
None:一個(gè)也沒(méi)有
建議改為:AllowOverride None
(3) order和allow、deny拒絕
order:定義生效次序;寫(xiě)在后面的表示默認(rèn)法則;
Allow from來(lái)源地址, Deny from來(lái)源地址
來(lái)源地址:
IP
NetAddr:(網(wǎng)絡(luò)地址)
172.16
172.16.0.0
172.16.0.0/16
172.16.0.0/255.255.0.0
1、e.g.設(shè)置為僅允許172.16網(wǎng)段的主機(jī)訪(fǎng)問(wèn):Allow from 172.16
2、e.g.Deny from 172.16.100.88
Allow from 172.16
(僅允許172.16網(wǎng)段的主機(jī)訪(fǎng)問(wèn),但 172.16.100.88這臺(tái)不能訪(fǎng)問(wèn))
7、定義站點(diǎn)主頁(yè)面:
# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.html.var(先找index.html沒(méi)有找到,就找index.html.var)
8、定義路徑別名
# vim /etc/httpd/conf/httpd.conf
格式:
Alias /URL/ "/PATH/TO/SOMEDIR/"
DocumentRoot "/www/htdocs"
http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm
/www/htdocs/download/bash-4.4.2-3.el6.x86_64.rpm
Alias /download/ "/rpms/pub/"
http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm
/rpms/pub/bash-4.4.2-3.el6.x86_64.rpm
http://www.magedu.com/p_w_picpaths/logo.png
/www/htdocs/p_w_picpaths/logo.png
9、設(shè)定默認(rèn)字符集(為防止“語(yǔ)言”不通,響應(yīng)的頁(yè)面看不懂。)
AddDefaultCharset UTF-8
中文字符集:GBK, GB2312, GB18030
10、日志設(shè)定
日志類(lèi)型:訪(fǎng)問(wèn)日志 和 錯(cuò)誤日志
錯(cuò)誤日志
ErrorLog logs/error_log
LogLevel warn(警告)
錯(cuò)誤級(jí)別: debug(所有錯(cuò)誤的都記錄下來(lái)), info(比debug更高級(jí)), notice(引起關(guān)注), warn(警告), error(發(fā)生錯(cuò)誤), crit(級(jí)別很?chē)?yán)重), alert(紅色警戒), emerg(緊急事務(wù)).
訪(fǎng)問(wèn)日志:查看訪(fǎng)問(wèn)日志:#tail /var/log/httpd/access_log
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
LogFormat format strings:(LogFormat格式符意思)
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
%h:客戶(hù)端IP地址;
%l:客戶(hù)端用戶(hù)名, 通常為一個(gè)減號(hào)(“-”);
%u:客戶(hù)端用戶(hù) (from auth; may be bogus if return status (%s) is 401);非為登錄訪(fǎng)問(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)文的大小,單位是字節(jié);不包括響應(yīng)報(bào)文的http首部;
%{Referer}i:請(qǐng)求報(bào)文中首部“referer”的值;referer即從哪個(gè)頁(yè)面中的超鏈接跳轉(zhuǎn)至當(dāng)前頁(yè)面的;
%{User-Agent}i:請(qǐng)求報(bào)文中首部“User-Agent”的值;即發(fā)出請(qǐng)求的應(yīng)用程序;
11、基于用戶(hù)的訪(fǎng)問(wèn)控制
認(rèn)證方式有兩種:
basic:明文
digest:消息摘要認(rèn)證
此處使用 basic認(rèn)證。
# vim /etc/httpd/conf/httpd.conf
basic認(rèn)證配置示例:
定義安全域
<Directory "">(定義哪個(gè)頁(yè)面資源訪(fǎng)問(wèn)時(shí)需要認(rèn)證)
Options None
AllowOverride None
AuthType Basic(認(rèn)證類(lèi)型)
AuthName "String“(認(rèn)證提示符)
AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"(認(rèn)證時(shí)的賬號(hào)密碼所在的路徑)
Require user username1 username2 ...(指明可登陸的用戶(hù);允許賬號(hào)文件中的所有用戶(hù)登錄訪(fǎng)問(wèn):Require valid-user)
</Directory>
創(chuàng)建賬號(hào)密碼文件AuthUserFile :
htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE username
-c:自動(dòng)創(chuàng)建此處指定的文件,因此,僅應(yīng)該在此文件不存在時(shí)使用;
-m:md5格式加密
-s: sha格式加密
-D:刪除指定用戶(hù)
e.g. htpasswd -c -m /etc/httpd/conf/.htpasswd tianxudong
注意:首次添加用戶(hù)時(shí)使用-c,之后都不能使用,否則會(huì)覆蓋里面原有的用戶(hù)信息。
基于組賬號(hào)進(jìn)行認(rèn)證;
# vim /etc/httpd/conf/httpd.conf
相比定義用戶(hù)訪(fǎng)問(wèn)控制,多加一個(gè)組認(rèn)證的文件。
AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
Require group grpname1 grpname2 ..
創(chuàng)建用戶(hù)賬號(hào)和組賬號(hào)文件;
#vim /etc/httpd/conf/.htgroup
mygrp: tianxidong
組文件:每一行定義一個(gè)組
GRP_NAME: username1 username2 ...
12、虛擬主機(jī)
有三種實(shí)現(xiàn)方案:
基于ip:
為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)ip地址;
基于port:
為每個(gè)虛擬主機(jī)使用至少一個(gè)獨(dú)立的port;
基于FQDN:
為每個(gè)虛擬主機(jī)使用至少一個(gè)FQDN;
注意:一般虛擬機(jī)不要與中心主機(jī)混用;因此,要使用虛擬主機(jī),得先禁用'main'主機(jī);
禁用方法:注釋中心主機(jī)的DocumentRoot指令即可;
虛擬主機(jī)的配置方法:
<VirtualHost IP:PORT>(虛擬主機(jī)所監(jiān)聽(tīng)的端口地址)
ServerName FQDN(若沒(méi)有用name標(biāo)示,則無(wú)需寫(xiě)FQDN)
DocumentRoot ""(虛擬主機(jī)的站點(diǎn)文件路徑)
</VirtualHost>
其它可用指令:
ServerAlias:虛擬主機(jī)的別名;可多次使用;
ErrorLog:(此虛擬主機(jī)專(zhuān)用的錯(cuò)誤日志)
CustomLog:(此虛擬主機(jī)專(zhuān)用的訪(fǎng)問(wèn)日志)
<Directory "">(基于路徑對(duì)資源做訪(fǎng)問(wèn)控制)
...
</Directory>
Alias(路徑別名)
...
e.g. 不同IP訪(fǎng)問(wèn)不同站點(diǎn):
注釋掉主配置文件的DocumentRoot
編譯一個(gè)文件:
# vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost 172.168.110.6:80>
ServiceName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
<VirtualHost 172.168.110.7:80>
ServiceName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
<VirtualHost 172.168.110.8:80>
ServiceName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>
語(yǔ)法檢查:httpd -t
重啟服務(wù):service httpd reload
e.g. 基于端口的虛擬主機(jī):
首先添加3個(gè)端口:可參考上面的常用配置 1 。
語(yǔ)法檢查:httpd -t
編譯一個(gè)文件:
# vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost 172.16.100.6:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.100.6:808>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
<VirtualHost 172.16.100.6:8080>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>
語(yǔ)法檢查:httpd -t
重啟服務(wù):service httpd reload
e.g. 基于FQDN的虛擬主機(jī):(端口一樣、地址一眼樣)
NameVirtualHost 172.16.100.6:80(基于FQDN的虛擬主機(jī)需要加一個(gè)專(zhuān)門(mén)的指令,Centos7不需要此指令)
<VirtualHost 172.16.100.6:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.100.6:80>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
<VirtualHost 172.16.100.6:80>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>
語(yǔ)法檢查:httpd -t
重啟服務(wù):service httpd reload
13、status頁(yè)面(查看運(yùn)行中的進(jìn)程詳細(xì)情況,應(yīng)加以訪(fǎng)問(wèn)認(rèn)證)
LoadModule status_module modules/mod_status.so
編輯主配置文件,將以下幾行啟用。
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from 172.16(建議設(shè)置為只允許某臺(tái)主機(jī)訪(fǎng)問(wèn))
</Location>
14、使用mod_deflate模塊壓縮頁(yè)面優(yōu)化傳輸速度
適用場(chǎng)景:
(1) 節(jié)約帶寬,額外消耗CPU;同時(shí),可能有些較老瀏覽器不支持;
(2) 壓縮適于壓縮的資源,例如文件文件;
# vim /etc/httpd/conf/httpd.conf
語(yǔ)法檢查:httpd -t
重啟服務(wù):service httpd reload
CentOS 6上編譯安裝httpd2.4版本:
CentOS 6默認(rèn)apr和 apr-util是1.39版的,而httpd2.4,需要 apr和 apr-util 是1.4版本以上的。
可以去 apr.apache.org官網(wǎng)下載1.4版本的。
開(kāi)發(fā)環(huán)境包組:Development Tools, Server Platform Development
開(kāi)發(fā)程序包:pcre-devel
先關(guān)掉httpd服務(wù)不要開(kāi)機(jī)自動(dòng)啟動(dòng)
# service httpd stop
# chkconfig httpd off
編譯安裝步驟:
(1) apr-1.4+
# ./configure --prefix=/usr/local/apr
# make && make install
(2) apr-util-1.4+
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
(3) httpd-2.4
# ./configure --prefix=/usr/local/apache24 --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=prefork
# make && make install
分享題目:httpd配置
文章地址:http://sd-ha.com/article26/gcjccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、域名注冊(cè)、網(wǎng)站策劃、用戶(hù)體驗(yàn)、網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷(xiāo)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)