Oldal: 1 / 2 12 UtolsóUtolsó
Eredmény: 1 - 10 (11) összesen

Téma: Weblap és keresőoptimalizálás tárhely barát módon

  1. #1
    Bölcs
    Csatlakozott
    09-12-19
    Hely
    Budapest
    Hozzászólás
    696
    Begyűjtött 100 köszönetet
    63 hozzászólásával

    Üzenet Weblap és keresőoptimalizálás tárhely barát módon

    ... avagy hogyan ne legyen a keresőoptimalizálás a tárhelyed ellensége.

    Sziasztok!

    Ezt a témát már régóta fontolgatom, hogy megnyissam itt a fórumon, biztos vagyok benne,
    hogy lesznek viták és ötletek is, amiből a mindennapi életben sok kellemetlenségtől kímélhetjük
    meg magunkat! Mivel nem szeretnék senkit sem untatni a hozzászólásom 3/4-ét az imént töröltem is

    Mindenféle alapozás nélkül, aki esetleg nem lenne tisztában vele, fogadjuk el azt a tényt, hogy
    egy webszerver számára az az ideális, ha az oldal által élért erőforrások legnagyobb hányada
    statikus file és minél kevesebb dinamikus tartalom van rajta. Egy statikus file nagyszámú lekérése
    messze nem jelent akkora terhelést, még ha sok adatról is van szó, mint egy-egy dinamikus
    tartalom lekérése. Ha a webszervernek például a php interpretert meg kell hívnia, az jóval
    költségesebb és gazdaságtalanabb, mint pl. 1000 statikus file kiszolgálása.

    Az oldal optimalizálás során tehát a célunk mindig legyen az, hogy a lehetőségek szerint
    statikus fileokat használjunk, illetve minél kevesebb dinamikus kérést intézzünk a webszerver
    felé. Ha mégis dinamikus tartalmat kell használnunk, akkor azt igyekezzünk egy lekérdezéssel
    intézni, hiszen ha már fut az interpreter jóval kevesebb időt vesz az igénybe a művelet ha egyszerre
    elintézünk mindent, mintha mindent külön szálon tennénk. Kevesebb memóriára és cpu időre lesz
    szükség.

    Rémisztő példák egy oldal esetén a mesterségesen kialakított erőforrás zabálókra:

    • Valós idejű képátméretezők (nagyobb oldal esetén egy oldal megtekintés akár több száz
      php kérést is jelenthet, ez gyakorlatilag olyan, mintha 100x többen látogatnák meg a weblapodat, mint, amit
      elbír a szerver.
    • Különböző látogatottság mérők, akik valamelyik objektumra csücsülnek.
    • Kölönböző minify scriptek, amik a javascript és css fileokat kicsinyitgetik le, természetesen valós időben!
    • stb.


    A fenti lista természetesen nem teljes, de most nem is az a cél, hogy teljes listát írjak ezekről, ezek szimplán
    a leggyakoribb erőforrás zabálók.

    Szeretnék is kiemelni egyet a fentiek közül, ami nem más, mint a minify scriptek. A mindify script annyit tesz, hogy az
    eddig statikus javascript vagy css fileokat lecsupaszítják (kiveszik a fölösleges szóközöket, megjegyzéseket,
    entereket), majd valós időben továbbadják a böngésző számára. Az ötlet nem rossz, de a kivitelezés
    katasztrófa, mivel a megspórolt hálózati forgalmat most cpu idő felemésztésére használjuk. Még akkor is
    rossz a megoldás, ha egyébként a program készít cache fileokat. Egyáltalán nincs arra szükség, hogy
    ezeket az egyébként jó, ha havonta egyszer változó fileokat állandóan feldolgozzuk! Miért nem jó az,
    ha statikus fileként szolgálja ki a szerver? Persze, tömöríteni kell, ezért a fenti scriptek nagy része
    a csupaszítás után képes még arra a szörnyűségre is, hogy gzippel betömöríti a kapott eredményt!


    Kérdezem én, mi értelme van lecsupaszítani egy filet, ha utána egy jóval hatékonyabb tömörítéssel
    betömörítjük? Ha valaki tudja a választ írja meg, mert akkor nem halok meg hülyén! Szerintem egy
    böngésző sem dolgozza fel gyorsabban a css-t vagy js-t enterek nélkül!

    Miért nem jó az a megoldás, ha ezeket a fileokat előre betömörítjük és szükség esetén ezt a kész
    statikus filet adjuk át a böngészőnek? Valószínűleg megfelelő megoldás ez is. A minify scriptek
    a lusta felhasználóknak készültek, nem azoknak, akik optimalizálni szeretnék az oldalt. Az előre
    betömörítéshez kell egy kb fél perces munkálkodás, illetve a scriptekkel ellentétben az alább
    ecsetelt megoldás nem univerzális, mert többnyire az apache webszerver lehetőségeire épül.
    Ez nem jelenti azt, hogy más webszerverre ne lehetne átültetni! Érthető, hogy egy seo
    csomagban egyszerűbb webszervertől független megoldást adni, így az átlag ember is
    boldogan telepítheti minden tudás nélül.

    Minify scriptek helyett tehát a következőt javaslom:

    Tömörítsük be a js/css fileokat, majd azoknak a böngészőknek, amik támogatják a tömörítést adjuk
    oda a kész gzip fileokat. Feltehetitek itt a kérdést, hogy miért nem a mod_deflate-et használjuk.
    A válasz az, hogy használhatjuk, de most igyekszünk minimalizálni az extra terhelést, ez egy VPS
    esetén már észrevehető különbség lesz, ha a CPU nem az állandó tömörítéssel van elfoglalva!

    Nem húzom az időt, bemásolom ide azt a kódot, amivel igen gyorsan elérhetővé tehetitek
    a meglévő statikus fileokat gzip tömörítéssel is, úgy, hogy a cms-ben semmit sem kell
    változtatni! Csak annyit kell tennetek, hogy gzippel el kell készítenetek az eredeti fileok tömörített
    verzióit is a könyvtárban:

    Kód:
    .htaccess:
    
    RewriteEngine On
    Options -Indexes
    
    <FilesMatch .*\.js$>
        RewriteCond %{HTTP:Accept-Encoding} gzip
        RewriteCond %{REQUEST_FILENAME}.gz -f
        RewriteRule ^(.+) $1.gz
    </FilesMatch>
    
    <FilesMatch .*\.js.gz>
        ForceType text/javascript
    </FilesMatch>
    
    <FilesMatch .*\.css$>
        RewriteCond %{HTTP:Accept-Encoding} gzip
        RewriteCond %{REQUEST_FILENAME}.gz -f
        RewriteRule ^(.+) $1.gz
    </FilesMatch>
    
    <FilesMatch .*\.css.gz>
        ForceType text/css
    </FilesMatch>
    A fenti .htaccess filet a css/js könyvtárba kell elhelyezned, ezután,
    ha js vagy css végződésű filet szeretne a böngésző elérni, a webszerver
    megvizsgálja, hogy létezik-e előre betömörített változata a filenak,
    ha a böngésző támogatja a tömörített filet adja vissza eredményül.

    Megjegyzem, hogy az apache-nak egyébként van egy MultiViews opciója
    is, amivel hasonló eredményeket el lehet érni.

    A következő alkalomkor a phpthumb féle scriptek optimalizálásáról fogok
    írni pár sort.



  2. #2
    Bölcs benedictus logója
    Csatlakozott
    10-04-23
    Hozzászólás
    1.574
    Begyűjtött 2 köszönetet
    2 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Node amik cache-elik, azok gyakorlatilag ezt a tömörítést, statikussá tételt végzik el helyettünk (többek közt), vagy nem?


    Utoljára módosítva: benedictus által : 2012-06-22 14:36 Oka: +statikus
    Linkeld.be Linkmegosztó
    Indexeld.be - Linkgyűjtemény prémium funkciókkal!

  3. #3
    Bölcs
    Csatlakozott
    09-12-19
    Hely
    Budapest
    Hozzászólás
    696
    Begyűjtött 100 köszönetet
    63 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Ha a cache nem külső cache, hanem az, amit a program maga végez, akkor sajnos elmondható, hogy minden
    esetben dinamikus tartalomról beszélünk.

    Ilyenkor az történik, hogy

    1. érkezik egy kérés a böngészőtől, például: /js/minify.php?src=valami.js
    2. a webszerver mivel nem tudja a kérést önmagában kiszolgálni elindítja a php interpretert
    3. a php interpreter egyrészt értelmezi a kódot, ami természetesen időbe kerül, másrészt
    elkezdi végrehajtani az utasításokat

    (fontos megjegyezni, hogy míg egy statikus file kiszolgálásához nem szükséges extra memória, illetve nem kell
    külső programot futtatni, addig dinamikus tartalom esetén mindenféleképp szükség lesz rá. Például az nginx
    webszerver több ezer statikus file kiszolgálást képes elvégezni ugyan annyi memóriával és összesen egy
    processz futtatásával!)

    4. a php program megvizsgálja, hogy az adott filehoz létezik-e már legenerált file, ha igen, akkor azt
    elküldi a kliens számára, ha nem akkor legenerálja és utána küldi el. Természetesen az érdemi részt
    csak akkor végzi el, ha nem létezik már a file, vagy megváltozott. A gond viszont az, hogy például
    a file teljes letöltésének ideje alatt a php scriptnek futnia kell! Egy lassú internet kapcsolat esetén
    az adott interpreter teljesen fölöslegesen foglalja a memóriát, amit esetleg hasznosabb munkálatokra
    is használhatna.


    Az esetek nagy részében elég rövid időkről beszélünk, de egy nagy látogatottságú oldalnál, főként ha
    azt egy VPS-en üzemelteted, ahol a memória azért nem vet fel ez a sok kis dolog problémát okozhat.
    Igazából első sorban az elméletet kell megérteni, hiszen nem a minify az elsődleges probléma itt, hanem
    a hasonlóan működő egyéb megoldások!


    Idézet benedictus eredeti hozzászólása Hozzászólás megtekintése
    Node amik cache-elik, azok gyakorlatilag ezt a tömörítést végzik el helyettünk (többek közt), vagy nem?




  4. #4
    Bölcs benedictus logója
    Csatlakozott
    10-04-23
    Hozzászólás
    1.574
    Begyűjtött 2 köszönetet
    2 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Én úgy hallottam hogy apache rendel memóriát statikus file mellé, nginx nem, viszont arra meg nem tukmálhatod rá a htaccesst.
    ( Lehet hogy pont tőled tanultam )

    Mindenesetre a számos cache megoldás közül szerintem létezik olyan ami a te általad vázolt megoldást valósítja meg, tehát csinál egy tömörített és egy tömörítetlen, minified fájlt, és azt linkeli be a forrásba.


    Az én megoldásom az, hogy cloudflare CDN-ről szolgálom ki az ilyen statikus tartalmakat. (Így csak avval kell törődnöm, hog ne 48 CSS/JS fájl legyen, csak 1-1)



  5. #5
    Bölcs
    Csatlakozott
    09-12-19
    Hely
    Budapest
    Hozzászólás
    696
    Begyűjtött 100 köszönetet
    63 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Szia!

    Igen, sajnos az apache ilyen téren egy picit bután kezel dolgokat, mert minden lekéréshez egy dedikált processzt
    rendelt, habár ez a 2.4-es sorozatban már megváltozni látszik. Az apache tehát kérésenként képes volt egy bizonyos
    memória mennyiséget lefoglalni, de még mindig kevesebb, mint amit egy php interpreter kér. Az event based mpm
    esetén viszont az elképzelések közelednek az nginx szerű működéshez. Nem tökéletes még a dolog, de a 2.4-es
    apache verziók jóval nagyobb mennyiségű kérést tudnak kiszolgálni töredék annyi memória igénnyel, mint a 2.2-es
    verzió.

    A CDN egyébként egy nagyon hasznos találmány, épp az említett okokból nem csak adatátviteli, de más terhelési
    adatokat is tudja javítani egy tárhely esetén. Akinek VPS-e van az használhatja a varnis cache nevű programot
    CDN helyett. Mi péládul a js és css-ek esetén alapból minden tárhelyünkön használjuk.


    Idézet benedictus eredeti hozzászólása Hozzászólás megtekintése
    Én úgy hallottam hogy apache rendel memóriát statikus file mellé, nginx nem, viszont arra meg nem tukmálhatod rá a htaccesst.
    ( Lehet hogy pont tőled tanultam )

    Mindenesetre a számos cache megoldás közül szerintem létezik olyan ami a te általad vázolt megoldást valósítja meg, tehát csinál egy tömörített és egy tömörítetlen, minified fájlt, és azt linkeli be a forrásba.


    Az én megoldásom az, hogy cloudflare CDN-ről szolgálom ki az ilyen statikus tartalmakat. (Így csak avval kell törődnöm, hog ne 48 CSS/JS fájl legyen, csak 1-1)




  6. #6
    Hekker 0xFF logója
    Csatlakozott
    09-08-21
    Hozzászólás
    1.079
    Begyűjtött 168 köszönetet
    118 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Szerintem meg lassan érdemes elkezdni használni a SPDY-t, elég sok böngésző támogatja már, többek között az FF13, és szinte az összes Chrome.
    Viszont az igaz, hogy ez nem megoldás az on the fly képgenerálásra



  7. #7
    Bölcs
    Csatlakozott
    11-12-21
    Hozzászólás
    756
    Begyűjtött 116 köszönetet
    100 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Asszem kicsit bele zavarodtam...
    Ha sima statikus oldalról beszélünk akkor .html felrakva a szerverre és kész...
    Ha viszont dinamikus oldalról beszélünk, akkor meg ott van a Smarty illetve querykhez meg képekhez, stb a memcache... Például persze.
    Mi akkor itt a gond?



  8. #8
    Bölcs
    Csatlakozott
    09-12-19
    Hely
    Budapest
    Hozzászólás
    696
    Begyűjtött 100 köszönetet
    63 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Szia!

    Egy picit lehet, hogy megtévesztően írtam, nem arról van szó, hogy egy weblap teljes egészében statikus vagy ha már tartalmaz
    php-t akkor az teljesen rossz. Ha például a firefox webkonzoljával megvizsgálod az oldalad betöltődését láthatod, hogy rengeteg
    más kérés is történik ahhoz, hogy a weblapod betöltődjön. A szóban forgó optimalizálás pedig itt arról szólna, hogy az rendben
    van, hogy maga a weblapod valamiféle dinamikus tartalom alapján generálódik le, de igyekezzünk arra törekedni, hogy magán
    a weblapon kívül, az ott található egyes elemekre szükségtelenül ne alkalmazzunk szerver oldalán futtatott kódokat.

    A css és js állandó tömörítgetése többnyire fölösleges, ezért könnyen elhagyható és az oldal teljes teljesítményére jól hat, ha elhagyod.
    Természetesen ezen kívül vannak még dolgok, amiket érdemes figyelembe venni, de azokról majd a továbbiakban!


    Idézet Janko eredeti hozzászólása Hozzászólás megtekintése
    Asszem kicsit bele zavarodtam...
    Ha sima statikus oldalról beszélünk akkor .html felrakva a szerverre és kész...
    Ha viszont dinamikus oldalról beszélünk, akkor meg ott van a Smarty illetve querykhez meg képekhez, stb a memcache... Például persze.
    Mi akkor itt a gond?




  9. #9
    Szerkesztő
    Csatlakozott
    12-05-22
    Hozzászólás
    239
    Begyűjtött 48 köszönetet
    41 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    Idézet viacomkft eredeti hozzászólása Hozzászólás megtekintése
    Szeretnék is kiemelni egyet a fentiek közül, ami nem más, mint a minify scriptek. A mindify script annyit tesz, hogy az
    eddig statikus javascript vagy css fileokat lecsupaszítják (kiveszik a fölösleges szóközöket, megjegyzéseket,
    entereket), majd valós időben továbbadják a böngésző számára.
    Amellett, hogy nagyon jó a téma, annyit azért hozzátennék, hogy a minify-ok tudnak olyat is, hogy a lecsupaszítás, tömörítés mellett még egybe is csomagolják a js-eket és css-eket, vagyis egy-egy komplikáltabb oldalnál mondjuk 20 helyett 2 lekérdezés lesz csak. Így mégha az a 20 not modified 304-gyel menne vissza, akkor is lehet akár előnye a dolognak.

    Kézzel ugyanezt karbantartani bármely cms-nél komponensenkként, frissítésenként, elég macerás lehet.



  10. #10
    Bölcs
    Csatlakozott
    11-12-21
    Hozzászólás
    756
    Begyűjtött 116 köszönetet
    100 hozzászólásával

    Alapbeállítás re: Weblap és keresőoptimalizálás tárhely barát módon

    viacomkft, köszi! Így akkor világos...
    Ezek alapján egyet tudok érteni azzal amit írtál...
    Figyelem a folytatást!



Oldal: 1 / 2 12 UtolsóUtolsó

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •