Blog (21)
Komentarze (359)
Recenzje (0)
@mati75Nginx - lekki serwer www

Nginx - lekki serwer www

05.02.2011 20:08

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.54 Ró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 nginx

i uruchomieniu go poleceniem:

/etc/init.d/nginx start

W przypadku FreeBSD:

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

i 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:

378086

Plikiem konfiguracyjnym dla serwera jest to:

/etc/nginx/sites-enabled/default

oraz 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_n

i 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.conf

php_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.

378108
Wybrane dla Ciebie
Komentarze (8)