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 |
Lisad
Need moodulid ei ole ametlikult toetatud. Siiski paljud neist võib osutuda kasulikuks ning kasutamine on omal vastutusel. Moodulid on tavaliselt lisatud nginx'i algallikas. Nginx'i kataloogis kirjutage:
./configure --add-module=/path/to/module1/source \ --add-module=/path/to/module2/source
Võib kasutada nii palju kui tahad "--add-module" argumente. Arvestada tasub, et mõned moodulid vajavad lisa tarkvara installeerimist süsteemi.
Tuntud mooduli
Nimi | Kirjeldus |
---|---|
Access Key | Keelab ligipääsu, kui just URL ei nõua juurdepääsu võtit |
AFCGI | Multipleksimise FastCGI jaoks nginx'is |
Array Var | Lisab toetuse array muutujate jaoks konfigureerimise failides |
Auth PAM | HTTP autentimises kasutades PAM'i |
Auto Lib | Taaskasutab eel-kompileeritud versioone OpenSSL, PCRE ja Zlib ilma, et peaks uuesti kompileerima kui Ngix'i kompileeritakse |
Cache Purge | Moodul võimaldab puhastada sisu FastCGI, proxy, ja uWSGI vahemälust |
Circle GIF | Genereerib ümarad pildid kindla värvi ja suurusega URL'is |
Development Kit | Core laiendamise funktsioon mida sab kasutada teiste moodulitega |
Drizzle | Nginxi suhtlemiseks otse mysql ja drizzle'iga |
Echo | Toob "echo", "sleep", "time", "exec" shell-stiilis lisad nginx'i config faili |
GeoIP | Riigi koodide otsing kasutades MaxMind GeoIP API |
GridFS | Nginx'i moodul lugemaks faile MongoDB's GridFS'st |
Headers More | Lisab ja eemaldab sisendeid ja välundeid päisest |
HTTP Redis | Redis'e toetus |
Iconv | nginx'i konverteerimine kasutades libiconv'i. |
Image Hacker | Piltide töötlemine |
Log Request Speed | Aja, mis võttis iga päringi töötlemine, logimine |
Memc | Memcached'i laiendatud versioon,mis toetab set,add,delete ja muid käske. |
Notice | POST taotlusele serveerib staatilisi faile |
RRD Graph | HTTP liidesele grafilise väljundi lisamiseks RRDtool'is |
Secure Download | Loob kehtetud lingid |
sFlow | Tegevuse monitoorimiseks sFlow protokollis |
Strip | Tühiku eemaldamiseks |
Upload Progress | Jälgib üleslaadimist |
Zip | Kogub zip arhiive |
Tööriistad mooduli arendajale
Nimi | Kirjeldus |
---|---|
Nginx Auto Lib Core | Fail moodul arendajatele enda moodulite lisamiseks |
Nginx Development Kit | Core funktsionaalsuse laiendamiseks, mida saab kasutada teiste moodulitega |