Wady korzystania z Nginx jako podstawowego serwera WWW?


12

Widziałem miliony stron internetowych używających nginx jako serwera proxy, który współpracuje z Apache. Ale widziałem bardzo niewiele serwerów z uruchomionym nginx tylko jako ich domyślny serwer WWW. Jakie są główne wady takiej konfiguracji?

Widzę kilka:

  • Nie można użyć plików konfiguracyjnych dla poszczególnych katalogów, takich jak .htaccess, dlatego każda zmiana konfiguracji powinna zostać wykonana w głównym pliku konfiguracyjnym serwera i wymaga ponownego załadowania serwera. Ale pecl htscanner może zrekompensować im ustawienia php
  • Niedostępność mod_php dla nginx, którą można zrekompensować na przykład przez php-fpm.

Jakie są inne Dlaczego ludzie nie porzucają Apache i nie przechodzą na nginx lub inne lekkie rozwiązanie? Być może są jakieś specjalne powody?

EDYCJA: to pytanie dotyczy przede wszystkim pracy ze stosem LAMP.


1
Umysł, bezwładność, inwestycje. Tak jak zawsze.
Ignacio Vazquez-Abrams

Jaka inwestycja była potrzebna, aby skonfigurować Nginx na nowym serwerze? To darmowe oprogramowanie typu open source.
Vladislav Rastrusny

3
Inwestycja czasu potrzebnego na badania, wdrożenie, testowanie itp.
ThatGraemeGuy

Jeśli mówimy o ilości, IMHO największym powodem jest ogromna liczba współdzielonych hostów używających Apache. Konfigurowanie nginx jako usługi współdzielonej (np. Jak w cPanel, Plesk, itp.) Nie jest jeszcze tak łatwe jak robienie tego samego z Apache, szczególnie dla użytkowników końcowych. Znam wiele serwerów dedykowanych, które obsługują jedną witrynę, a mimo to używają cPanel / Plesk / etc tylko ze względu na łatwość, znajomość i niskie koszty instalacji.
Halil Özgür,

Odpowiedzi:


9

Z mojego doświadczenia #nginx wynika to prawie zawsze ze względu na znajomość plików .htaccess Apache i nie chcę tego tracić lub w inny sposób w zależności od tego. Na przykład osoby prowadzące hostowany serwer współdzielony, które chcą odciążyć tylko pliki statyczne i zachować apache dla swoich użytkowników, aby mogli się nimi bawić.

I szczerze mówiąc, tak naprawdę nie mogę wymyślić żadnego innego powodu, dla którego serwer proxy miałby być proxy, oprócz utrzymywania .htaccess dla użytkowników końcowych.

Edycja: W rzeczywistości mod_php plus phpsuexec dla hostów współdzielonych może być kolejnym powodem pozostania przy Apache.


Z mojego doświadczenia, bardzo trudno jest uzyskać dobrą wydajność od tomcat przez nginx, ponieważ proces ajp apache2 jest znacznie szybszy pod wysokim ciśnieniem. Wiem, że nginx ma eksperymentalną implementację ajp13, ale nie jest stabilny i źle udokumentowany.
pauska

1
To bardzo możliwe. Nginx działa najlepiej jako odwrotne proxy fastcgi lub HTTP 1.0. Wiem, że istnieją zewnętrzne moduły do ​​rozmowy ze scgi, wsgi itp., Ale nie mogę powiedzieć, jak stabilne są, ani nawet jak szybkie.
Martin Fjordvald

BTW, mod_php nie działa z suexec. Suexec jest przeznaczony do aplikacji cgi.
Vladislav Rastrusny

Cóż, proszę bardzo, bez prawdziwych powodów. Zbyt długo byłem użytkownikiem nginx, aby nawet pamiętać Apache. : D
Martin Fjordvald

6

Jeśli masz grupę ludzi, którzy mogą sprawić, że Apache działa dobrze, po co zawracać sobie głowę ponownym uczeniem się nowej aplikacji i konfiguracji, migruj reguły mod_rewrite, ponawiaj konfiguracje mod_perl / php / etc, ponownie testuj, wdrażaj ponownie?

Oba stosy oprogramowania mogą być bezpłatne, ale „nie trenuj, nie rozwijaj, nie testuj”, a nadszedł czas, abyś mógł dodać funkcje, o które dbają użytkownicy 1 , zamiast majstrować w celu majsterkowania.

1 Oczywiście nie mówię tu o projektach osobistych.


2

Lubię Nginx, ale dwie rzeczy powstrzymują mnie od używania go na moich stronach internetowych.

  • Trudno jest skonfigurować PHP-FPM . Nie udało mi się tego zrobić z najnowszą wersją PHP.

  • Nginx nie obsługuje HTMLs Websockets, które mnie interesują.


1
Czy potrafisz wymienić trudności, jakie napotkałeś podczas pracy z nginx i php-fpm? W przypadku HTML5 WebSockets wygląda na to, że Apache jeszcze ich nie ma: Issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny

Chciałbym również poznać problemy z php-fpm. Jeśli możesz skompilować PHP ze źródła bez niego, bardzo łatwo jest to zrobić.
Martin Fjordvald

1
Oddział 5.3 ma już go wewnątrz, więc po prostu ./configure --enable-fpm i gotowe.
Vladislav Rastrusny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.