新聞中心
記錄下在centos 7中apache的優(yōu)化與配置的一些筆記,希望對(duì)大家有所幫助。

成都創(chuàng)新互聯(lián)是一家專(zhuān)注于做網(wǎng)站、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),印江網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:印江等地區(qū)。印江做網(wǎng)站價(jià)格咨詢(xún):18982081108
mod_expires網(wǎng)頁(yè)緩存時(shí)間
現(xiàn)在的web網(wǎng)站會(huì)由很多的圖片、腳本、css以及flash等這些元素嵌入到頁(yè)面中,如果不設(shè)置緩存或者緩存設(shè)置不當(dāng),會(huì)導(dǎo)致客戶(hù)端向Web服務(wù)器訪(fǎng)問(wèn)時(shí)都會(huì)重新下載一次這些內(nèi)容,浪費(fèi)了很多帶寬。通過(guò)Apache的mod_expires緩存模塊來(lái)設(shè)置ExpiresHeader來(lái)緩存這些文件。expires模塊通過(guò)Header報(bào)文來(lái)指定特定類(lèi)型的文件在瀏覽器中的緩存時(shí)間,比如像圖片、flash等這些在發(fā)布后不需要經(jīng)常做修改的內(nèi)容。因此做了緩存之后,瀏覽器從web服務(wù)器上下載第一次之后,就不需要重新再次下載這些文件了,而是直接從瀏覽器的緩存中讀取了。通過(guò)這樣的設(shè)置能夠讓客戶(hù)端的訪(fǎng)問(wèn)速度加快,同時(shí)也節(jié)省了很多帶寬。
/usr/local/apache/bin/apxs -c -i -a /usr/local/src/httpd-2.4.33/modules/filters/mod_expires.c
vi /usr/local/apache/conf/httpd.conf,找到并開(kāi)啟
LoadModule expires_module modules/mod_expires.so
緩存的方法有三種,分別是對(duì)目錄,對(duì)全局,對(duì)虛擬主機(jī)
ExpiresActive on
ExpiresDefault "access plus 12 month"
ExpiresByType text/html "access 12 month"
ExpiresByType text/css" access 12 month"
ExpiresByType image/gif" access 12 month"
ExpiresByType image/jpeg" access 12 month"
ExpiresByType image/jpg "access 12 month"
ExpiresByType image/png "access 12 month"
ExpiresByType application/x-shockwave-flash "access 12 month"
ExpiresByType application/x-Javascript "access 12 month"
ExpiresByType video/x-flv "access 12 month"
全局緩存:直接在httpd.conf中配置以上內(nèi)容
目錄緩存:在httpd.conf中,找到你的網(wǎng)站目錄位置中添加以上內(nèi)容
#上面配置
虛擬主機(jī):
#
# ServerAdmin [email protected]
# DocumentRoot "/usr/local/apache/htdocs"
# ServerName 127.0.0.1:80
# ErrorLog "logs/dummy-host2.example.com-error.log"
# CustomLog "logs/dummy-host2.example.com-access.log" common
# 在這里加入上面的配置
#
expires模塊語(yǔ)法:
expires模塊用到了ExpiresDefault和ExpiresByType兩個(gè)指令,以下是這兩個(gè)指令的語(yǔ)法:
ExpiresDefault "
ExpiresByType type/encoding '
其中,base的參數(shù)有三個(gè):access,now(等價(jià)于'access'),modification
plus關(guān)鍵字是可選的
使用緩存的好處:
1.縮短服務(wù)響應(yīng)時(shí)間,
2.減少服務(wù)器負(fù)載,
3.減少所需的網(wǎng)絡(luò)帶寬量,降低成本。
緩存的缺點(diǎn):由于使用了緩存,導(dǎo)致被緩存的內(nèi)容有更新時(shí),客戶(hù)端看到的還是舊的
解決方案:
1.根據(jù)業(yè)務(wù)內(nèi)容和需求,縮短緩存的時(shí)間
2.修改緩存文件的命名
隱藏版本號(hào)
用curl -I 域名 ,會(huì)發(fā)現(xiàn)如果沒(méi)有設(shè)置隱藏版本號(hào)的話(huà),服務(wù)器版本及Openssl信息會(huì)全都顯示出來(lái),這樣容易暴露web服務(wù)器版本,進(jìn)而通過(guò)版本號(hào)查找漏洞入侵web服務(wù)器。
例如:
HTTP/1.1 302 Found
Date: Wed, 11 Apr 2018 08:03:25 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.32
X-Powered-By: PHP/5.6.32
Set-Cookie: PHPSESSID=slukigut3n2fkuii73r4tse9k1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: /Home/Login/index.html
Content-Type: text/html; charset=UTF-8
以上信息暴露了apache的版本號(hào)以及openssl的版本號(hào),按照下面的方法來(lái)隱藏Apache的版本號(hào)。
源碼編譯的Apache,以/usr/local/apache為主目錄
1. vim /usr/local/apache/conf/httpd.conf ### 編輯httpd.conf文件
找到 Include conf/extra/httpd-default.conf,去掉前面的#號(hào),使其生效,wq保存
2. vim /usr/local/apache/conf/extra/httpd-default.conf
找到ServerTokens選項(xiàng),將其Full值改為Prod ### full值為顯示版本號(hào)以及其它詳細(xì)信息,Prod為隱藏這些信息
找到ServerSignature,將其On值改為Off ### Yes為啟用這個(gè)指令用來(lái)配置服務(wù)器端生成文檔的頁(yè)腳(錯(cuò)誤信息mod_proxy的FTP目錄列表、mod_info的輸出),No為隱藏這些信息
以上方法只能隱藏版本號(hào)以及Openssl信息,如果需要真正隱藏命名,或者需要偽裝一個(gè)新的命名,需要先修改Apache的源碼包,然后再進(jìn)行編譯安裝
以源碼包httpd-2.4.33為例
1.cd 到解壓好的 httpd-2.4.33 文件夾里
2.找到include/ap_release.h文件
3.vim httpd-2.4.33/include/ap_release.h文件
找到以下幾行:
#define AP_SERVER_BASEVENDOR "Apache Software Foundation" ###服務(wù)的供應(yīng)商名稱(chēng)
#define AP_SERVER_BASEPROJECT "Apache HTTP Server" ###服務(wù)的項(xiàng)目名稱(chēng)
#define AP_SERVER_BASEPRODUCT "Apache" ###服務(wù)的產(chǎn)品名
#define AP_SERVER_MAJORVERSION_NUMBER 2 ###主版本號(hào)
#define AP_SERVER_MINORVERSION_NUMBER 4 ###小版本號(hào)
#define AP_SERVER_PATCHLEVEL_NUMBER 33 ###補(bǔ)丁級(jí)別
#define AP_SERVER_DEVBUILD_BOOLEAN 0 #
將上邊的內(nèi)容改成你想要的信息,然后保存,前面的#號(hào)保留。編譯安裝,這樣再用curl -I 域名 命令來(lái)查詢(xún)時(shí)就是你修改后的信息了,對(duì)方就徹底不知道你的服務(wù)器是什么版本的了^_^
開(kāi)啟deflate壓縮模塊
啟用Apache的deflate模塊,可以開(kāi)啟壓縮功能,減小網(wǎng)站傳輸時(shí)的帶寬。
apache需要編譯安裝方式,以/usr/local/apache為apache的安裝目錄,以源碼包/usr/local/src/httpd-2.4.33為例
首先查看/usr/local/apache/bin/apachectl -M ###查看里面的模塊是否有deflate模塊,也可以過(guò)濾一下/usr/local/apache/bin/apachectl -M | grep deflate
若有則到httpd.conf下面開(kāi)啟,如果沒(méi)有顯示,或者用grep過(guò)濾后顯示Syntax OK,則說(shuō)明模塊沒(méi)有安裝。
以動(dòng)態(tài)共享模塊方式(DSO)編譯安裝deflate模塊
/usr/local/apache/bin/apxs -c -i -a /usr/local/src/httpd-2.4.33/modules/filters/mod_deflate.c #其中前面部分是安裝好的apache軟件里面的apxs程序,后面是apache的源碼安裝包里面的deflate壓縮模塊
apxs程序編譯選項(xiàng):
-c 表示執(zhí)行編譯模塊操作
-i 表示執(zhí)行安裝模塊操作
-a 表示自動(dòng)添加一個(gè)LoadModule行到httpd.conf文件中,以激活該模塊
注意:如果提示-bash: /apache/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directory。請(qǐng)安裝perl,perl-devel
yum install perl perl-devel
安裝完成后修改apxs腳本: vi /usr/local/apache/bin/apxs,將第一行“#!/replace/with/path/to/perl/interpreter -w”修改為#!/usr/bin/perl -w,wq保存退出,然后再次編譯該模塊
安裝完成后,vi /usr/local/apache/conf/httpd.conf中查看該模塊是否安裝及激活
LoadModule deflate_module modules/mod_deflate.so
注意:如果啟動(dòng)apache提示httpd: Syntax error on line 105 of /apache/conf/httpd.conf: Cannot load modules/mod_deflate.so into server: /apache/modules/mod_deflate.so: undefined symbol: inflate
則說(shuō)明deflate模塊沒(méi)有找到zlib的庫(kù),可以先安裝zlib,zlib-devel
yum install zlib zlib-devel
然后手動(dòng)在httpd.conf下 加入以下命令
LoadFile /usr/lib64/libz.so ##libz.so為deflate壓縮模塊所需要的庫(kù)文件
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/xhtml+xml application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php image/svg+xml image/gif image/png image/jpe image/swf image/jpeg image/bmp application/javascript
DeflateCompressionLevel 9 ###壓縮等級(jí)(1-9),等級(jí)越大效率越高,但同時(shí)消耗的CPU也高,根據(jù)具體情況調(diào)優(yōu),也可以設(shè)置為6來(lái)平衡CPU及壓縮質(zhì)量
AddOutputFilterByType ##僅壓縮限制特定的MIME類(lèi)型文件
網(wǎng)頁(yè)標(biāo)題:CentOS7中Apache的優(yōu)化與配置
文章分享:http://fisionsoft.com.cn/article/ccdjhoh.html


咨詢(xún)
建站咨詢(xún)
