254 Shares 4028 views

Nginx: Konfiguracja i instalacja

Co jest apache, nginx? Zastosowania, funkcje, opcje dostosowywania – to są rzeczy, które każdy web developer powinien znać, aby przetestować ich rozwój.


O nginx powiedzieć słowo

To narzędzie ma jeden główny i kilka przepływów pracy. Pierwsze dotyczy czytania i weryfikacji konfiguracji. Również pod jego kontrolą jest zarządzanie przepływem pracy. Problem z przeszłości – do obsługi przychodzących żądań. Model użycie nginx, który jest oparty na wydarzeniach. Mechanizmy stosowane są również, w zależności od systemu operacyjnego w celu osiągnięcia efektywnych żądania alokacji bezpośrednio między procesami roboczymi. Ich liczba jest zawsze podana w pliku konfiguracyjnym. Wartość ta może być stałe lub automatycznie, kierując liczbą rdzeni, które mogą być obsługiwane. W nginx konfiguracji systemu i modułów wykonuje się za pomocą pliku konfiguracji. Dlatego też, jeśli chcesz coś zmienić, trzeba spojrzeć na jego imię. Zazwyczaj jest to w dyrektywie / etc / nginx (ale trasa może się różnić w przypadku innych systemów) i ma .conf przedłużacza.

Start, restart, i dziennika

Aby to zrobić, trzeba zrobić tras wykonywalnych. Konfiguracja serwera nginx-jest to możliwe tylko wtedy, gdy jest uruchomiona. Zarządzanie odbywa się dzięki wywołać plik wykonywalny z parametrem -s. Aby to zrobić, należy użyć następujących:

Sygnał nginx -s

W tym przypadku można zastąpić następujące polecenia (musi pochodzić od użytkownika, który uruchomił narzędzie):

  1. Zatrzymać. Służy do szybkiego wyłączania.
  2. Przeładować. Zespół musiał przeładować plik konfiguracyjny. Faktem jest, że wszelkie zmiany nie będą obowiązywać, dopóki plik działa. I aby zaczęły obowiązywać, konieczne jest ponowne uruchomienie. Jak najszybciej dostać ten sygnał, główny proces rozpoczyna się w celu sprawdzenia poprawności składniowej komponentu pliku konfiguracyjnego i spróbować zastosować wytyczne tam dostępne. W przypadku awarii, będzie cofnąć zmiany i będą działać ze starymi parametrami. Jeśli wszystko się powiedzie, będzie to uruchomienie nowych przepływów pracy, a stary zostanie wysłany do końca popytu.
  3. Quit. Używany do sprawnego zakończenia prac. Jest on stosowany, jeśli chcesz czekać, aż obecne wnioski zakończeniu utrzymane.
  4. Ponowne otwarcie. Zamykania i otwierania plików dziennika.

Korzystanie z programów narzędziowych

proces ustalania może być również przeprowadzone za pomocą środków owych (narzędzie kasowania zostanie omówiony jako przykład). Zwykle używać mechanizmu wysłać sygnał bezpośrednio do danych procesowych. Są one połączone za pomocą identyfikatora. Dane te są przechowywane w nginx.pid pliku. Załóżmy, że jesteśmy zainteresowani w procesie №134. Następnie do sprawnego zakończenia konieczności wyślij nam następujące informacje:

kill -s QUIT 1628

Załóżmy, że chcemy, aby zobaczyć listę wszystkich otwartych plików. Jesteśmy wykorzystanie ps użytkowego. Zespół również będzie wyglądać następująco:

ps -ax | grep nginx

To jest, jak widać, za pomocą dodatkowych instrumentów wskazują, że idzie jej stosowania. A teraz skupmy się na jak zaangażowanej nginx-konfiguracji.

Struktura pliku konfiguracyjnego

Instalowanie i konfigurowanie nginx obejmuje pracować z modułami. Oni są konfigurowane za pomocą dyrektyw, które są określone w pliku konfiguracyjnym. Mogą być proste lub blok. Pierwszy rodzaj obejmuje dyrektyw i parametrów, które są oddzielone od przestrzeni, a ich koniec jest oznaczony średnikiem (-). Blok ma podobną strukturę. Ale zamiast niniejszej dyrektywy zamknięcia znajduje się dodatkowy zestaw instrukcji, które są umieszczone w nawiasach klamrowych ({} instrukcje). Jeśli uda im się pisać nazwiska i inne parametry procesu, są one nazywane takie konstrukcje mają kontekst. Jako przykład http, lokalizacji i serwer.

Dystrybucja zawartości statycznej

Jest to jedno z najważniejszych wyzwań stojących przed konfiguracji nginx. Pod rozkładu statystycznego treści rozumie obrazy i HTML stron (nie dynamiczny). Załóżmy, że potrzebujemy jednego prace nad konfigurowania nginx nix klastra. Jest to trudne do zrobienia, tak? Nie, spójrzmy na przykład. Przed rozpoczęciem tego konieczne jest, aby szczegółowo warunki problemu. Tak więc, w zależności od wniosku, że pliki będą pochodzić z różnych lokalnych katalogów. Zatem w / data / www mamy dokumentów HTML. Oraz w katalogu / data / obrazów zawierających obrazy. Optymalne ustawienie nginx w tym przypadku wymaga edycji pliku konfiguracyjnego, który należy skonfigurować urządzenie wewnątrz serwera http. Aby obsługiwać dwa zostaną wykorzystane jako lokalizacji.

Realizacja: serwer

