国产成人精品一区二区成人片_国产成人一区二区青青草原_加勒比精品久久一区二区三区_亚洲不卡一区二区中文字幕

如何為大型網(wǎng)站提速頁(yè)面靜態(tài)化緩存技術(shù)memcachemysql優(yōu)化

UPTATED:2014-07-05 | 分類:網(wǎng)絡(luò)知識(shí)

中山網(wǎng)絡(luò)公司,中山網(wǎng)絡(luò)制作愛(ài)途科技公司2014-07-05日?qǐng)?bào)

如何為大型網(wǎng)站提速(   靜態(tài)化、 緩存技術(shù)memcache、 mysql優(yōu)化)

提出問(wèn)題->引出新技術(shù)->小案例(快速入門(mén))->細(xì)節(jié)—(長(zhǎng)期)---->使用項(xiàng)目

重要的概念

① 靜態(tài)網(wǎng)址

 

② 動(dòng)態(tài)網(wǎng)址

 

③ 偽靜態(tài)網(wǎng)址

傳統(tǒng)的做法->動(dòng)態(tài)網(wǎng)址

 

2.(減少sql注入攻擊風(fēng)險(xiǎn))

 

補(bǔ)充說(shuō)明 

Seo  (search engine optimization 搜索引擎優(yōu)化)

頁(yè)面靜態(tài)化的分類

為什么要靜態(tài)化

1. 訪問(wèn)php的速度比html慢

在apache / bin /ab.exe  可以做壓力測(cè)試,該工具可以模擬多人,并發(fā)訪問(wèn)某個(gè)頁(yè)面.

基本的用法

//–n 10000 請(qǐng)求多少次

//–c 10    

 ab.exe –n 10000  –c 10 

-n 表示 請(qǐng)求多少次

-c 表示 多少人

2. 靜態(tài)化利于seo

3. 防止sql注入

① 真靜態(tài)

方法1: 使用php自身的緩存機(jī)制

       output_buffering 緩存

       程序緩存

如果要測(cè)試php自己的緩存機(jī)制, 需要做配置.

php.ini 文件

display_errors=On

output_buffering=Off

error_reproting= 設(shè)置錯(cuò)誤級(jí)別

看一段代碼

<?php

echo “yyy”;

header(“content-type:text/htm;charset=utf-8”);

echo “hello”;

?>

開(kāi)啟緩存:  1.   Ob_start();

            2.   Php.ini

Ob_get_contents() 獲取 output_buffering 的內(nèi)容

Ob_clean();清空 output_buffering 的內(nèi)容

Ob_end_clean() 關(guān)閉緩存 并刪除ob 內(nèi)容

Ob_end_flush() 輸出緩存ob內(nèi)容并關(guān)閉緩存

Ob_flush() 輸出緩存ob內(nèi)容并清空

Flush() 刷新程序緩存的內(nèi)容

Str_repeat("",100);  //顯示100個(gè)空白

這里我們看一個(gè)綜合案例,需求如下:

傳統(tǒng)解決方法:

頁(yè)面靜態(tài)化思路:

因?yàn)樾侣勥@種信息不是對(duì)實(shí)時(shí)性要求高,并且比較穩(wěn)定,所以我們可以這樣做,當(dāng)?shù)谝粋€(gè)用戶訪問(wèn)某條新聞后,我們使用ob的緩存機(jī)制,把內(nèi)容緩存到html頁(yè)面,當(dāng)下一次訪問(wèn)時(shí),直接訪問(wèn)html即可.

問(wèn)題?

1. 如果我們的新聞更新了,這樣我們的靜態(tài)頁(yè)面不變->解決

解決方法1,我們可以判斷靜態(tài)頁(yè)面是否過(guò)期(30s) ,如果過(guò)期,則重新創(chuàng)建

代碼:-->

if(file_exists($html_filename)&& filemtime($html_filename)+30>time()){

//直接訪問(wèn)html頁(yè)面(把html頁(yè)面的內(nèi)容 echo 瀏覽器)

echo file_get_contents($html_filename);

exit;

}

難道這樣就完美了嗎?

1. news_list.php頁(yè)面中點(diǎn)擊 查看時(shí)候,仍然是一個(gè)php頁(yè)面-> html網(wǎng)址

2. 實(shí)時(shí)性不夠好,30s的延時(shí)..

解決思想:

當(dāng)我們添加新聞或者更新新聞的時(shí)候,就同步的更新html靜態(tài)頁(yè)面,通常的做法,設(shè)計(jì)模板文件(網(wǎng)頁(yè)設(shè)計(jì)師/美工),通過(guò)模板創(chuàng)建靜態(tài)頁(yè)面.

整理思路

提出為什么需要靜態(tài)化.

靜態(tài)化的方式( 使用ob 緩存來(lái)實(shí)現(xiàn)靜態(tài)化 問(wèn)題1 實(shí)時(shí)性不好,有延時(shí), 2, 請(qǐng)求某個(gè)查詢頁(yè)面時(shí)使用 php動(dòng)態(tài)網(wǎng)站)

真靜態(tài) (在 添加和修改的時(shí)候,可以實(shí)時(shí)的處理靜態(tài)頁(yè)面 問(wèn)題 如果數(shù)據(jù)時(shí)海量的,造成真靜態(tài)的html 文件過(guò)多,占用磁盤(pán)很大.)偽靜態(tài)技術(shù)

② 偽靜態(tài)

我們可以有兩種方法來(lái)處理

1. 在php文件中,直接使用正則表達(dá)式技術(shù)處理

代碼:

<?php

//echo "hello ok";

//echo "<pre>";

//print_r($_SERVER);

//echo "</pre>";

$parameters=$_SERVER['PATH_INFO'];

if(preg_match('/^\/(\d+),(\d+),(\d+)\.html/si',$parameters,$arr)){

echo $arr[1]."<br/>";

echo $arr[2]."<br/>";

echo $arr[3]."<br/>";

}else{

echo "輸入的地址有誤!";

}

?>

課后練習(xí):

請(qǐng)使用正則表達(dá)式完成

在news.php頁(yè)面中可以獲取到 

news  sport  5

提出問(wèn)題?

 

相當(dāng)向 http://localhost/news.php?class=sport&id=56

2. 配置apache的rewrite來(lái)處理

快速入門(mén)案例

請(qǐng)求

原理圖

如何使用rewrite步驟:

1. 配置apache,啟用rewrite機(jī)制

在httpd.conf中啟用rewrite

LoadModule rewrite_module modules/mod_rewrite.so

2. 配置虛擬主機(jī)

到 c盤(pán) hosts文件添加你的 ip 和 域名對(duì)應(yīng)

127.0.0.1       

在 http.conf 文件中啟用虛擬主機(jī)

# Virtual hosts 啟用虛擬主機(jī)

Include conf/extra/httpd-vhosts.conf

3. 配置 httpd_vhosts.conf文件

在 <Direcotry >段的配置,默認(rèn)值,是在httpd.conf 的中配置,看根目錄.

<VirtualHost *:80>

    #ServerAdmin [email protected]

    #文檔的根目錄

    DocumentRoot "C:/myenv/apache/htdocs/static3"

    #域名

    ServerName www.hsp.com

    ErrorLog "logs/dummy-host2.somenet.com-error.log"

    #CustomLog "logs/dummy-host2.somenet.com-access.log" common

    #配置rewrite相關(guān)選項(xiàng),

    <Directory "C:/myenv/apache/htdocs/static3">

    #拒絕所有的訪問(wèn)

    #Deny from all

    Allow from all

    #是否顯示列表(在發(fā)布項(xiàng)目后一般是不啟用,對(duì)于這個(gè)配置,針對(duì) DocumentRoot在htdos外的目錄生效)

    #Options +indexes

    #是否啟用rewrite

    #Allowoverride  all

    </Directory>

</VirtualHost>

4.在目錄下添加了一個(gè) .htaccess  文件,這個(gè)文件時(shí)配置rewrite機(jī)制和規(guī)則

<IfModule rewrite_module>

#寫(xiě)你的rewrite規(guī)則

RewriteEngine On

#news-id(\d+)\.html$ 是規(guī)則  news.php?id=$1 是轉(zhuǎn)發(fā)的頁(yè)面

#正則 子表達(dá)式 捕獲 反向引用

#  "news-id33.html"

# 可以配置多個(gè)規(guī)則,匹配的順序是從上到下

RewriteRule  news-id(\d+)\.html$   news.php?id=$1

RewriteRule  news-id(\d+)\.html$     error.php

</IfModule>

綜合使用案例

4. 這個(gè)rewrite的規(guī)則也直接在 < Direcotry > 段直接配置

