Apache 網頁與安全優化
-
Apache是一個跨平臺的web服務器,由於其簡單高效、穩定安全的特性,被廣泛應用於計算機技術的各個領域。現在,Apache憑藉其龐大的用戶數,已成爲用戶數排名第一的web服務器。
-
儘管如此,在實際的生產環境中,我們仍然不可能直接使用默認配置的Apache來充當服務器。畢竟,爲了更充分合理地利用Apache服務器,我們都應該根 據自己的實際需要對Apache的默認配置作出一些必要的調整。
-
需要編譯Apache添加優化模塊(安裝詳細操作)
# 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
-
網頁壓縮( 網頁加載速度加快 節省流量)
Gzip是一種流行的文件壓縮算法,現在的應用十分廣泛,尤其是在Linux平臺。當應用Gzip壓縮到一個純文本文件時,效果是非常明顯的,大約可以減少70%以上的文件大小。這取決於文件中的內容。 利用Apache中的Gzip模塊,我們可以使用Gzip壓縮算法來對Apache服務器發佈的網頁內容進行壓縮後再傳輸到客戶端瀏覽器。這樣經過壓縮後實際上降低了網絡傳輸的字節數,最明顯的好處就是可以加快網頁加載的速度。
# 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 //重啓服務
- 網頁緩存
網頁緩存是將一部分經常不會改變或變動很少的頁面緩存,下次瀏覽器再次訪問這些頁面時,不需要再次去下載這些頁面,從而提高了用戶的訪問速度
# 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>
-
驗證語法和模塊
# 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>
- 再開一臺web服務器
-
編輯一個盜鏈網頁
# vim /usr/local/httpd/htdocs/index.html //編輯盜鏈的首頁 <html> <body> <h1>It works!</h1> <img src='http://www.bt.com/test.jpg'/>; //注意使用目標的圖片地址 </body>
- 訪問盜鏈網頁
-
可以看到跳轉到 站點裏惡 error.png 圖片了