Skocz do zawartości
mintpanda

Nginx + Wordpress - instalacja i optymalizacja pod kątem wydajności

Polecane posty

Potrzebuję pomocy w poprawnym skonfigurowaniu Nginxa na serwerze dedykowanym tak, żeby Wordpress hulał aż miło :) (wiem, że WP nie bryluje jeśli chodzi o optymalizację, ale z tego co kojarzę po paru tweakach może naprawdę zaskoczyć). Niestety nie miałem zbytnio styczności z nginxem więc nawet nie wiem jak skonfigurować przyjazne url`e - nginx nie obsługuje .htaccess - z tego samego powodu wtyczki pokroju w3 total cache też nie chcą zbytnio współpracować.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Rafiki

Google zamkneli ? :)

Wpisz: "nginx wordpress w3 total cache"

i masz pelno wynikow krok po kroku

Nawet na oficjalnej stronie nginxa link

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Filipsiu i @Rafiki dzięki za linki.

 

Uwielbiam te komentarze związane z zamknięciem czy zniknięciem Google i nieumiejętnością szukania. Potrafię z niego korzystać, ale jakbyś przeczytał co napisałem, wiedziałbyś że nie miałem styczności z nginxem i wolę to zlecić komuś kto się na tym zna i zrobi to 5x szybciej niż ja, dzięki czemu ten czas mogę poświęcić na coś, w czym jestem dobry.

Edytowano przez mintpanda (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To ja tak nieśmiało zapytam czy ten nginx musi być?

 

Apache dobrze zrobione to też błyskawica – plus do tego APCu, Batcache używany przez wordpress.com i jest całkiem sprawnie działająca maszynka bez męczenia się z ustawieniami. Może warto rozważyć takie rozwiązanie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

OK, ale nginx jest prostszy w konfiguracji, więc jak użytkownik poległ na nim, to polegnie i na Apache.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No to może zamiast dedyka zejść szczebel niżej na mocnego VPSa z administracją w cenie? Pewnie wyjdzie podobnie jak nie taniej. Można poszukać też rozwiązania dedykowanego pod wordpressa - sporo się tego namnożyło - zarówno za granicą jak i u nas pewnie się znajdzie. Oczywiście gdybam sobie bo założyłem, że na tym dedyku tylko wordpress jest. Pewnie jest tam coś jeszcze i przenoszenie to już by była insza inszość.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Apache dobrze zrobione to też błyskawica

 

Za takie teksty powinni banować. Na życie.

 

Co do tematu - jeśli chcesz zlecić to raczej dział Giełda i ktoś Ci to zrobi. Nie jest to skok na pieniążki, możesz wpisać budżet jaki chcesz.

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Za takie teksty powinni banować. Na życie.

 

Co do tematu - jeśli chcesz zlecić to raczej dział Giełda i ktoś Ci to zrobi. Nie jest to skok na pieniążki, możesz wpisać budżet jaki chcesz.

 

Poproszę o jakiś przykład, najlepiej w porównaniu z Apache o ileż to jest NGINX szybszy.

 

OCZYWIŚCIE, że jest szybszy, ale o ILE by zaraz skazywać mnie na dożywotniego bana?

 

Dwa środowiska, oba maksymalnie zoptymalizowane, czysty Wordpress na obu z cache lub bez - jak wolisz.

 

By nie być gołosłownym wyniki dla ślimaka Apache - dwa serwery testowe:

http://tools.pingdom.com/fpt/#!/bseCPV/https://www.infolotnicze.pl/

http://tools.pingdom.com/fpt/#!/dcmZ0I/https://www.infolotnicze.pl/

 

Apache, SSL, php 5.6, APCu (plus stosowna wtyczka do Wordpressa), memcached pod wtyczkę Batcache Wordpressa - serwer to VPS - 1 rdzeń, 1GB ram gwarantowany.

 

359 milisekund na serwerze testowym pingdom w Amsterdamie, 259 milisekund w Sztokholmie to chyba nie jest ślimak i to z SSL?

 

Wyniki dla drugiej próby ponieważ Batcache nie włącza się od razu, działa dopiero pod obciążeniem. Pierwsza próba to zazwyczaj kilkadziesiąt milisekund więcej.

 

Ile wykręci NGINX z SSL, Wordpress, wtyczkami cache i konfiguracją pod optymalne ładowanie?

 

Jak połowę mniej przy konfiguracji w której podmieniamy Apache na NGINX stawiam piwo :D

 

No... to teraz możecie polewać jadem towarzysze, ale lepiej polejcie przykładami. Z chęcią posypię głowę popiołem, wejdę pod stół i odszczekam oraz usunę konto by nikt mnie nie musiał niepotrzebnie banować. Piwo podeślę pod dowolny adres w Polsce. Po cichu oczywiście przerobię Apache na NGINX, ale to dopiero jak polejecie przykładami, a nie jadem...

Edytowano przez infolotnicze (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Poproszę o jakiś przykład, najlepiej w porównaniu z Apache o ileż to jest NGINX szybszy.

 

OCZYWIŚCIE, że jest szybszy, ale o ILE by zaraz skazywać mnie na dożywotniego bana?

 

Postaram się jutro/pojutrze zrobić setup z WP, który będzie szybszy o przynajmniej 20-30%, ale nie o to chodzi.

 

Chodzi o tekst:

Apache dobrze zrobione to też błyskawica

Można zrobić tak, żeby Apache był szybki. Jednak sprawa wygląda tak, że jak już tego Apache zrobimy, żeby był szybki, to wchodzi sobie gościu z nginx'em, czy innym alternatywnym, szybkim serwerem i zaczyna dopiero optymalizować. Dopiero przy czasach "zoptymalizowanego" Apache.

Druga kwestia jest taka, że jak skonfiguruję nginx'a i będzie tak, że PHP odpowiada na żądanie w 0.1s (bez cache'u) i bierze XG RAM i YGhz CPU to wtedy jestem w stanie powiedzieć, że na maszynie, która ma 1 rdzeń i 1G RAMu obsłużę min((1/X),(1/Y)). Przy Apache jak wchodzi w grę ruch (a nie takie ot testy) to sprawa zaczyna wyglądać gorzej. Wszystko fajnie i nagle Apache myśli. Myśli co by tu jeszcze spowolnić. O tej sytuacji mówiłem.

 

Apache jest fajny jak ma się za dużo pieniędzy na serwery. Dużo firm go używa, ale jak pytam gdzie mają serwery to w sumie już pytanie retoryczne - AWS. Jak już przepłacać to porządnie!

 

EDIT:

Pierwsze zabawy:

http://www.webpagetest.org/result/160102_EN_55D/

http://www.webpagetest.org/result/160102_19_55A/

 

Porównuję TTFB, Apache przy zimnym cache'u śpi i marudzi jak się go budzi. Jutro dokończę szablon i dorzucę treści, żeby wyrównać szanse.

Edytowano przez Misiek08 (zobacz historię edycji)
  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ale jak porównujemy to chociaż na tym samym serwisie?

​A po drugie strona ma na sztywno "www" więc było jedno przekierowanie co powoduje nieścisłości:

http://www.webpagetest.org/result/160102_A9_A5R/

​First Byte na zimnym cachu 0,431s , na ciepłym 0,000 - wszystko leci z ramu

​No i czas jaki osiągnąłeś na tym Godaddy w Amsterdamie jest niezwykle dziwny - w Kalifornii się szybciej ładuje http://tools.pingdom.com/fpt/#!/c2wX9a/https://www.infolotnicze.pl/

​Nawet drugie ładowanie w Australii jest niewiele wolniejsze do tego Amsterdamu na webpagetest.org więc mi on śmierdzi.

http://tools.pingdom.com/fpt/#!/dT6XAP/https://www.infolotnicze.pl/

Nie wiem co tam kończyć w tym szablonie chcesz? Wstaw standardowy wordpressowy - nie prościej? No i musisz przyznać, że Batcache daje radę :D

​Kupuję popcorn i czekam na nginx :D

Edyta:

Teraz się połapałem, że Ty już masz tam NGINX i mamy TTFB 359 ms http://www.webpagetest.org/result/160102_8K_AWX/

a ślimak Apache ma 421: http://www.webpagetest.org/result/160102_3K_AYM/

Druga próba - oba mają zero.

Założenie jest takie, że Apache sobie pyrka jak nie ma obciążenia, a jak się przytrafi nieszczęście Wykopu, albo pierwszej Onetu to jest Batcache, a w odwodzie jest jeszcze i telefon do serwerowni jak Batcache nie wyrobi by na chwilę dołożyli zasobów. Na szczęście nigdy nic takiego nie miało miejsca więc póki co ten VPS nawet nie wie za bardzo, że coś robi i Apache nikomu nie przeszkadza. Pytanie jak by dziadek Apache działał z php 7 i http/2 :)

Edytowano przez infolotnicze (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak nginx jeszcze raczkował, nie było uniwersalnych metod na przepisanie .htaccess, a FPM był w fazie eksperymentalnych testów na php 5.4, to rzeczywiście można było się zastanawiać czy warto korzystać z apache'a czy nginxa. Tyle, że to było 5 lat temu, w 2011 roku, a obecnie sytuacja wygląda tak, że za apachem nie przemawia już absolutnie nic poza lenistwem lub głupotą administratora. Jeśli ktoś dzisiaj w 2016 roku stawia serwis na apache'u to robi to źle, niezależnie od tego czy ma potężny serwer i może sobie na to pozwolić - to jest głupota i marnotrawienie zasobów, a jeśli to dla kogoś za mało, żeby przejrzeć na oczy to najlepiej sobie samemu zrobić testy i dojść do jakiś wniosków.

 

Ja mam lepsze rzeczy do roboty niż chodzenie po serwerowniach czy forach z pytaniem "czy ma pan pięć minut na rozmowę o zbawieniu serwerów WWW pod przywództwem nginxa?". Jak dla mnie to sobie możesz te pliki serwować i spod pixelserva, ale twierdzenie że "nie ma różnicy", albo że "można uzyskać takie same rezultaty" jest najzwyczajniejszym w świecie bullshitem, który mija się z prawdą i jedyne o czym mówi to o tym, że albo nigdy nie spróbowałeś się z nginxem zaprzyjaźnić, albo jesteś zbyt zaślepiony, żeby zauważyć faktyczne wyniki.

 

Zmień stanowisko na "korzystam z apache bo wiem lepiej niż wy" i nie będzie problemu.

Edytowano przez Archi (zobacz historię edycji)
  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A kto i gdzie napisał "nie ma różnicy" lub "można uzyskać takie same rezultaty"? Póki co przedstawione "faktyczne wyniki" jak piszesz, nie sa podstawą do tak radykalnych stwierdzeń jakich używasz. Kupa emocji i docinek, a merytoryki za grosz.

 

Już w poprzednim wątku napisałem dlaczego korzystam z Apache, ale widać ewidentnie nie leży Tobie to co piszę i jak piszę i musisz pocisnąć. Jak nie masz nic lepszego do roboty to zjedz makowiec, wypij piwo, zerknij na swój serwer, czy aby działa, wyjdź na dwór ulep bałwana czy ogólnie zrób co lubisz. Idę o zakład, że jest tu więcej ludzi, którym nie do końca podoba się co pisze i może uważają mnie za idiotę, ale zwyczajnie szkoda im czasu na popluwanie na mnie, a Tobie widać nie szkoda.

 

Póki co dostałem dwa linki od Misiek08 z których wynika różnica kilkudziesięciu milisekund. Ja się zgadzam z tym co pisze Misiek08:

 

"Druga kwestia jest taka, że jak skonfiguruję nginx'a i będzie tak, że PHP odpowiada na żądanie w 0.1s (bez cache'u) i bierze XG RAM i YGhz CPU to wtedy jestem w stanie powiedzieć, że na maszynie, która ma 1 rdzeń i 1G RAMu obsłużę min((1/X),(1/Y)). Przy Apache jak wchodzi w grę ruch (a nie takie ot testy) to sprawa zaczyna wyglądać gorzej. Wszystko fajnie i nagle Apache myśli. Myśli co by tu jeszcze spowolnić. O tej sytuacji mówiłem."

 

bo takie właśnie oglądałem porównania i w takim czymś Apache nie ma szans, ale podałem konkretną sytuację, konkretną konfigurację Apache i poprosiłem o testy z NGINX w takiej konkretnej konfiguracji. Otrzymałem je, różnica kilkadziesiąt milisekund.

 

Tylko tyle i az tyle.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

różnica kilkadziesiąt milisekund.

Dałeś "trudnego przeciwnika". Twoja strona to nie jest już zwykła strona na PHP (WP konkretnie), tylko dobrze zoptymalizowany byt. W sumie tutaj już bardziej porównujemy sprzęt, bo jak wchodzi Batcache to różnicy nie ma.

 

Pomijając wykop-effect (na który chyba jestem gotowy na swoim serwerze) jest jeszcze kilka spraw, gdzie Apache może bez powodu przyprawić człowieka o siwe włosy.

 

Postaram się jednak (pomimo wszystko) delikatnie przyspieszyć konfigurację. Przy Twoich <300ms dla Apache nie ma szans na 2x mniejszy wynik z nginx'em. Jednak już na tym etapie widać, że nawet SSL jest na nginx szybszy. Na pingdom jest to 51-59ms dla nginx'a i 81-92ms dla Apache. Tutaj jest ~40% szybciej.

 

Nie chcę oszukiwać i odpalać cache'u już na nginx, ale jeśli na to zezwolisz - zrobię próby. Będzie na pewno szybciej niż teraz.

 

Domyślnego template WP nie wrzucam, bo tam jest miliard JSów i wtedy wynik spada na łeb na szyję, bo musiałbym robić domenę itd. Teraz jest podobnie do Ciebie - 2 obrazki i tekst. Dorzucę zaraz jakiś obrazek i trochę linków, żeby ilość elementów była podobna i rozpocznę dalszą optymalizację.

 

EDIT:

Apache rzeczywiście od wersji 2.2 dogonił dzisiejsze czasy, ale tak jak już wspomniałem - Ty masz naprawdę zoptymalizowany setup, a ja wrzuciłem to o co prosiłeś (wtyczka, php, nginx, php5-apc) i tylko wprowadziłem podstawową konfigurację. Teraz czas na optymalizację.

Edytowano przez Misiek08 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki, że rzeczową odpowiedź.

​Dawaj ten cache w NGINX - jestem ciekaw jak to wypadnie. No i ciekawe ile wyciśniesz po optymalizacji.

​Fakt - strona jest zoptymalizowana (motyw) bo wychodzę, z założenia, że jak robić o dobrze - wiele godzin pracy z człowiekiem który to kodował i trucia mu by to i tamto zrobić inaczej. No i wiele cierpliwości Adminów testujących to i owo mające stronę przyspieszyć. Sam serwer to standardowy VPS, tylko prosiłem o memcached i APCu i chyba opcache, ale to nie jestem pewien.

​Gdyby na NGINX działało to http://affiliates.ait-pro.com/po/ to już bym się przesiadł. Rewelacyjna wtyczka do monitorowania bezpieczeństwa strony. Działa to to tylko na Apache i jak dobrze zrozumiałem jedyna opcja to połączyć to tak by Apache był z tyłu a NGINX z przodu, ale to już są kombinacje za duże według mnie i ewentualny zysk byłby za mały.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Filip Nowacki

@infolotnicze

Z ciekawości spytam... na jakim VPS siedzisz?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

​Dawaj ten cache w NGINX - jestem ciekaw jak to wypadnie. No i ciekawe ile wyciśniesz po optymalizacji.

Wrzuciłem trochę więcej, teraz przy drugim wejściu TTFB jest równy 0. Cache odpowiedzi PHP do nginx, czyli w sumie strona staje się w 100% statyczna. Dodatkowo nie używam już wbudowanego silnika templatek, tylko w index.php wyłączyłem wbudowany i sam wczytuję plik motywu. Tutaj nie widać tego aż tak bardzo, ale przy cięższym wordpressie (który np. ładuje się na zimno 1.5s+) można oszczędzić nawet 100-200ms (czyli tyle, ile się teraz ładuje strona u nas).

 

Nie jest to koniec optymalizacji (teraz można optymalizować konfigurację nginx, a potem systemu - bo nadal dorzuciłem tylko dodatkowy cache), ale na tym etapie kończę "zawody". Jest szybciej o 10-30% od Twojego setupu, a i tak masz naprawdę lekką stronę (i to nie Apache czyni ją tak szybką, tylko optymalizacja po stronie WP i PHP).

 

​Fakt - strona jest zoptymalizowana (motyw) bo wychodzę, z założenia, że jak robić o dobrze - wiele godzin pracy z człowiekiem który to kodował i trucia mu by to i tamto zrobić inaczej. No i wiele cierpliwości Adminów testujących to i owo mające stronę przyspieszyć. Sam serwer to standardowy VPS, tylko prosiłem o memcached i APCu i chyba opcache, ale to nie jestem pewien.

Fajnie, że jest jeszcze ktoś, kto dba o optymalizację samej strony, a nie tylko syczy na administratorów, że serwer do dupy.

 

​Gdyby na NGINX działało to http://affiliates.ait-pro.com/po/ to już bym się przesiadł.

Mógłbyś podesłać plik .htaccess na PW? Twórcy się tak "znają", że ponoć to jest właśnie ta rzecz nie do przejścia. Ciekawy jestem czy używają po prostu jakiejś magicznej opcji mod_rewrite, czy po prostu jest to kolejna rzecz raz naklepana i nikt nie chce jej już wspierać.

 

jedyna opcja to połączyć to tak by Apache był z tyłu a NGINX z przodu, ale to już są kombinacje za duże według mnie i ewentualny zysk byłby za mały.

Zdecydowanie się zgadzam, Apache'a trzeba się pozbywać i tutaj zysk jest za mały. Apache 2.2+ ma też poprawione podawanie plików statycznych, więc nginx jako reverse-proxy traci sens.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wersja darmowa ma zdaje się ten sam plik htaccess https://wordpress.org/plugins/bulletproof-security/ i tutaj jedyna odpowiedź na temat NGINX http://forum.ait-pro.com/forums/topic/bps-and-nginx/

​Wersja płatna ma np. taki fajny myk, że co 2 minuty sprawdza pliki na serwerze z wzorcem i jak znajdzie coś innego od razu leci to do kwarantanny. Jest jeszcze parę bonusów, ale ten chyba najlepszy. Tylko trzeba uważać na powiadomienia mailowe - kiedyś zapomniałem powiedzieć o tej "pułapce" administratorom i w trakcie jakichś prac tymczasowo zrobili kopię uploads wewnątrz public_html - otwieram pocztę a tam 18.000 maili o przeniesieniu podejrzanego pliku do kwarantanny :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

 

Wersja płatna ma np. taki fajny myk, że co 2 minuty sprawdza pliki na serwerze z wzorcem i jak znajdzie coś innego od razu leci to do kwarantanny.

Do takich celów polecam zainteresować się ioncube24 ;)

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@kafi

 

Dzięki - ciekawe rozwiązanie tylko musiałbym wykupić wersję płatną bo na serwerze jest jeszcze jedna domena. No i musiałbym się nauczyć obsługiwać to ustrojstwo, aczkolwiek przyszłościowo może to być dobre rozwiązanie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×