<Directory "C:/myenv/apache/htdocs/static3">

    #拒絕所有的訪問(wèn)

    #Deny from all

    Allow from all

    #是否顯示列表(在發(fā)布項(xiàng)目后一般是不啟用,對(duì)于這個(gè)配置,針對(duì) DocumentRoot在htdos外的目錄生效)

    #Options +indexes

    #是否啟用rewrite

    Allowoverride  all

    #我們有時(shí)候,也可以把rewrite機(jī)制和規(guī)則寫(xiě)這里

    #RewriteEngine On

    #RewriteRule  news-id(\d+)\.html$   news.php?id=$1

    </Directory>

使用偽靜態(tài)來(lái)完成簡(jiǎn)單的新聞查詢.

? 偽靜態(tài)是站在seo角度看.,他對(duì)于的頁(yè)面不是存在的,而是每次查詢數(shù)據(jù)庫(kù)得到的信息,

真靜態(tài)的頁(yè)面是真的存在.

如果只是為了seo, 完全不希望有html ,那就只使用 偽靜態(tài).

如果的網(wǎng)址要seo ,項(xiàng)目 數(shù)據(jù)大(1000 w) 你就希望偽靜態(tài)同時(shí)ob 來(lái)緩存.

如何更好的使用 偽靜態(tài)+ob

在windows 下

① 編寫(xiě)一個(gè) clear.php 文件,可以去檢測(cè)某個(gè)目錄下的文件是否過(guò)期

② 在編寫(xiě)my.bat文件

"C:\\myenv\\apache\\bin\\ab.exe" -n 1 -c 1

③ 在windows使用任務(wù)計(jì)劃.

④ ok

在linux

使用crontab 參看 linux視頻.

面試題: 請(qǐng)說(shuō)明一下偽靜態(tài)和真靜態(tài)的特點(diǎn)和區(qū)別

①真靜態(tài)訪問(wèn)效率高,利于seo.可以減少對(duì)數(shù)據(jù)庫(kù)的操作。但是會(huì)占用大量

的磁盤(pán).

②偽靜態(tài)一、可以方便的實(shí)現(xiàn)對(duì)搜索引擎的優(yōu)化,二、占空間比較小。三、通過(guò)生成不同view-id2.hmtl 可以實(shí)現(xiàn)內(nèi)容的變化.四有效的防止了注入攻擊

小結(jié): 如果一個(gè)網(wǎng)頁(yè)會(huì)被頻繁的訪問(wèn)(比如百萬(wàn)級(jí)別),通過(guò)該網(wǎng)頁(yè)每次都會(huì)去操作數(shù)據(jù)庫(kù),可以考慮使用真靜態(tài)(建議有針對(duì)性的使用),如果一個(gè)網(wǎng)頁(yè)為了實(shí)現(xiàn)對(duì)搜索引擎的優(yōu)化,提供網(wǎng)站的安全性,使用偽靜態(tài).

補(bǔ)充知識(shí) php中如何 使用正則表達(dá)式?

<?php

//案例

$str="akfdka1234 kafdla 9000";

//需求: 把 四個(gè)連續(xù)的數(shù)找到

//preg_match 函數(shù)只匹配第一個(gè)目標(biāo),$arr[0] 就存放匹配到得結(jié)果,

//$arr[1] 會(huì)匹配 模式中第一個(gè)子表達(dá)式的結(jié)果

//$arr[n] 會(huì)匹配 模式中第n個(gè)子表達(dá)式的結(jié)果

preg_match("/(\d\d)(\d\d)/si",$str,$arr);

echo "<pre>";

print_r($arr);

echo "</pre>";

//preg_match_all 函數(shù)匹配所有目標(biāo),$arr[0] 就存放匹配到得所有結(jié)果,

//$arr[0][1] 存放第一個(gè)匹配的結(jié)果

//$arr[0][n] 存放第n個(gè)匹配的結(jié)果

//$arr[1][0] 放入第一個(gè)匹配到得結(jié)果中的第一個(gè)子表達(dá)式的結(jié)果

//$arr[1][n] 放入第n+1個(gè)匹配到得結(jié)果中的第一個(gè)子表達(dá)式的結(jié)果

preg_match_all('/(\d\d)(\d\d)/si',$str,$arr);

echo "<pre>";

print_r($arr);

echo "</pre>";

$str="111-999-444 ka345-900-890 jdl90akjdfals";

preg_match('/(\d)\1{2}-(\d)\2{2}-(\d)\3{2}/si',$str,$arr);

echo "<pre>";

print_r($arr);

echo "</pre>";

