大型網站提速關鍵技術(頁面靜態化,memcached,MySql優化)(二)

一:頁面靜態化php

 

幾個概念:html

靜態網址:(好比:http://localhost/abc.html)jquery

  特色:1.利用seo(search engine optimization) 搜索引擎優化;2:訪問速度快 3:防止sql注入linux

http://localhost/index.php?u=123&p=/*2323*/nginx

動態網址:(好比:http://localhost/news.php?id=112 即訪問的是一個php頁面,能夠傳遞參數)ajax

  特色:1:不利於SEO;2:訪問速度慢;3:有被注入sql可能;sql

僞靜態網址:數據庫

  在實際開發中,咱們但願達到這樣的目的:apache

http://localhost/news.php?lang=cn&class=2編程

把上面的網址修改爲下面的網址:

http://localhost/news-cn-class.html   ----->僞靜態網址

  特色:1:利於seo2:防止注入 3:他仍然要訪問數據庫,速度沒有變化

 

頁面靜態化的分類:

從方式看:1:真靜態2:僞靜態

從範圍看:1:全局靜態 2:局部靜態化(實際中用的最多)[ajax+jquery]

 

介紹一款壓力測試的工具ab.exe   apache/bin/ab.exe

*如何使用ab工具(能夠測試本身的網站併發量大小,和某個頁面的訪問時間)

在cmd控制檯下

ab.exe –n 訪問的總次數 –c  有多少人訪問(併發量) 訪問的頁面url

舉例說明:

ab.exe –n 10000 –c 100 http://localhost/1230test/newfile.php

當咱們把 –c 調整到1000時,發現apache癱瘓. 

 

如何調整apache的最大併發量.

 MPM (多路處理模塊, 即 apache採用怎樣的方式來處理併發.), 主要有三種方式:

  1. perfork 預處理進程方式
  2. worker 工做模式
  3. winnt  這個通常說是windows採用的

原理示意圖:

 

如何設置咱們的apache的最大併發數 ,步驟以下:

(1)    在httpd.conf 文件中 修改

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf

(2)    肯定當前的apahce是什麼MPM模式

進入到 apache/bin

httpd.exe –l

 

說明: 看 mpm_xxx.c 若是xxx是 winnt 說明是winnt  ,另外還多是 perfork 或者  worker

(3)    修改httpd-mpm.conf 文件.

<IfModule mpm_winnt_module>

    ThreadsPerChild      1000 

    MaxRequestsPerChild    0

</IfModule>

(4)    重啓apahce ,測試

 

在linux下,通常說採用的MPM是 perfork模式,咱們看看如何配置.

<IfModule mpm_prefork_module>

    StartServers          5    #預先啓動進程(預先開5個進程)

    MinSpareServers       5   #最小空閒進程(即便沒有請求,仍是要保證有5個進程)

    MaxSpareServers      10 #最大空閒進程(請求大於10時會殺死多餘進程剩餘10個)

    MaxClients          150   #併發量(最大兩三千吧)

    MaxRequestsPerChild   0  #一個進程對應的線程數,對 worker更有用.(0:無限制)

</IfModule>

 

給你們一個合理的建議配置. 對大部分網站,中型網站,配置:

<IfModule mpm_prefork_module>
              StartServers         5      #預先啓動
              MinSpareServers      5
              MaxSpareServers      10  #最大空閒進程
              ServerLimit          1500   #用於修改apache編程參數
              MaxClients           1000   #最大併發數
              MaxRequestsPerChild  0

</IfModule>

 

若是你的網站pv值  百萬

ServerLimit          2500   #用於修改apache編程參數
MaxClients           2000   #最大併發數

*若是在大的話,上千萬,緊靠一個apache 就不夠了,就要使用nginx(反向代理)或者其餘的負載均衡的方法 

最後有一個關於html和php的訪問效率圖 :

 

 

分享一下頁面seo技巧:

 

*meta中的keywords有3--5個便可,太多有可能會被K站或者被視爲做弊;

 *若是一個圖片但願被百度到

<img alt=’小狗’ src=’’/>

在網站前臺,咱們建議 不要使用frame框架,不利用seo

若是咱們給圖片或者視頻取名字,儘可能簡短.

相關文章
相關標籤/搜索