Hace tiempo Opowiedziałem ci o tej serii samouczków, jak zainstalować i skonfigurować serwer pod kątem hostingu o wysokim zapotrzebowaniu. Ten artykuł dotyczy instalacji i konfiguracji Nginx:
nginx:
O Nginx mówiliśmy już wcześniej w artykule Nginx: Ciekawa alternatywa dla Apache, tam powiedzieliśmy, że jest to serwer WWW taki jak Apache, LightHttpd lub Cherokee, ale w porównaniu z Apache wyróżnia się wydajnością i niskim zużyciem sprzętu, właśnie dlatego wiele dużych witryn, takich jak Facebook, MyOpera.com, DropBox czy nawet WordPress .com używa Nginx zamiast Apache. W świecie Linuksa DesdeLinux Nie jest to jedyny, który używa Nginx, o ile wiem, używają go również emsLinux i MuyLinux :)
Moje osobiste doświadczenia z Nginx sięgają kilku lat, kiedy z konieczności zacząłem szukać lekkich alternatyw dla Apache. W tamtym czasie Nginx był w wersji 0.6 i jego kompatybilność z wysokimi żądaniami stronami stworzonymi w PHP nie była najbardziej optymalna, jednak dziś od wersji 0.9 wzwyż (Wersja 1.2.1 dostępna na Debian Stable, wersja 1.4.2 dostępna na ArchLinux) znacznie się poprawiło, do tego stopnia, że przy odpowiedniej konfiguracji i połączeniu Nginx + PHP wszystko będzie działać jak urok.
W tej serii samouczków Użyję Nginx w wersji 1.2.1-2.2, dostępne w repozytoriach Debian Stable (Wheezy).
1. Instalacja:
Zaczniemy od pierwszej rzeczy, zainstaluj Nginx z naszych repozytoriów.
Jeśli na swoim serwerze używasz w terminalu dystrybucji takiej jak Debian, Ubuntu lub jakiejś pochodnej, musisz umieścić poniższy tekst i nacisnąć Wchodzę :
aptitude install nginx
Jeśli korzystasz z innej dystrybucji na swoim serwerze, takiej jak CentOS, Red Hat, Fedora, po prostu zainstaluj pakiet: nginx z oficjalnego repozytorium
2. Konfiguracja:
Mamy już zainstalowany Nginx, ale oczywiście musimy go skonfigurować. Przygotowałem skompresowany plik na FTP, który zawiera wszystkie konfiguracje używane na serwerach. DesdeLinux, zarówno dla PHP, Nginx, itp. Pobierzmy i rozpakujmy ten plik:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Spowoduje to utworzenie folderu o nazwie nginx-spawn-fastcgi, z którego będziemy potrzebować dwóch plików dla czystego Nginx (to znaczy bez łączenia go z PHP):
- nginx.conf - »Główny plik konfiguracyjny Nginx (o jego zawartości porozmawiamy później)
- index.html - »Prosty plik html, którego użyjemy, aby sprawdzić, czy Nginx naprawdę działa dla nas w najbardziej podstawowej formie
- mywebsite.net - »Plik konfiguracyjny prostej strony internetowej, VHost (Virtual Host), który skonfiguruje dostęp do poprzedniego html
Najpierw przejdźmy do folderu ustawień Nginx:
cd /etc/nginx/
Następnie usuńmy jego domyślną konfigurację i umieśćmy własną:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
Jak powiedziałem, jest to główny plik konfiguracyjny Nginx, w którym zdefiniowałem już następujące elementy:
dane www użytkownika; worker_processes 4; pid /var/run/nginx.pid;
Dostęp użytkownika do systemu plików (z którym nginx będzie miał dostęp wszędzie), liczba procesów do pracy, a także PID (identyfikator procesu nginx).
Mamy tam również mały blok zwany zdarzeniami (ustawienia zdarzeń), który zawiera linię wskazującą maksymalną liczbę połączeń dozwolonych na zdarzenie. Poniżej znajduje się blok o nazwie http.
Ten blok http zawiera prawie wszystko, co jest związane z hostingiem, przynajmniej wiele rzeczy, które mogą Cię zainteresować. Na przykład maksymalny czas życia lub oczekiwania (timeout), gdzie będą nasze ogólne dzienniki (access.log i error.log), kompresja danych za pomocą gzip, a także inne reguły, które mogą być przydatne w przyszłości.
Po umieszczeniu głównego pliku konfiguracyjnego skopiujmy plik z naszego VHosta do folderu dostępnego dla witryn
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
Ponadto musimy utworzyć łącze symboliczne z tego pliku do folderu z włączoną obsługą witryn.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
Wyjaśniam, dlaczego warto mieć włączone i dostępne witryny.
Znajdą momenty, kiedy będą musieli mieć kilka gotowych i skonfigurowanych plików vhost, bo na tym serwerze umieścą w sieci, powiedzmy, 5 witryn. Jednak zdarza się, że nie jest jeszcze czas na włączenie 2 z tych 5 vhostów, ale muszą mieć gotowe pliki, aby w razie potrzeby były online w jak najkrótszym czasie. Mogą umieścić dowolną liczbę vhostów w witrynach dostępnych, ponieważ te, które Nginx czyta, aby umieścić online, są tylko tymi z włączonymi witrynami, działałoby również w przeciwnym kierunku, na wypadek gdyby chcieli przełączyć się w tryb offline ( na przykład tymczasowo) z witryną, nie ma potrzeby usuwania plików z serwera (plików, których będziemy potrzebować później), po prostu usuwamy symboliczne łącze do witryn z włączoną obsługą i to wszystko. Narzędzie posiadania dowiązań symbolicznych, a nie zwykłego kopiowania pliku z jednego folderu do drugiego, polega na tym, że kiedy chcemy edytować vhost, nie ma znaczenia, czy edytujemy ten znajdujący się w włączonym lub dostępnym, w końcu jest taki sam
archiwum.
Plik mywebsite.net, jak powiedziałem wcześniej, vhost, który służy jako przykład, czyli innymi słowy, musimy zmodyfikować mywebsite.net i ustalić nasze konfiguracje.
Musimy zmienić następujące:
- access_log (wiersz 3): będzie to ścieżka dostępu do pliku dziennika dostępu do tej witryny
- error_log (wiersz 4): będzie to ścieżka do pliku dziennika błędów do tej witryny
- nazwa_serwera (wiersz 5): Adres URL, domena hostowana w tym folderze, na przykład, jeśli było to forum DesdeLinux byłoby to: forum nazwa_serwera.desdelinux. Netto
- root (wiersz 6): Ścieżka do folderu, w którym znajdują się pliki html, zostawmy to w / var / www /, ponieważ będzie to tylko test
Teraz wystarczy skopiować plik html do folderu, który definiujemy w naszym pliku VHost, / var / www /:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
Następnie ponownie uruchamiamy Nginx i to wszystko:
service nginx restart
I voila, pojawi się coś takiego:
Przypominam, że najpierw pracujemy z Nginx dla HTML, bez wsparcia PHP, ta instalacja PHP i link do Nginx będzie treścią następnego tutoriala (obiecuję za kilka dni).
W każdym razie jest to samouczek dotyczący instalacji i konfiguracji Nginx, aby działał w czystej postaci, to znaczy witryna HTML, mam nadzieję, że Cię zainteresuje.
Wyjaśnię, że tak, wciąż są dobre praktyki, które można wykorzystać, jednak poczekajmy na zakończenie tej serii tutoriali, a wtedy ocenimy końcowy efekt pracy 😉
pozdrowienia
Dzięki, bardzo pomocne!
Dziękuję za komentarz
W backportach jest nginx 1.4 ..
Tak, ale na serwerze produkcyjnym nie używam żadnego z nich 😀
Mówiąc „to”, masz na myśli najnowszą stabilną i przetestowaną wersję wydaną przez nginx, sprawiasz, że brzmi to tak, jakby była apt-pining z sid. ~ _ ~
Ach, daj spokój, czy to ... na serwerach, których nigdy nie lubiłem używać innych repozytoriów, backportów ani niczego takiego 🙂
Zawsze stabilny na serwerach, dowiedziałem się tego lata temu.
Nginx 1.4 jest stabilny od kwietnia zeszłego roku, w backportach to 1.4.1-3.
2013-04-24
Wydana została stabilna wersja nginx-1.4.0, zawierająca wiele nowych funkcji opracowanych w gałęzi 1.3.x - obsługę proxy połączeń WebSocket, zszywanie OCSP, moduł SPDY, filtr gunzip i wiele innych.
http://nginx.org/en/CHANGES-1.4
Masz rację w tym, co mówisz, mój kapelusz jest zdjęty.
Dzięki za udostępnienie. Obecnie wprowadzam w życie Twój najstarszy wpis.
Odpowiem na pytania XD
Dzięki za przeczytanie 🙂
Jeśli masz jakieś pytania lub wątpliwości, wiesz, jesteśmy tutaj, aby pomóc, jest forum.desdelinux.net, gdzie wspólnie postaramy się dać Ci najlepsze rozwiązanie
pozdrowienia
Mam pytanie Mam LAMP [Linux (Debian Wheezy), Apache, PHP i MySQL] działające na moim serwerze dla WordPress i Owncloud, jak mam migrować do Ngnix, kolejne pytanie brzmi, jaka jest różnica między Ngnix a Lighttpd.
Największą komplikacją lub trudnością migracji z Apache do Nginx są konfiguracje każdej witryny, a konkretnie używany plik .htaccess.
.Htaccess jest najbardziej skomplikowany podczas przechodzenia na Nginx, ponieważ są to różne konfiguracje, które należy umieścić w Nginx VHost.
O LightHTTPd i Nginx… Nie wiem, użyłem LightHTTPd tylko raz, wiele lat temu, obecnie nie mam pojęcia, jak idzie jego rozwój, a konkretnie przy użyciu PHP.
NGINX wygląda całkiem prosto w porównaniu do Apache. Czekam na kolejny odcinek, aby móc go uzupełnić o PHP
Czekam na wskazówki, aby zoptymalizować bardziej nginx 😀
Przy okazji, Gaara, możesz w następnym samouczku uwzględnić, jak zaimplementować obsługę SSL.
Pozdrowienia.
Wskazówki, które się pojawiają, dotyczą w rzeczywistości optymalizacji przetwarzania PHP, buforowania witryny. Mogę podać przykład konfiguracji, w której używamy DesdeLinux dla Nginx+Wordpress+W3_Total_Cache :)
Dziękuję za dobry wkład.
A przewodnik po Archlinux kiedy? xD
W Arch było bardzo podobnie, zmieniają się tylko nazwy pakietów, ale ... conf jest prawie identyczny
Ale kto ma serwer produkcyjny z Arch? 😀
Witam,
To znowu ja xD ...
Śledziłem Twoje kroki, stosując je na maszynie z archlinux i mam następujący problem:
[abr4xas@Genius www]$ systemctl status nginx.service
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
Wszelkie sugestie 😀
Jo ... xox, chcę tylko serwera wewnętrznego, to znaczy chcę tylko wymienić xampp, czy powinienem to wszystko zrobić?
Jeśli chcesz, możesz to zaimplementować (powtarzam, z tym współpracuje DL), w rzeczywistości mój wirtualny serwer (którego używam do programowania i testowania), mam to samo, co wyjaśniam.
Oznacza to, że możesz albo usunąć XAMPP i umieścić ten wariant, a będzie działał dobrze, lub jeśli chcesz opuścić XAMPP ... nadal będzie działać dla Ciebie.
Pozytywnym punktem korzystania z tego, który pokazuję, jest bardzo niskie zużycie sprzętu w porównaniu z Apache, ale na twoim komputerze osobistym, który nie jest hostingiem o wysokim popycie, jest daleki od tego ... jeśli XAMPP działa dobrze, nie rozumiem, dlaczego go usuwać 🙂
Mam już uruchomiony serwer Linux (Debian, Nginx, MySQL i PHP). Trudno mi było zmusić PHP do pracy z Nginx, ponieważ byłem przyzwyczajony do prostego serwera WWW Apache.
Cóż, moje pytanie brzmi: czy ktoś wie, jak mogę skierować zakupioną domenę testową do mojego serwera? Chciałbym wypróbować moją domenę .com, aby zobaczyć, jak to działa, ale nie mam pojęcia, jak to zrobić, ponieważ zawsze korzystałem z adresu NOIP, aby uzyskać do niej dostęp za pomocą noip DUC.
Mam nadzieję, że ktoś może mi pomóc, dzięki!
Otrzymuję to podczas próby połączenia się z twoim ftp:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Wysłano żądanie HTTP, oczekiwanie na odpowiedź… 404 Not Found
2015-11-23 17:46:30 BŁĄD 404: nie znaleziono.
Mam serwer działający na CentOS (Gunicorn, Nginx, PHP) kosztowało mnie to dużo pracy, ale utknąłem w tym, że strona internetowa, którą chcę uruchomić, wymaga konfiguracji dostawcy domeny w tym przypadku Go Daddy, Więc w tym momencie nie wiem, jak kontynuować.
Czy mógłbyś mi udostępnić pliki konfiguracyjne, ponieważ nie mogę ich pobrać