1、網頁優化
1-1網頁壓縮
1-1-1Apache網頁優化概述
■優化內容
●配置網頁壓縮功能
● 配置網頁緩存
●工做模式的選擇與參數優化
● 配置隱藏版本號
● 配置防盜鏈
■mod_gzip模塊與mod_deflate模塊
● 二者均使用gzip壓縮算法,運做原理相似
●mod_deflate壓縮速度略快,而mod gzip的壓縮比略高
● mod_gzip對服務器CPU的佔用要高一些
●高流量的服務器,使用mod_deflate可能會比mod_gzip 加載速度更快
javascript
1-1-2Apache的壓縮模塊
■ Apache實現網頁壓縮的功能模塊包括
● mod_gzip 模塊
●mod_deflate模塊
■Apache 1.x
●沒有內建網頁壓縮技術,但可以使用第三方mod_gzip模塊執行壓縮
■Apache 2.x
●在開發的時候,內建了mod_deflate 這個模塊,取代mod_gzip
html
1-1-3配置網絡壓縮功能
1-1-4壓縮模塊安裝
(1)檢查是否安裝了 mod_deflate 模塊
[root@localhost ~]# apachectl-D DUMP_MODULESgrep 「deflate」
(2)安裝 mod_deflate模塊
若是沒有安裝 mod_deflate模塊,須要中止Apache 服務,從新編譯安裝 Apache,參數中加入 mod deflate模塊內容
(3)以上操做創建在已經安裝Apache服務的基礎上(安裝包放在opt目錄下,並在opt目錄下解壓)
java
[root@localhost ~]# apachectl-D DUMP_MODULESgrep "deflate" #檢查是否安裝了 mod_deflate 模塊 [root@localhost~]#systemctl stop httpd [root@localhost~]# cd/opt/httpd-2.4.29/ [root@localhost httpd-2.4.29]# /configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ --enable-charset-lite \ --enable-cgi \ --enable-cgid \ --enable-deflate \ --enable-expires make && make install vi /usr/local/httpd/conf/httpd.conf LoadModule deflate module modules/mod _deflate.so #找到這個文件,在其下面添加以下命令 <lfModule mod deflate.c> AddOutputFilterByType DEFLATEItml text/plain text/ss text/xml text/javascript image/png image/jpg DeflateCompressionLevel SetOutputFilter DEFLATE </1fModule> httpd -t #檢測配置文件是否有錯 Syntax OK # 這樣顯示錶示沒有報錯 把b照片傳入/usr/local/httpd/htdocs/目下 [root@localhosthttpd-2.4.29]#cd/usr/local/httpd/htdocs/ ---測試頁.-- <html>chead> <title>--壓縮測試頁-</title> </head> <body><h1>這是一個測試網頁內容壓縮的頁面!!This is test Page!!</h1> <img src=bjpg/></body></html> --注意中文亂碼問題解決方法以下----vi/etc/httpd.conf AddDefaultCharset utf-8 service httpd restart ################用wireshaerk抓包測試圖片傳輸是否壓縮###### 找到HTTP/1.1200 OK(JPEG JFIF image) 找到Hyertext Tranter Protocol 找到上HTTP/1.1200OK \r \in 找到content-Encoding∶gzip\r\n ##這個地方表示圖片壓縮##
1-2網頁緩存
1-2-1配置網頁的緩存時間
■查看是否安裝了mod_expire模塊
●/usr/local/apache/bin/apachectl-t-D DUMP_MODULES
●若是輸出中沒有expires_module(static),則說明編譯時沒有安裝mod_expires
■若是沒有安裝,須要從新編譯安裝
●./configure—enable-expires…
●make && make install
算法
1-2-2網頁緩存實驗步驟
配置mod expires模塊的步驟與mod_deflate模塊類似
顯示 deflate expires(static),表示已經安裝。(1)檢查 mod expires 模塊是否安裝
[root@localhost~]# apachectl-D DUMP_MODULESgrep"expire"
##沒有裝mod expires##
(2)安裝 mod expires 模塊
若是沒有安裝mod_expires模塊,須要中止Apache 服務,從新編譯安裝 Apache,參數中加入 mod_ expires 模塊內容。
[root@localhost ~]# systemctl stop httpd [root@localhost ~]#cd/opt/httpd-2.4.29/
apache
[root@localhost ~]# systemctl stop httpd [root@localhost ~]#cd/opt/httpd-2.4.29/ [root@localhost ~]# systemctl stop httpd [root@localhost~]#cd/opt/httpd-2.4.29/ [root@localhost httpd-2.4.29]# /configure\ -prefix=/usr/local/httpd\ --enable-so\ --enable-rewrite\ --enable-charset-lite\ --enable-cgi\ --enable-cgid\ -enable-deflate\ -enable-expires [root@localhost httpd-2.4.29]# make && make install [root@localhosthttpd-2.4.29]#vi/etc/httpd.conf ############################科省略部份內容 LoadModule expires module modules/mod expires.so #########################轉#省略部份內容 <lfModule mod expires.c> ExpiresActive On ExpiresDefault"access plus60seconds"</IfModule> 檢測httpd.conf 語法並啓動服務[root@localhost httpd-2.4.29]# httpd-t Syntax OK [root@localhost httpd-2.4.29]# systemctl restart httpd 檢測模塊是否安裝 [root@localhost httpd-2.4.29]# apachectl-D DUMP MODULESgrep"expires"expires_module(shared) ###################用wireshaerk 抓包測試圖片傳輸是否緩存#### 找到HTTP/1.1200 OK(JPEG JFIF image) 找到 Hyertext Transfer Protocol 找到HTTP/1.1200 OK\r\n 找到Cache-Control∶max-age=60\r\n ###這個地方表示緩存60秒##
2、安全優化
2-1隱藏版本信息
2-1-1修改 httpd.conf 配置文件
修改 httpd.conf 配置文件,使 httpd-default.conf 文件生效,它裏面包含了是否返回版本信息的內容。
[root@localhost~]# vim/usr/local/httpd/conf/httpd.conf
####去掉前面的
Include conf/extra/httpd-default.conf
vim
2-1-2修改 httpd-default.conf 文件
[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf
####把 Full 改成Prod ServerTokens Prod
緩存
2-2配置防盜鏈
2-2-1作一個測試頁
#####如下是在合法服務器上配置防盜鏈#######正常環境搭建## 20.0.0.22 www.51xit.top##作防盜鏈配置 20.0.0.25 ###作盜鏈網站 ####首先20.0.0.22不作防盜鏈配置### 作一個測試頁 [root@localhost~]# cd/usr/local/httpd/htdocs/ [root@localhost htdocs]# vi index.html <html> <head> <title>--壓縮測試頁--</title> </head> <body><h1>這是一個測試網頁!!This is test Page!!</h1><img src=b.jpg/> </body> </html> vi/etc/httpd.conf AddDefaultCharsetutf-8 [root@localhost htdocs]# systemctl restart httpd
2-2-2作盜鏈網站
####在20.0.0.25網站 用到www.51xittop/bjpg 這個圖片## [root@localhost~]# vi/etc/hosts 20.0.0.22 www.51xit.top [root@localhost ~]# yum -y install httpd [root@localhost ~]#systemctl start httpd [root@localhost ~]# systemctl enable httpd [root@localhost~]# vi/var/www/html/index.html <html> <head> <title>-壓縮測試頁-</title> </head> <body><h1>這是一個測試網頁內容壓縮的頁面!!This is est Page!!</h1><img src=http://20.0.0.22/b.jpg/> </body> </html>
2-2-3防盜鏈測試
接下來作防盜鏈處理 ##量錄192.168.100.41=### (1)檢查是否安裝了 mod rewrite 模塊apachectl -t-D DUMP MODULESgrep "rewrite' (2)安裝mod rewrite 模塊 systemctlstop httpd vi/etc/htpd.conf LoadModule ewrite module modules/mod rewite.so ####針對目錄作防盜鏈處理--在htdocs目錄屬性最後位置新-…【NC】不區分大小寫### RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://20.0.0.22/* RewriteCond %{HTTP_REFERER} !^http://20.0.0.22/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://20.0.0.22$ [NC] RewriteCond %{HTTP_REFERER} !^http://20.0.0.22/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://20.0.0.22$ [NC] RewriteRule .*\.(gif|jpg|swf|png)$ https://t8.baidu.com/it/u=3571592872,3353494284&fm=79&app=86&size=h300&n=0&g=4n&f=jpeg?sec=1599645426&t=2a25cc010c9258cffe716b505f8a234f [R,NC]
對應的網絡照片
經過xftp軟件將照片上傳到/var/www/html目錄下(20.0.0.25這個服務器Apache是經過YUM安裝的,因此將照片在/var/www/html目錄下)
修改配置文件最後一行對應20.0.0.25
安全
RewriteRule .*\.(gif|jpg|swf|png)$ https://20.0.0.25/error.jpg [R,NC]