Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Nginx - lekki serwer www

Ostatnio webnull opisywał na swoim blogu Lighttpd. Dzisiaj opisze jego "konkurenta" w wagę piórkowej wśród serwerów www dla systemów linux/unix.

Nginx jest serwerem WWW (HTTP) oraz serwerem proxy dla HTTP i IMAP/POP3. Jego autorem i producentem jest Igor Sysojew.

Jest on wykorzystywany przez wiele serwisów np. nk.pl w Polsce czy choćby imageshack.us.

Serwer występuje on w dwóch wersjach stabilnych:
- wersji legacy oznaczonej numerem 0.7.68- wersji normalnej stabilnej o symbolu 0.8.54Również dostępna jest wersja w stanie rozwoju oznaczone numerem w tej chwili 0.9.4.

Instalacja serwera
Paczki bądź źródła dla aplikacji znajdują się w większości dystrybucji. W przypadku Debianie, Ubuntu, Linux Mint instaluje się poleceniem:apt-get install nginxi uruchomieniu go poleceniem:/etc/init.d/nginx start

W przypadku FreeBSD:cd /usr/ports/www/nginx make install cleani odpowiednio:/usr/local/etc/rc.d/nginx onestart

Powinien działać. Po wpisaniu w przeglądarkę adresu http://localhost bądź http://127.0.0.1 powinna ukazać się strona:

Plikiem konfiguracyjnym dla serwera jest to:/etc/nginx/sites-enabled/defaultoraz wszystkie znajdujące się w tym katalogu.

Można go odpowiednio zmodyfikować, w przypadku samej obsługi html i plików wystarczy następująca konfiguracja:server { server_name `adres ip bądź domena lub oba na raz`; #Autoindex `listowanie plikow`. autoindex on; index index.html; root `adres dla public_html np. /home/user/public_html`; }

Mój wygląda tak:server { server_name localhost 192.168.1.130; autoindex on; index index.php index.html; include /etc/nginx/fastcgi_params; root /home/mateusz/public_html; }

Instalacja nginx z obsługą php, spawn-fcgi

Tutaj małe ułatwienie w konfiguracji. Adam 'Rocik' Wicherek przygotował skrypt - instalator nginx + fastcgi dla Debiana i jego pochodnych.
Instalacja skryptu (jako root):wget http://warsztat.rocik.net/instalator_n chmod +x instalator_n ./instalator_ni należy postępować według poleceń.

W przypadku FreeBSD nie jest tak zielono, ale łatwo można sobie poradzić. Bardzo dobry poradnik na ten temat znajduje się tutaj.

Przykładowe ustawienia plików konfiguracyjnych:

- /etc/nginx/sites-enabled/default:server { server_name localhost 192.168.1.130; autoindex on; index index.php index.html; include /etc/nginx/fastcgi_params; root /home/mateusz/public_html; } - /etc/nginx/fastcgi_params:location ~ .php\$ { #try_files \$uri @404; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param QUERY_STRING \$query_string; fastcgi_param REQUEST_METHOD \$request_method; fastcgi_param CONTENT_TYPE \$content_type; fastcgi_param CONTENT_LENGTH \$content_length; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; fastcgi_param SCRIPT_NAME \$fastcgi_script_name; fastcgi_param REQUEST_URI \$request_uri; fastcgi_param DOCUMENT_URI \$document_uri; fastcgi_param DOCUMENT_ROOT \$document_root; fastcgi_param SERVER_PROTOCOL \$server_protocol; fastcgi_param REMOTE_ADDR \$remote_addr; fastcgi_param REMOTE_PORT \$remote_port; fastcgi_param SERVER_ADDR \$server_addr; fastcgi_param SERVER_PORT \$server_port; fastcgi_param SERVER_NAME \$server_name; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } # 404 if phpscript dont exist. #location @404 { return 404; break; }- /etc/nginx/php.confphp_processes 4 php_user www-data php_group www-data php_port 9000 php_address 127.0.0.1

Pobieranie zasobów

W przybliżeniu wychodzi ok. 800 KB na jeden proces serwera.

 

Komentarze

0 nowych
roobal   15 #1 06.02.2011 00:55

Warto też wspomnieć, że w Niginx oprócz lekkości chodzi też o to, że wytrzymuje duże obciążenie i pomimo tego wciąż działa szybko.

"W przypadku FreeBSD:

cd /usr/ports/www/nginx
make install clean"

Albo też

pkg_add -r nginx

warto o tym wspominać, nie każdy lubi/potrzebuje kompilować z kodu źródłowego, a w przypadku Debiana/Ubuntu/itp. nie podałeś, jak skompilować z kodu źródłowego przy pomocy apt-get ;)

Pozdrawiam!

mati75   6 #2 06.02.2011 17:42

@ roobal
Z freebsd racja. Użytkownicy Debian/Ubuntu są za leniwy na kompilacje ze źródeł, bo skoro mają w paczkach to po co kompilować.

  #3 07.02.2011 18:09

osz.. w mo.... ale to lekkie lighty to grubasek przy nim, nie badalem go ale skoro piszesz ze stoi na tym nk i jesli to prawda to mysle ze pozycja godna uwagi.

  #4 07.02.2011 19:55

Hej a wiecie moze jak zainstalowac php5 BEZ apache? Chodzi mi o to ze instaluje nginx potem pisze aptitude install php5 a on mi apacha instaluje, po co mi on jak mam juz nginx ??

  #5 07.02.2011 21:58

nie idzie tego wlaczyc...

  #6 09.07.2012 03:05

A nie trzeba php-cgi zainstalować ? :)

  #7 22.09.2013 01:10

BTW. w jednym server można zrobić public_html wszystkim użytkownikom na raz..

http://wiki.nginx.org/UserDir

Minimalne uprawnienia *każdego katalogu* aż do pliku docelowego włącznie: +r

  #8 22.09.2013 13:20

Dla katalogów oczywiście wystarczy '+x', późna godzina robi swoje..