Alta Performance de Aplicações Web em PHP - Nginx

2,821 views

Published on

Palestra sobre alta performance de aplicações web em PHP e Nginx ministrada no PHP-SC Conf 2010

Published in: Self Improvement
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,821
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Alta Performance de Aplicações Web em PHP - Nginx

  1. 1. Alta Performance de Aplicações PHP com Nginx Thiago Paes – Desenvolvedor Web http://thiagopaes.com.br
  2. 2. Alta performance de aplicações PHP com Nginx <ul><li>Apresentando </li></ul><ul>Nginx (pronunciado &quot;engine x&quot;) é um servidor e proxy reverso HTTP de alta performance, gratuito e open-source, bem como um servidor proxy para IMAP/POP3. Escrito por Igor Sysoev em 2005, Nginx agora hospeda entre 1% e 4% de todos os domínios do mundo, dentre eles, sites de grande visitação como WordPress, Hulu, Github, Ohloh, SourceForge e TorrentReactor. Mesmo ainda em beta, o Nginx é conhecido por sua estabilidade, rico conjunto de características/facilidades, simples configuração e baixo consumo de recursos. </ul>Fonte: http://wiki.nginx.org/NginxPtBr
  3. 3. <ul><li>Onde Utilizar </li></ul>Alta performance de aplicações PHP com Nginx <ul>Máquinas com poucos recursos Economia $$ Aplicações de pequeno a médio porte Servir conteúdo estático Diversão :) </ul>
  4. 4. <ul><li>Quem utiliza ? </li></ul>Alta performance de aplicações PHP com Nginx <ul>Segundo a W2Techs, aproxidamente 51% de 1 milhão de grandes sites na web (segundo relatórios da Alexa) usam Nginx de alguma forma em sua estrutura. Nginx ja é o terceiro webserver mais utilizado, logo após Apache (70.2%) e IIS (20.5%). Nginx foi originalmente criado para: <li>Rambler – o segundo site mais visitado da Rússia. Alexa Top 500:
  5. 5. WordPress
  6. 6. FC2
  7. 7. Youporn
  8. 8. TorrentReactor
  9. 9. Ultimate Guitar
  10. 10. Scribd
  11. 11. Badoo </li></ul>
  12. 12. <ul><li>Instalando </li></ul>apt-get install nginx php5-cgi php5-memcache memcached wget http://thiagopaes.com.br/src/php-fcgid chmod +x php-fcgid ./php-fcgid start /etc/init.d/nginx start /etc/init.d/memcached start Alta performance de aplicações PHP com Nginx
  13. 13. <ul><li>Configurando </li></ul># /etc/nginx/sites-available/default server { listen 80; server_name localhost; location / { root /var/www; index index.php index.html index.htm; autoindex on; } location ~ .php$ { fastcgi_pass unix:/tmp/php-cgi.pid; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; include fastcgi_params; } } # /etc/php5/cgi/php.ini ... cgi.fix_pathinfo=1 ... Alta performance de aplicações PHP com Nginx
  14. 14. <ul><li>CakePHP </li></ul># /etc/nginx/sites-available/default Server{ location / { root /var/www/app/webroot; index index.php; autoindex on; if (-f $request_filename) { break; } if (!-f $request_filename) { rewrite ^/(.+)$ /index.php?url=$1 last; break; } } } Alta performance de aplicações PHP com Nginx
  15. 15. <ul><li>Zend Framework </li></ul>#/etc/nginx/sites-available/default Server { location / { root /var/www; index index.php; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php? last; break; } } } Alta performance de aplicações PHP com Nginx
  16. 16. <ul><li>Proibindo acesso </li></ul>#/etc/nginx/sites-available/default Server { location ~ ^/(conf|templates|logs)/ { deny all; } } Alta performance de aplicações PHP com Nginx
  17. 17. <ul><li>Autenticação HTTP </li></ul>#/etc/nginx/sites-available/default Server { location ~ /admin { root /var/www/admin; autoindex on; auth_basic &quot;Restricted&quot;; auth_basic_user_file /var/www/admin/.htpasswd; } } Alta performance de aplicações PHP com Nginx
  18. 18. <ul><li>Economia de Banda </li></ul># /etc/nginx/nginx.conf Http { gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_disable &quot;MSIE [1-6].&quot;; gzip_http_version 1.0; gzip_comp_level 6; gzip_proxied any; gzip_types text/plain text/css application/x-javascript text/javascript; output_buffers 1 32k; postpone_output 1460; } # /etc/nginx/sites-available/default Server { location ~ /.(jpg|jpeg|gif|css|png|js|ico|html)/$ { access_log off; expires 30d; } } Alta performance de aplicações PHP com Nginx
  19. 19. <ul><li>Userdir </li></ul># /etc/nginx/sites-available/default Server { # userdir redirection location ~ ^/~([^/]+)/(.+.php)$ { if (!-f /home/$1/public_html/$2) { rewrite ^ 404; } alias /home/$1/public_html/$2; fastcgi_pass unix:/tmp/php-cgi.pid; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; include fastcgi_params; } location ~ ^/~([^/]+)(/.*)?$ { alias /home/$1/public_html$2; autoindex on; } } Alta performance de aplicações PHP com Nginx
  20. 20. <ul><li>MemCache </li></ul>Alta performance de aplicações PHP com Nginx <ul>$objCache = new Memcache(); $objCache->pconnect('localhost', '11211'); $arrPosts = $objCache->get('posts'); if ($arrPosts === false) { $arrPosts = Twitter::listar('mrprompt', null, 1, 5); $objCache->set('posts', $arrPosts, 0, 600); } foreach($arrPosts as $arrPost) { echo $arrPost['strPost'] . '<br />'; } </ul>
  21. 21. <ul><li>Mais informações
  22. 22. Site http://nginx.net/
  23. 23. Fórum http://forum.nginx.org/
  24. 24. Wiki http://wiki.nginx.org/
  25. 25. Minha página http://thiagopaes.com.br
  26. 26. Oráculo http://www.google.com </li></ul>Alta performance de aplicações PHP com Nginx
  27. 27. <ul><li>Contatos </li></ul>Alta performance de aplicações PHP com Nginx E-mail: thiago@thiagopaes.com.br MSN: [email_address] ICQ: 57975647 Gtalk: [email_address] Skype: mrprompt

×