Nginx to lekki serwer http i reverse proxy. Potrafi także działać jako load balancer, dlatego często określany jest jako router HTTP. Stanowi poważną alternatywę dla przeładowanego apache. W środowisku prodykcyjnym nginx zaskakuje wydajnością oraz małym zużyciem pamięci co jest zaletą dla dużych jak wordpress.com jak i małych jak słabiutki vps z 128MB.
Na niekorzyść nginx-a przemawia fakt, braku wsparcia plików .htaccess oraz składnia modułu rewrite jest nieco inna od składni mod_rewrite. Brak obsługi .htaccess determinuje konieczność wprowadzania czy to dyrektyw rewrite czy innych obsługiwanych w .htaccess do konfiguracji serwera przez jego administratora.
Przewagę jaką uzyskuje nginx nad popularnym apachem wynika z modelu obsługi przychodzących połączeń. W Apache każde nowe połączenie wymaga uruchomienia nowego procesu (mpm-prefork) lub wątku (mpm-worker), który obsłuży przychodzące żądanie.
http://www.ulos.pl/
I. INSTALACJA NGINX
1. Usuwamy ewentualnie Apache2 jeżeli aktualnie go używamy:
apt-get purge apache2* apt-get autoremove -y
2. Instalujemy nginx
apt-get install nginx -y
3. Uruchamiamy:
service nginx start
Po wczytaniu w przeglądarce IP naszego serwera ukaże się napis powitalny.
4. Edytujemy parametry serwera nginx, aby pracowal uzywajac jedcnego rdzenia CPU
nano /etc/nginx/nginx.conf
I ustawiamy odpowiednia cyfre w linii:
worker_processes 1;
5. Edytujemy vHost do obsługi PHP
nano /etc/nginx/sites-available/default
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name server.unixmen.local;
- listen 80; –> Port na jakim nasłuchuje serwer WWW
- listen [::]:80 default_server ipv6only=on; –> Obsługa IPv6
- root /usr/share/nginx/html; –> domyślny katalog z którego będzie wyświetlana witryna
- server_name server.unixmen.local; –> Server FQDN.
Obsługa PHP
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
Resetujemy serwer nginx po wprowadzeniu zmian z powyższego punktu:
service nginx restart
II. Instalacja bazy danych MariaDB (mozliwa równiez instalacja MySQL) oraz PHP5
1. Dodanie repozytoriów
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db echo "deb http://mariadb.kisiek.net//repo/10.0/debian wheezy main" > /etc/apt/sources.list.d/mariadb.list apt-get update; apt-get install mariadb-server mariadb-client -y
Podczas instalacji uzupełniamy hasło do konta root serwera bazy.
2. Instalacja PHP5
apt-get install php5 php5-fpm php5-mysql -y
W pliku /etc/php5/fpm/php.ini edytujemy [ usuwamy komentarz # lub wklejamy na końcu ]:
nano /etc/php5/fpm/php.ini
cgi.fix_pathinfo=0
Restart procesu PHP-FPM
service php5-fpm restart
3. Test działania:
echo "<?php phpinfo(); ?>" >> /usr/share/nginx/www/testphp.php
W przegladarce teraz http://<twoj-ip>/testphp.php powinny pojawić się info o PHP 🙂
III. Instalacja phpmyadmin:
1. Instalacja:
apt-get install phpmyadmin -y
Podczas wyboru aktualnie używanego serwera WWW wybierz po prostu lighttpd, domyślnie phpmyadmin nie zna serwera nginx. Oraz pamietaj o poprawnej konfiguracji haseł: konta root MariaDB i bazy danych od phpmyadmin’a
2. Dostęp do phpmyadmin:
ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www
I na koniec:
service nginx restart
http://<twoj-ip>/phpmyadmin