Optimize Nginx for performance

There are many possible real life cases and not all optimization technics will be suitable for you but I hope it will be a good starting place. Also you shouldn鈥檛 copy paste examples with faith that they will make your server fly 馃槂 You have to support your decisions with excessive tests and help of monitoring system (ex. Grafana). Cache static and dynamic content Setting caching static and dynamic content strategy may offload your server from additional load from repetitive downloads of same, rarely updated files....

2016-01-14 路 6 min

fail2ban - block wp-login.php brute force attacks

Lately I had a lot of brute force attacks on my WordPress blog. I used basic auth to /wp-admin part in nginx configuration to block this and as a better solution I wan鈥檛 to block source IPs at all on firewall. To do this, place this filter code in /etc/fail2ban/filter.d/wp-login.conf: # WordPress brute force wp-login.php filter: # # Block IPs trying to authenticate in WordPress blog # # Matches e.g. # 178....

2015-12-31 路 1 min

Nginx - enabling SPDY with freeware certificate

I was thinking about allowing access to my website using SPDY protocol for better performance and security (and for fun of course 馃槂 ). But SPDY have one disadvantage - you need SSL certificate signed by known authority that will verfiy in common browsers. So you can鈥檛 use self signed certificates because everyone will see a warning entering your site. Certs are quite expensive so I started searching for free one and to my surprise I found such!...

2014-01-24 路 2 min

Preparing video files for streaming on website in MP4 and WEBM format

Some time ago I prepared a PC that was responsible for batch encoding of movies to formats suitable for web players (such as. Video.js, JW Player, Flowplayer, etc.) I used HandBrake for conversion to MP4 format (becase this soft was the fastest one) and ffmpeg (aka avconv in new version) for two pass encoding to WEBM. Below are commands used by me for that conversion: MP4 HandBrakeCLI -e x264 -q 20....

2013-12-16 路 2 min

Nginx - przydatne rewrite鈥檡 i r贸偶ne sztuczki