本文來(lái)源中山網(wǎng)站建設(shè)http://www.gymjgtcp.com/,引用或者轉(zhuǎn)載請(qǐng)注明。多謝~
當(dāng)前網(wǎng)址:http://www.gymjgtcp.com/newsshow.php?cid=19&id=393
  • 2024-07-21 中山做外貿(mào)網(wǎng)站——專業(yè)做外貿(mào)網(wǎng)站的公司

    隨著全球經(jīng)濟(jì)的快速發(fā)展,外貿(mào)行業(yè)已經(jīng)成為了許多企業(yè)重要的經(jīng)濟(jì)來(lái)源。而中山作為廣東省經(jīng)濟(jì)實(shí)力強(qiáng)大的地區(qū)之一,其外貿(mào)市場(chǎng)也日益壯大。在這樣的大環(huán)境下,搭建一座專業(yè)化的中山外貿(mào)網(wǎng)站已經(jīng)成為了中山企業(yè)拓展國(guó)際市場(chǎng)必不可少的一項(xiàng)工作。 一個(gè)好的中山外貿(mào)網(wǎng)站應(yīng)該具備哪些特點(diǎn)呢? 首先,中山外貿(mào)網(wǎng)站應(yīng)該具備專業(yè)性。...

  • 2024-07-19 關(guān)于網(wǎng)站設(shè)計(jì)中的安全設(shè)計(jì)方面的重要建議

    在網(wǎng)站建設(shè)的過(guò)程中,安全設(shè)計(jì)是一項(xiàng)至關(guān)重要的工作。我們致力于為貴公司提供安全可靠的網(wǎng)絡(luò)環(huán)境,確保網(wǎng)站能夠穩(wěn)定運(yùn)行,并能妥善保障每個(gè)用戶的個(gè)人信息以及各種重要數(shù)據(jù)的安全性。為此,我們建議貴公司時(shí)刻關(guān)注并保證所使用的軟硬件系統(tǒng)都能夠獲得最新的功能更新。這些更新不僅能夠有效地預(yù)防目前已經(jīng)被公之于眾的各種安...

  • 2024-07-19 網(wǎng)站設(shè)計(jì)中值得著重關(guān)注的三大要素

    在網(wǎng)戰(zhàn)設(shè)計(jì)領(lǐng)域之中,對(duì)于用戶體驗(yàn)的關(guān)注、對(duì)于視覺(jué)藝術(shù)美的深度挖掘及對(duì)內(nèi)容策略的科學(xué)謀劃等重大議題,均貫穿了設(shè)計(jì)師們工作的每一個(gè)環(huán)節(jié)。為了締造更為卓越的網(wǎng)絡(luò)設(shè)計(jì)杰作,設(shè)計(jì)師們應(yīng)當(dāng)深度研究并深刻洞察這些關(guān)鍵議題,并傾注更多的時(shí)間和精力到其中。對(duì)于設(shè)計(jì)師們來(lái)說(shuō),他們還需不時(shí)進(jìn)行A/B測(cè)試以優(yōu)化改進(jìn)方案,以便...

  • 2021-05-09 中山公司網(wǎng)站建設(shè)需要注意哪些問(wèn)題?

    網(wǎng)站建設(shè)對(duì)于互聯(lián)網(wǎng)公司來(lái)說(shuō),可謂是重中之重了!針對(duì)每一公司來(lái)說(shuō),網(wǎng)站建設(shè)不但有益于公司的管理,更有利于促進(jìn)公司的品牌推廣,達(dá)到宣傳目的。 網(wǎng)站建設(shè)有哪些具體步驟? 1.先做好網(wǎng)站定位 先將公司做好一個(gè)準(zhǔn)確的定位,想好需要做的是什么類型的公司網(wǎng)站,對(duì)網(wǎng)站的主要內(nèi)容和主題有明顯的確定。最好做個(gè)公司業(yè)務(wù)市場(chǎng)的調(diào)...

  • 2017-12-29 評(píng)估一家電商網(wǎng)站,用戶體驗(yàn)的10個(gè)檢查點(diǎn)

    本文可被看作是評(píng)估一家電商網(wǎng)站體驗(yàn)的10個(gè)檢查點(diǎn),這10點(diǎn)不僅側(cè)重于可用性,更強(qiáng)調(diào)成功和失敗的電商網(wǎng)站在哪些方面有區(qū)別,這意味著這些區(qū)別能直接影響轉(zhuǎn)化、激活以及用戶的參與度。 ????1.網(wǎng)站的易發(fā)現(xiàn)性 ????我們的顧客是通過(guò)互聯(lián)網(wǎng)發(fā)現(xiàn)我們的嗎?他們是在網(wǎng)上發(fā)現(xiàn)我們的...