Tak więc, najpierw musimy stworzyć katalogi i postawić się w plikach, których potrzebują, aby rozwinąć (w html trzeba dodać zawartość). Następnie otwórz plik konfiguracyjny. W nim domyślny serwer ma już kilka bloków, które w przeważającej części są komentarzem. Aby osiągnąć optymalne rezultaty, proces ten musi być wykonane w odniesieniu do wszystkich składników domyślnie. Następnie dodać nową jednostkę serwera przy użyciu tego kodu:

http {

serwer {

}

}

Plik konfiguracyjny może pracować z kilku takich bloków. Ale muszą być wyróżnia ich nazw i portów, przez które jest otrzymanych danych.

Realizacja: lokalizacja

Określona w obrębie serwera:

Położenie / {

korzenia / dane / www;

}

Obecność znaku „/” jest konieczne, aby porównać uzyskane dane i zobaczyć, czy istnieje taki adres z przetworzonego wniosek tutaj. Jeśli nie ma żadnych problemów, a następnie określ ścieżkę / data / www do żądanego pliku, który znajduje się w systemie lokalnym. Jeśli jest mecz z kilku bloków, a następnie wybierz jedną z najdłuższym prefiksem. W tym przykładzie, długość jest równa jeden, czyli stosowanie będzie wyłącznie w przypadku, gdy nie ma „konkurencja”. Teraz będzie aktualizować:

Położenie / images / {

korzenia / danych;

}

W jaki sposób można zidentyfikować, szukamy obrazu. A teraz połączyć wszystkie zmiany, które były wcześniej, a konfiguracja w tej chwili jest w następujący sposób:

serwer {

Położenie / {

korzenia / dane / www;

}

Położenie / images / {

korzenia / danych;

}

}

Jest to wersja robocza takim przypadku standardowego №80 portu. Ten serwer bez problemu mogą być dostępne na komputerze, jeśli go na adres: http: // localhost /. Jak to wszystko działa?

Zasada działania przykład

Tak więc, gdy przychodzą do zapytań, które rozpoczynają się od / images, serwer plików z odpowiednich katalogów zostanie wysłana do użytkownika. W czasie jego nieobecności zostaną podane informacje wskazujące błąd 404. Jeśli przeprowadzono konfiguracji nginx na komputerze lokalnym, a następnie żądania HTTP: //localhost/images/example.png otrzymamy plik, którego lokalizacja /data/images/example.png. Po określeniu „/” szukaj symbol zostanie przeprowadzona w katalogu / danych / www. Ale mamy tylko zmienił konfigurację. Zaczyna pracować, musi ponownie uruchomić. Aby to zrobić, należy skorzystać z nginx -s reload. W przypadku, gdy normalna praca nie jest możliwe, w access.log i plików error.log znajduje się w dyrektywie / usr / local / nginx / kłód, można szukać przyczyny usterki.

Tworzenie prostego serwera proxy

Można powiedzieć o nginx – konfiguracja tego obiektu jest jednym z najbardziej popularnych aplikacji (i dość łatwe, przy okazji). Wykorzystuje zasadę serwera, który otrzymuje wniosek, a następnie przekierowuje je do niezbędnych witryn. Po tym, że odpowiedź oczekuje się od nich, który wysyła je do tego, który ustawiony zadanie. Więc spójrzmy na przykład tworząc punkt bazowy. będzie rozpatrywać wnioski użytkowników serwisu i dostarczyć je wraz z obrazem z lokalnego katalogu. Tak, aby zablokować http dodać inny serwer o następującej treści:

serwer {

słuchać 8080;

korzenia / dane / up1;

Położenie / {

}

}

Teraz niech rozszyfrowania dla Ciebie: stworzenie prostego serwera. On wysłucha portu 8080 nie mają słuchać, wtedy serwer będzie działał na TH 80. Wyświetlone zostaną wszystkie wnioski w ramach lokalnego systemu plików, które są skierowane do katalogu / data / UP1 (oczywiście wcześniej, że będzie to konieczne, aby go utworzyć). Aby móc sprawdzić, konieczne jest umieszczenie pliku index.html. Ze względu na umieszczenie dyrektyw w kontekście serwera głównego możemy wykorzystać lokalizację w każdym czasie (w tym samym ograniczenia dostępu usuwane). Obecnie pracujemy, aby stworzyć serwer proxy. Go do pracy, musimy proxy_pass dyrektywy, w którym zostanie określona nazwa protokołu oraz obiektu portowego jako parametry (dla połączenia lokalnego będzie wyglądać http: // localhost: 8080). Uzyskać ten wynik:

serwer {

Położenie / {

proxy_pass http: // localhost: 8080;

}

Położenie / images / {

korzenia / danych;

}

}

Jeśli spojrzeć na kod i analizować je, można zauważyć, że drugie miejsce jednostka została zmieniona. Tak więc, w tym przypadku, może pracować z typowych rozszerzeń obrazów. Nieco inna, może być wyświetlane w następujący sposób:

lokalizacja ~ (gif | jpg | png) $ {.

root / danych / zdjęć;

}

Konfiguracja Pełnomocnik końcowy jest następujący:

serwer {

Położenie / {

proxy_pass http: // localhost: 8080 /;

}

lokalizacja ~ (gif | jpg | png) $ {.

root / danych / zdjęć;

}

}

Będzie to odfiltrować żądania na końcu których znajdują się te rozszerzenia i wysłać je do osoby wezwanej plików. Nie zapominaj, że to będzie konieczne ponowne uruchomienie, jeśli chcesz sprawdzić plik konfiguracyjny. I proszę mi wierzyć, że to tylko nginx-konfiguracja. Jeśli otworzysz konfigurację „VKontakte” serwer plików lub inna duża firma, będą mieli kod więcej niż słowa w tym artykule.