Polubi艂em Nginx鈥檃 i wykorzystuj臋 go na coraz wi臋cej sposob贸w. Kilka rzeczy uda艂o mi si臋 ca艂kiem fajnie w nim skonfigurowa膰 i postanowi艂em zebra膰 te przyk艂ady by nast臋pnym razem gdy postanowi臋 do nich si臋gn膮膰 nie musie膰 wertowa膰 konfig贸w po serwerach 馃槂 S艂owo wst臋pu Niekt贸re rewrite鈥檡 ko艅cz膮 si臋 znakiem ? - czemu? Ot贸偶 Nginx pr贸buje automatycznie dodawa膰 parametry na ko艅cu przepisanego adresu. Je艣li jednak wykorzystamy zmienn膮 $request_uri to ona sama w sobie zawiera ju偶 parametry zapytania (czyli to co w URI znajduje si臋 po znaku ?...

2013-09-09 路 6 min

Nginx - hide server version and name in Server header and error pages

On Debian you have to install nginx-extras package (because it have built in headers_more module). Then you need two options (best in global configuration /etc/nginx/nginx.conf file, http part): server_tokens off; more_set_headers 'Server: BadAss'; And it鈥檚 good to setup non standard error pages on every site (500 and 404 at minimum): error_page 403 404 http://mysite.com/areyoulost; error_page 502 503 504 /500.html;

2013-01-24 路 1 min

Nginx - kompresowanie plik贸w dla gzip_static

Ruski serwer WWW ma przydatn膮 funkcj臋 serwowania wersji plik贸w skompresowanych gzip鈥檈m - przez co mo偶emy plik skompresowa膰 raz i b臋dzie on serwowany klientom obs艂uguj膮cym kompresj臋 HTTP ale ju偶 bez ka偶dorazowego kompresowania go. Jest to bardzo przydatne na stronach z du偶ym ruchem gdzie mo偶na w ten spos贸b zaoszcz臋dzi膰 takty CPU na w艂a艣ciw膮 obs艂ug臋 po艂膮cze艅 a nie kompresj臋. Drugie miejsce gdzie mo偶e to by膰 przydatne to VPS鈥檡 i 鈥渃ienkie鈥 serwery, kt贸re na kompresji przy wi臋kszym聽obci膮偶eniu聽sp臋dzaj膮 zbyt du偶o czasu i daje si臋 to odczu膰 w dzia艂aniu strony....

2012-12-17 路 3 min

Nginx - konfiguracja pod WordPress鈥檃

To raczej nie jest podstawowy konfig i pr贸偶no szuka膰 go na stronie WordPress鈥檃, wi臋c odradzam t臋 zabaw臋 je艣li nie zna si臋 zbyt dobrze nginx鈥檃. Poniewa偶 serwerek, na kt贸rym dzia艂a stronka to sprz臋cik z Atomem 330 i mocy na CPU zbyt wiele nie ma to popularne pluginy (np. W3 Total Cache) potencjalnie zwi臋kszaj膮ce wydajno艣膰 tak na prawd臋 zmula艂y stronk臋 jeszcze bardziej. Plugin贸w sprawdzi艂em kilka i ka偶dorazowo efekt by艂 podobny - stronka dzia艂a艂a wolniej ni偶 bez ich pomocy....

2012-06-29 路 8 min

Nginx - ustawienie domy艣lnego vhosta

Ustawienie domy艣lnego vhosta w nginx鈥檌e jest 艂adnie opisane w dokumentacji i pocz膮tkowo wydawa艂o si臋 dobrze dzia艂a膰 ale gdy wykorzysta艂em t膮 konfiguracj臋 na serwerze z wieloma adresami IP i nas艂uchiwaniem na porcie 80 (bez podania IP) to zachowywa艂o si臋 to do艣膰 dziwnie (przewa偶nie nie 艂adowa艂o tej strony kt贸r膮 chcia艂em). Od teraz tworz臋 konfiguracj臋 domy艣lnego vhosta dla ka偶dego z dost臋pnych adres贸w IP. Powiem szczerze 偶e nie mia艂em czasu na g艂臋bsze zbadanie tego zachowania i wykorzysta艂em聽rozwi膮zanie, kt贸re dzia艂a艂o w ka偶dym przypadku czyli po jednym konfigu na IP + przekierowanie na og贸ln膮 stron臋....

2012-06-18 路 1 min

Nginx - m贸j domy艣lny config

W tym po艣cie nie rozpisz臋 si臋 zbytnio - wrzucam tylko config od kt贸rego zaczynam konfiguracj臋 nginx鈥檃. user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 1024; ## zaakceptuj tak du偶o po艂膮cze艅 jak to mo偶liwe multi_accept on; ## epoll jest preferowany na jajkach od 2.6 ## http://www.kegel.com/c10k.html#nb.epoll use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## opcje TCP sendfile on; tcp_nopush on; tcp_nodelay on; ## maksymalny rozmiar zapytnia client_max_body_size 10m; ## timeout'y client_body_timeout 60; client_header_timeout 60; keepalive_timeout 10; send_timeout 60; ## kompresja gzip on; gzip_static on; gzip_vary on; gzip_disable "msie6"; gzip_comp_level 1; gzip_proxied any; gzip_buffers 16 8k; gzip_min_length 50; gzip_types text/plain text/css application/json application/x-javascript application/javascript text/javascript application/atom+xml application/xml application/xml+rss text/xml image/x-icon text/x-js application/xhtml+xml; ## bezpiecze艅stwo ## security by obscurity - ukrywamy wersj臋 nginx'a server_tokens off; ignore_invalid_headers on; ## resetuj zbyt d艂ugie po艂膮czenia - powinno pom贸c na slowlorisa reset_timedout_connection on; ## w艂膮czenie ochrony przed clickjackingiem - uruchamiam to per vhost ## https://developer....

2012-06-08 路 2 min