Jak sprawdzić, czy apache działa (lub jest skonfigurowany do uruchamiania) jako prefork czy pracownik?
40
Jak sprawdzić, czy apache działa (lub jest skonfigurowany do uruchamiania) jako prefork czy pracownik?
Odpowiedzi:
MPM jest konfigurowany podczas kompilacji. Jednym ze sposobów, aby to później ustalić, jest lista skompilowana w modułach. Ta lista będzie zawierać wybrany MPM. Listowanie można osiągnąć, uruchamiając plik binarny apache za pomocą opcji -l.
Tutaj znajduje się moduł robotnik.c, dlatego uruchamiam robota MPM.
źródło
apache2ctl -M
listy aktywnych modułów.Odpowiedzi udzielone przez Series8217 i Andola są niepoprawne.
Pytanie brzmiało: jak stwierdzić, czy Apache korzysta z preforków, czy z procesów roboczych. Porada udzielona przez inne odpowiedzi mówi tylko, czym jest domyślny MPM (w oparciu o skompilowane moduły), a nie, jeśli obecnie używany jest ten domyślny lub inny wybór.
Jeśli
httpd -V
pokazuje prefork, oznacza to po prostu, że prefork jest skompilowanym domyślnym MPM. Można to zmienić, zmieniając ustawienie pliku konfiguracyjnego Apache, jak pokazano w tym procesie:/etc/sysconfig/httpd
CentOS / RedHat)HTTPD=/usr/sbin/httpd.worker
Który MPM faktycznie działa, można pokazać za pomocą tego procesu:
curl localhost/server-info
httpd -V
ponownie - nadal będzie wyświetlać preforkę, a nie pracownikaDolna linia:
httpd -V
pokazuje domyślną opcję, a nie która opcja jest aktualnie używanaOdpowiedzi na wiele, wiele stron internetowych mówią, użyj,
httpd -V
aby powiedzieć, czy Apache działa przed przygotowaniem czy robotem. Wszyscy się mylą. Wypróbuj powyższą procedurę, aby się przekonać.źródło
W Ubuntu 14.04
Informuje
event
,prefork
,worker
Możesz to zmienić, dodając dowiązania symboliczne
mpm_<chosen>
odmods-available
do domods-enabled
w/etc/apache2
.Tylko jeden jest dozwolony na raz.
źródło
event
MPM jest według miejsca Apache „wariantu MPM pracownika z celem spożywania wątki tylko dla połączeń z aktywnego przetwarzania”.W RedHat i pochodnych po prostu uruchom
top
lubps aux
spójrz na nazwę procesu httpd:httpd
oznacza, że Apache działa jako preforkhttpd.worker
oznacza, że działa jako pracownikźródło
Na RHEL / Fedora / etc uruchom
httpd -V
. Otrzymasz dane wyjściowe, które obejmują:Tutaj „Server MPM” to „Prefork”, więc mój serwer uruchamia prefork MPM.
źródło
Chris Johnson ma rację. Przejdź do httpd.conf => dodaj ten wiersz:
Uruchom ponownie apache: /etc/init.d/httpd restart. Następnie przejdź do informacji o hoście lokalnym / serwerze przez przeglądarkę i spójrz na sekcję Nazwa MPM .
źródło
Oto inna metoda, która, jak się spodziewam, powinna być niezawodna w określaniu, który MPM jest w użyciu. Dodaj następujące elementy do
httpd.conf
:Następnie sprawdź nagłówki za pomocą
curl -I localhost | grep X-MPM
.źródło
na centos (lub rhel) możesz uruchomić to polecenie:
jeśli widzisz
/usr/sbin/httpd.worker
uruchomione, oznacza to, że używa MPM procesu roboczego. jeśli widzisz/usr/sbin/httpd
uruchomiony, oznacza to, że używa preforkźródło
Odpowiedź Chrisa Johnsona jest słuszna.
Po włączeniu modułu informacyjnego, zgodnie z dokumentacją Apache Documentation ( http://httpd.apache.org/docs/2.2/mod/mod_info.html ), ta jedna linijka da Ci MPM, którego używasz:
źródło
Jednym ze sposobów, w jaki mogę to rozgryźć w Debianie, jak dystrybucja, jest uruchomienie:
źródło