Você está na página 1de 16

Servidor Web

de Alta
Performance
com NGINX

Mais em: www.profissionaislinux.com.br


Servidor Web de Alta Performance com NGINX
Servidor Web de Alta Performance com NGINX
● O NGINX (engine x) é um servidor HTTP e um Proxy
reverso;
● Serve páginas estáticas e suporta também FASTCGI
(php)
● Proxy reverso com cachê
● Load balance
● Streamming de FLV e MP4
Servidor Web de Alta Performance com NGINX
● http://news.netcraft.com/archives/category/web-server-survey/
Servidor Web de Alta Performance com NGINX
Servidor Web de Alta Performance com NGINX
Servidor Web de Alta Performance com NGINX
● Em um experimento usando o Apache 2.x e NGINX, para
servir uma página HTML, temos o seguinte resultado:

● Apache: 4 processos WORKER, 30% CPU, 17MB de


memória, conseguiu abrir 6.500 requests por
segundo.
● Nginx: apenas 1 processo,15% CPU, 1MB de
memória, conseguiu abrir 11.500 requests por
segundo.
Servidor Web de Alta Performance com NGINX

Como Configurar um Servidores de Alta
Performance com NGINX - Proxy Reverso
do Apache
Servidor Web de Alta Performance com NGINX

Passo 1
# apt-get install nginx


Passo 2
#vim /etc/nginx/sites-available/plinux
Servidor Web de Alta Performance com NGINX
server {
listen 80;

root /var/www/www.plinux;
index index.php index.html index.htm;

server_name www.plinux;

location / {
try_files $uri $uri/ /index.php;
}

location ~ \.php$ {

proxy_set_header X-Real-IP $remote_addr;


proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;

location ~ /\.ht {
deny all;
}
}
Servidor Web de Alta Performance com NGINX
● Características definidas nesta configuração:

● Definição do diretório base (root) para a aplicação WEB;


● index.php foi definido como página de entrada;
● A configuração try_files define que todas as requisições serão
tratadas pelo nginx, caso não seja possível, a requisição será
redirecionada para o proxy (Apache);
● proxy_pass: Define o endereço do servidor proxy;
● location ~ /\.ht: Bloqueia o acesso direto ao .htaccess.
● Esta configuração garante que todo arquivo com a extensão .php, será redirecionado para o Apache, que
irá rodar na porta 8080.
Servidor Web de Alta Performance com NGINX
● Ativando o virtual host:
# ln -s /etc/nginx/sites-available/plinux
/etc/nginx/sites-enabled/plinux

● Remova a configuração padrão do nginx:


#rm /etc/nginx/sites-enabled/default
Servidor Web de Alta Performance com NGINX
● Testes de stress no Apache / NGINX com o comando ab
● # ab -n 10000 -c 100 http://IP_SERVIDOR/
Servidor Web de Alta Performance com NGINX
● Instalação do php5-fpm no NGINX

# apt-get install php5-fpm


# vim /etc/nginx/sites-available/plinux
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
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;
}
Servidor Web de Alta Performance com NGINX
● Instalanção do php5-fpm no NGINX

# service nginx reload

# vim /etc/php5/fpm/php.ini
...
cgi.fix_pathinfo=0:

# service php5-fpm reload


#Nível 4 - Expert

www.profissionaislinux.com.br