Apache是一個跨平臺的web服務器,因爲其簡單高效、穩定安全的特性,被普遍應用於計算機技術的各個領域。如今,Apache憑藉其龐大的用戶數,已成爲用戶數排名第一的web服務器。
javascript
儘管如此,在實際的生產環境中,咱們仍然不可能直接使用默認配置的Apache來充當服務器。畢竟,爲了更充分合理地利用Apache服務器,咱們都應該根 據本身的實際須要對Apache的默認配置做出一些必要的調整。css
須要編譯Apache添加優化模塊(安裝詳細操做)html
# cd /opt/httpd-2.4.2 # ./configure \ --prefix=/usr/local/httpd \ //安裝目錄 --enable-deflate \ //壓縮模板 --enable-expires \ //支持 HTTP 控制 --enable-so \ //讓apache核心裝載DSO --enable-rewrite \ //啓用重寫功能 --enable-charset-lite \ //啓動字符集支持 --enable-cgi //啓用CGI腳本程序支持,便於擴展網站的應用訪問能力 # make && make install
網頁壓縮( 網頁加載速度加快 節省流量)java
Gzip是一種流行的文件壓縮算法,如今的應用十分普遍,尤爲是在Linux平臺。當應用Gzip壓縮到一個純文本文件時,效果是很是明顯的,大約能夠減小70%以上的文件大小。這取決於文件中的內容。 利用Apache中的Gzip模塊,咱們可使用Gzip壓縮算法來對Apache服務器發佈的網頁內容進行壓縮後再傳輸到客戶端瀏覽器。這樣通過壓縮後實際上下降了網絡傳輸的字節數,最明顯的好處就是能夠加快網頁加載的速度。web
# vim /etc/httpd.conf 打開Apache主配置文件 去掉下面三行前面 # LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so LoadModule filter_module modules/mod_filter.so ........................................ 在Apache主配置文件末尾添加 <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript DeflateCompressionLevel 9 SetOutputFilter DEFLATE </IfModule> 註解: <IfModule mod_deflate.c> 對html、plain、css、xml、javacript內容啓用gzip壓縮 是指壓縮程度的等級,從1到9,9是最高等級,級別越高,壓縮越小 對上面設置的全部 輸出啓用壓縮 </IfModule>
驗證語法和模塊算法
# cd /usr/local/httpd/bin # ./apachectl -t Syntax OK //驗證配置文件成功 # ./apachectl -t -D DUMP_MODULES | grep "deflate" deflate_module (shared) # systemctl restart httpd //重啓服務
網頁緩存是將一部分常常不會改變或變更不多的頁面緩存,下次瀏覽器再次訪問這些頁面時,不須要再次去下載這些頁面,從而提升了用戶的訪問速度apache
# vim /etc/httpd.conf Apache主配置開啓模塊(去#號) LoadModule expires_module modules/mod_expires.so 配置文件末尾添加 <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 50 seconds" #緩存爲50秒 </IfModule>
驗證語法和模塊vim
# cd /usr/local/httpd/bin # ./apachectl -t Syntax OK //驗證配置文件成功 # ./apachectl -t -D DUMP_MODULES | grep "expires" expires_module (shared) # systemctl restart httpd //重啓服務
Apache安全優化
瀏覽器
隱藏版本能夠減小被攻JI的風險,保護服務器安全運行。緩存
# vim /etc/httpd.conf (去掉下面配置行的#) Include conf/extra/httpd-default.conf # vim /usr/local/httpd/conf/extra/httpd-default.conf ServerTokens Prod //修改爲Prod 只顯示名稱,沒有版本 ServerSignature Off # systemctl restart httpd //重啓服務
如今不少長站都是直接使用其它網站上的資源,若是你網站帶寬性能很差,很容易給這類網站把流量費光了,下面我來介紹在Apache環境防盜鏈配置方法,這他們沒法直接使用你網站資源哦。
主配置文件修改
# vim /etc/httpd.conf LoadModule rewrite_module modules/mod_rewrite.so //去掉#號 開啓 ................................... <Directory "/usr/local/httpd/htdocs"> Options Indexes FollowSymLinks //215行添加 AllowOverride None Require all granted RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://benet.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://benet.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.benet.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.benet.com/$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.benet.com/error.png [R,NC,L] #設置規則 盜用gif jpg swf 結尾的文件時 跳轉盜鏈的替代圖片:(error.png圖片放在站點目錄下) .........省略n行 </Directory> (.*$:以任意字符結尾 NC:不區分大寫 R:強制跳轉)
測試
# vim /usr/local/httpd/htdocs/index.html //編輯默認首頁 <html> <body> <h1>It works!</h1> <img src='test.jpg' /> //添加測試圖片 </body> </html>
編輯一個盜鏈網頁
# vim /usr/local/httpd/htdocs/index.html //編輯盜鏈的首頁 <html> <body> <h1>It works!</h1> <img src='http://www.bt.com/test.jpg'/>; //注意使用目標的圖片地址 </body>
能夠看到跳轉到 站點裏惡 error.png 圖片了