Nginx
Sissejuhatus
Nginx on tasuta, avatud lähtekoodiga, kõrgjõudlusega HTTP server ja reverse proxy, samuti IMAP/POP3 proxy server. Nginx'i areng algas aastal 2002, esimene avalik väljalase oli aastal 2004 Igor Sysoev poolt. Hetkel on nginx kasutusel ligi 7,65% (22.8M) kõikidest domeenidest üle maailma.
Nginx on tuntud oma suure jõudluse, stabiilsuse, lihtsa seadistamise ja madal ressursside tarbimisega.
Nginx on kirjutatud haldama C10K probleemi (haldama korraga 10000 klienti). Nginx kasutab skaleeritavaid asünkroonnseid arhitektuure. Selline arhitektuur kasutab vähe mälu koormuse all. Isegi kui ei ole soovi samal ajal tuhandeid kliente teenindada saab siiski kasu nginx suure jõudlusest ja väiksest mälukasutusest. Nginx'is on palju võimalusi, kuni klastriteni serveris.
Paigaldamine
Enamik Linuxi ja BSD distrodes on nginx tavalistest pakettides olemas ning neid saab paigaldada vastava distro paigaldus tarkvaraga. Tasub meeles pidada, et need paketid on tihti vanemate versionidega nginx'ist. Uuemate verasioonide saamiseks on soovitatav paigaldada nginx algallikast.
Ubuntu
Kasutajal peavad olema root õigused käskude sisestamiseks. Ubuntu 10.04 ja uuem:
sudo -s nginx=stable # use nginx=development for latest development version add-apt-repository ppa:nginx/$nginx apt-get update apt-get install nginx
Kui tekib viga, et add-apt-repository ei eksisteeri , siis oleks vaja paigaldada python-tarkvara-omadused.
Teiste Debian / Ubuntu põhinevatel distributsioonide kasutamisel, võib proovida PPA varianti, mis kõige tõenäolisemalt töötab vanemate pakettidega.
sudo -s nginx=stable # use nginx=development for latest development version echo "deb http://ppa.launchpad.net/nginx/$nginx/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-$nginx-lucid.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C apt-get update apt-get install nginx
Win32 Binaries
Alates versioonist 0.8.50 on nginx'is saadaval ka windowsi binaarfailid. Windowsi versioon on saadaval ainult binaarfailidena. Paigaldamine:
cd c:\ unzip nginx-1.0.1.zip ren nginx-1.0.1 nginx cd nginx start nginx
Probleemide puhul võib vaadata logifaili c:\nginx\logs\error.log.
Paigaldamine algallikast
Pärast algallika lahtipakkimist on vaja käivitada terminalis kolm käsku:
./configure make sudo make install
Nginx paigaldatakse asukohta /usr/local/nginx. Asukohta on muidugi võimalik muuta kompileerimise käigus.
Moodulid
Nginx moodulid tuleb valida kompileerimise ajal. Kõik moodulid vajalikud ning sealhulgas vabatahtlikud moodulid, on kirjas paigaldusjuhendist. Näide:
./configure \ --prefix=/usr \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_gzip_static_module \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
Kõige uuemad nimekirjad moodulitest ja valikutest on saadaval käsuga: "./configure --help"
Nõutud moodulid
Nimi | Kirjeldus |
---|---|
Main | Muudatuste vigade logimine, protsessid, õigused, jne. |
Events | Muudatuse epoll, kqueue, select, poll, jne. |
Automaatselt lisatud moodulid
... kui spetsiaalselt ei ole ära keelatud:
Nimi | Kirjeldus | Versioon | Muudatuse argument keelamiseks |
---|---|---|---|
Core | Muudatuste vigade logimine, protsessid, õigused, jne. | --without-http | |
Access | Lubamine / keelamine IP aadressi põhiselt | --without-http_access_module | |
Auth Basic | HTTP autentimine | --without-http_auth_basic_module | |
Auto Index | Genereerib autmaatselt kaustade listid | --without-http_autoindex_module | |
Browser | Tõlgendab "User-Agent" stringi | --without-http_browser_module | |
Charset | rekodeerima veebilehtesid | --without-http_charset_module | |
Empty GIF | serveerib 1x1 pildi mälust | --without-http_empty_gif_module | |
FastCGI | FastCGI tugi | --without-http_fastcgi_module | |
Geo | Määrab konfigureerimise muutujaid kasutades võtme / väärtuse paare IP-aadressides | --without-http_geo_module | |
Gzip | Gzip vastused | --without-http_gzip_module | |
Headers | Määrab suvalise HTTP vastuse päises. | ||
Index | Kontrollib millised failid on kasutusel indexina | ||
Limit Requests | Limiteerib ühenduste sageduse klientilt | 0.7.20 | --without-http_limit_req_module |
Limit Zone | Limiteerib samaaegselt ühendused klientilt | --without-http_limit_zone_module | |
Log | Kohandab juurdepääsu logisid | ||
Map | Määrab seadistamise muutujaid kasutades suvalisi võtme/väärtuse paare | --without-http_map_module | |
Memcached | Memcached toetus. | --without-http_memcached_module | |
Proxy | Puhverserver. | --without-http_proxy_module | |
Referer | Filtreerimine päise järgi. | --without-http_referer_module | |
Rewrite | Ümberkirjutamine kasutades regulaaravaldisi. | --without-http_rewrite_module | |
scgi | scgi protokolli tugi. | 0.8.42 | --without-http_scgi_module |
Split Clients | 0.8.37 | --without-http_split_clients_module | |
SSI | Serveri pool. | --without-http_ssi_module | |
Upstream | Laadimise tasakaalustamine. | --without-http_upstream_ip_hash_module | |
User ID | Identifitseerimise küpsised. | --without-http_userid_module | |
uwsgi | uwsgi protokolli toetus. | 0.8.40 | --without-http_uwsgi_module |
X-Accel | X-Sendfile-like moodul. |
Valikulised HTTP moodulid
Järgnevad moodulid peavad olema lubatud kompilerimise ajal.
Nimi | Kirjeldus | Versioon | Muudatuse argument lubamiseks |
---|---|---|---|
Addition | Lisab teksti lehtedele | --with-http_addition_module | |
Degradation | 0.8.25 | --with-http_degradation_module | |
Embedded Perl | Kasutab Perl'i Nginx konfigureerimise failides | --with-http_perl_module | |
FLV | Flash Streaming Video | --with-http_flv_module | |
GeoIP | Loob muutujad informatsiooniga MaxMind GeoIP binaar failidest | 0.8.6, 0.7.63 | --with-http_geoip_module |
Google Perftools | Google jõudluse kasutamise tugi | 0.6.29 | --with-google_perftools_module |
Gzip Precompression | Serveerib lahti pakitud versioonid staatilistest failidest | 0.6.23 | --with-http_gzip_static_module |
Image Filter | Muudab pildid Libgd'ga | 0.7.54 | --with-http_image_filter_module |
Random Index | Seadistab juhuslikud kataloogi indexid | 0.7.15 | --with-http_random_index_module |
Real IP | Nginx'i backendina kasutamiseks | --with-http_realip_module | |
Secure Link | Kaitseb lehti turvalise võtmega | 0.7.18 | --with-http_secure_link_module |
SSL | HTTPS/SSL tugi | --with-http_ssl_module | |
Stub Status | Serveri statistika vaatamiseks | --with-http_stub_status_module | |
Substitution | Asendab teksti lehtedel | --with-http_sub_module | |
WebDAV | WebDAV läbipääsu tugi | --with-http_dav_module | |
XSLT | Järeltöötleb lehti XSLT'iga | 0.7.8 | --with-http_xslt_module |
Maili moodulid
Nimi | Kirjeldus | Konfigureerimise argument |
---|---|---|
Core | Nginx'is on võimalik kasutada IMAP, POP3, SMTP protokolle | --with-mail, --without-mail_pop3_module, --without-mail_imap_module, --without-mail_smtp_module |
Auth | Kasutab nginx'i maili serverite autentimiseks | |
Proxy | Nginx on võimalik kasutada IMAP, POP3 ja SMTP proxy's | |
SSL | Moodul tagab SSL / TLS toetuse POP3/IMAP/SMTPis | --with-mail_ssl_module |