Instalando Nginx, PHP-FPM, APC, Varnish e MySQL no Ubuntu Server 12.04
Se você possui um blog ou fórum em crescimento, vai chegar o dia em que uma simples hospedagem compartilhada não dará mais conta do recado, e um upgrade para um VPS ou servidor dedicado será necessário.
Uma boa hospedagem compartilhada, como a da Speedysparrow por exemplo, consegue suportar uma média de 6 a 7 mil visitantes únicos diários, mas sabemos que grande parte dessas hospedagens estarão pedindo arrego já nos primeiros mil visitantes, lhe obrigando a fazer este upgrade mesmo que você não tenha nenhum conhecimento no assunto.
Uma boa hospedagem é a diferença entre um site lento e um site “Speed Racer”
O resultado disso são milhares de blogs e fóruns promissores indo para o buraco, pois seus administradores não possuem o conhecimento necessário para configurar um servidor e os tutoriais disponíveis sobre o assunto na internet são antigos, inacabados ou até mesmo, errados.
O propósito dessa pequena série de tutoriais é lhe ajudar a instalar e configurar os pacotes necessários para rodar seu blog ou fórum de forma satisfatória, otimizada e segura. Pronto para dar este passo? Vamos lá então (:
Avisos iniciais
Antes de iniciarmos precisamos de uma pequena preparação mental e de ambiente. Vá para um local tranquilo, onde você possa se concentrar, pois as tarefas que vamos realizar nessa série de tutoriais requer paciência, tranquilidade e concentração.
Concentração e atenção são essenciais quando se trabalha com servidores
Agora que você está em um local tranquilo, feche qualquer coisa que possa lhe distrair, como mensageiros instantâneos, redes sociais ou o HQ NUUX. Abra apenas o terminal e sua pasta pessoal, pois vamos utilizá-los bastante. Feito isso, que a diversão comece :)
Escolhendo a hospedagem certa para seu VPS
Em todo o tutorial estarei assumindo que seu servidor possui uma CPU com apenas um núcleo disponível e 786 megabytes de memória RAM. Além disso, estarei assumindo que o servidor está localizado nos Estados Unidos e que os discos rígidos estão em RAID 10, permitindo uma boa velocidade de leitura e escrita. Tudo isso rodando via OnApp com o Ubuntu 12.04 Server instalado.
Plano VM2 da Speedysparrow possui tudo o que precisamos por $ 38,00
As configurações citadas acima se encontram no plano VM2 da Speedysparrow, que você pode adquirir por $ 38,00 (algo em torno de R$ 75,00). Na página da empresa eles oferecem apenas CentOS e CloudLinux, mas basta pedir ao Eric ou ao Sean que eles farão a instalação do Ubuntu 12.04 Server. Em breve farei um artigo falando sobre os serviços da empresa e porque a recomendo para meus clientes, mas por hora, você terá que confiar no que estou dizendo.
Recomendo fortemente que escolha a empresa citada, pois tenho experiência com ela e posso afirmar que os serviços são de excelente qualidade, além de oferece um suporte que posso qualificar como 11/10. Caso não confie no meu julgamento e experiência, deixo um último aviso, na esperança de que o siga: NÃO escolha hospedagens brasileiras. As mesmas que me desculpem, mas os serviços, preços e softwares ainda estão muito aquém dos oferecidos pelas hospedagens internacionais, e infelizmente, ainda usam e abusam do chamado oversell.
Fique de olho: disco e transferência ilimitadas NÃO existem! Que feio hein Host Gator?
Instalando o Nginx no Ubuntu Server 12.04
A menos que você trabalhe ou esteja em contato com o ramo de hospedagem de sites, você talvez nunca tenha ouvido falar do Nginx. O Nginx é um servidor web open source que faz praticamente tudo que o Apache faz, só que muito mais rápido! Sim, a época de ouro do Apache acabou, temos um novo garoto popular na área.
Nginx: servidor web open source que faz praticamente tudo que o Apache faz, só que muito mais rápido
Ele possui um excelente desempenho e um consumo de memória baixíssimo, o que o torna ideal para o VPS que temos em mãos para este tutorial. Logue-se via SSH no seu VPS com os dados enviados pela hospedagem e vamos colocar as mãos na massa!
A versão do Nginx disponível nos repositórios oficiais do Ubuntu 12.04 é a 1.1.19, mas queremos a usar a versão estável atual, então vamos adicionar o repositório PPA oficial do Nginx ao nosso VPS. Para isso, digite o seguinte comando no terminal:
nano /etc/apt/sources.list
Com o arquivo de repositórios aberto, navegue até o final do arquivo com as setas de direção do seu teclado e adicione a linha abaixo:
deb http://ppa.launchpad.net/nginx/stable/ubuntu precise main
Adicione o repositório PPA do Nginx no final do arquivo sources.list
Feito isso, aperte <Ctrl + O> para salvar e <Ctrl + X> para fechar o arquivo e voltar ao terminal. Agora ainda com o terminal aberto, vamos adicionar a chave de autentificação do PPA, atualizar a lista de repositórios e atualizar o sistema todo. Copie e cole os comandos abaixo, lembrando de dar enter ao final de cada linha:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C sudo apt-get update && sudo apt-get upgrade
Agora que nosso sistema está atualizado e o repositório oficial do Nginx está adicionado a ele, está na hora de instalarmos este maravilhoso servidor web. Para isso, digite o seguinte comando no terminal:
sudo apt-get install nginx
Pronto, nosso servidor web está instalado! Vamos deixar para iniciá-lo depois, quando tivermos tudo pronto. Vamos a instalação do PHP-FPM e do APC agora? (:
Instalando PHP-FPM e APC no Ubuntu Server 12.04
Neste passo vamos instalar o PHP-FPM para cuidar do PHP do WordPress, phpBB ou qualquer que seja o script que você esteja usando. O PHP-FPM é uma alternativa ao PHP FastCGI com algumas funcionalidades adicionais voltadas a sites com grandes números de acessos, o que é exatamente o que estamos querendo aqui.
Combine o Nginx com o PHP-FPM e o PHP-APC e tenha um site ao estilo The Flash (:
Também vamos instalar uma extensão do PHP que irá nos ajudar muito, o PHP-APC. Resumindo mal e porcamente, o APC é um cache de op-code que aumenta significativamente o desempenho do seu site ou fórum. Vamos lá?
Assumindo que você não fechou o terminal ainda, copie e cole os comandos abaixo:
sudo apt-get install php5-fpm php5-suhosin php-apc php5-gd php5-imagick php5-curl
Aguarde a instalação terminar e voilà! Temos o PHP-FPM e o APC instalados no sistema. Hora de instalar o MySQL Server (:
Instalando o MySQL Server no Ubuntu Server 12.04
Como o foco deste tutorial é, principalmente, o WordPress, vamos fazer a instalação do MySQL como banco de dados padrão. Mas ao invés de usarmos o servidor MySQL da Oracle, usaremos um fork criado pela Percona, que mantém compatibilidade total com o da Oracle mas oferece melhor performance e uso de recursos.
O Percona’s MySQL Server não está disponível nos repositórios padrões do Ubuntu Server 12.04, portanto vamos adicionar os repositórios da própria Percona. Para isso, ainda com o terminal aberto, copie e cole o seguinte comando:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A gpg -a --export CD2EFD2A | sudo apt-key add - nano /etc/apt/sources.list
Com as chaves instalados e o arquivo de repositórios aberto, navegue até o final do arquivo com as setas de direção do seu teclado e adicione a linha abaixo logo após a linha do Nginx:
deb http://repo.percona.com/apt precise main
Apertepara salvar epara fechar o arquivo e voltar ao terminal. Ainda com o terminal aberto, vamos adicionar atualizar a lista de repositórios, atualizar o sistema todo e fazer a instalação do servidor MySQL. Copie e cole os comandos abaixo, lembrando de dar enter no:
sudo apt-get update && sudo apt-get install percona-server-server-5.5 php5-mysql
Preste atenção na instalação pois será pedido para você digitar uma senha para o usuário root do banco de dados. Use uma senha grande e segura, e anote-a em algum lugar onde você pode lembrar-se. Recomendo usar o KeePassX, um gerenciador de senhas muito eficiente e simples de usar.
Instalando o Varnish no Ubuntu Server 12.04
O Varnish é um acelerador de requisições HTTP que deixa seu site insanamente mais rápido, ainda mais quando em conjunto com o Nginx, PHP-FPM e APC. Ele é basicamente um proxy HTTP reverso que fica entre o usuário e o servidor web, fazendo uma análise dos conteúdos mais acessados e armazenando-os em cache na memória RAM.
Red Bull pode até te dar asas, mas é o Varnish Cache que fará seu blog voar
Costumo dizer que o Varnish é como os famosos tanks dos MMORPGs: fica na linha de frente levando porrada e deixando as coisas mais fáceis para quem está atrás poder fazer seu serviço. Além de acelerar seu website, o Varnish também pode ser uma bela linha de segurança contra ataques DDoS, então o considero essencial em qualquer setup.
A instalação no Ubuntu Server 12.04 é bem simples, visto que ele está disponível nos repositórios oficiais. Ainda com o terminal aberto, copie e cole os comandos abaixo:
sudo apt-get install varnish
E agora… bem, é só isso mesmo. O Varnish está instalado e pronto para ser configurado (:
Configurando e fazendo os serviços se comunicarem
Agora que temos todos os serviços necessários instalados, está na hora de configura-los de forma que eles se comuniquem e funcionem da forma mais otimizada possível. Vamos começar pelo PHP-FPM, já que é a configuração mais rápida.
Com o terminal aberto, copie e cole o comando abaixo:
nano /etc/php5/fpm/pool.d/www.conf
Usando as setas direcionais do seu teclado, procure pela linha listen = 127.0.0.1:9000 e coloque um # na frente dela. Abaixo dessa linha cole o seguinte:
listen = /var/run/php5-fpm.sock
Configure o PHP-FPM de forma que o PHP seja executado via socket unix
Dessa forma estamos dizendo ao PHP-FPM que ele deve executar o PHP como um socket unix. Pode não fazer sentido para você, mas como estamos falando de um único servidor, essa é a forma mais otimizada de se trabalhar.
Procure também a linha #listen.owner = www-data e tire o # da frente dela. Faça a mesma coisa com as duas linhas abaixo dessa, ficando assim:
listen.owner = www-data listen.group = www-data listen.mode = 0666
Se você criou outro usuário, pode usa-lo no lugar do www-data também, mas para este tutorial vamos ficar com o usuário padrão do PHP-FPM mesmo.
Feito isso, o PHP-FPM está configurado e pronto para a ação. Vamos ao Nginx? Copie e cole os comandos abaixo no terminal para editar o arquivo padrão de configurações de sites do servidor web:
nano /etc/nginx/sites-available/default
Edite o arquivo usando as setas direcionais e deixo-o como mostrado abaixo:
server {
listen 8080;
server_name www.seusite.com seusite.com;
root /var/www/;
index index.php index.html index.htm;
error_log /var/log/nginx/logsdosite.com-error_log;
location / {
try_files $uri $uri/ /index.php;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /. {
deny all;
access_log off;
log_not_found off;
}
location ~* ^/wp-content/uploads/.*.php$ {
deny all;
access_log off;
log_not_found off;
}
location ~ .php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (-f $request_filename) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
}Mude “www.seusite.com” e “seusite.com” para os links do seu site e tudo deverá funcionar corretamente agora. Agora que temos o Nginx configurado e rodando, hora de configurar o PHP-APC :)
Copie e cole os comandos abaixo:
nano /etc/php5/fpm/php.ini
Agora com o arquivo aberto, adicione as linhas abaixo no local que achar melhor:
[APC] extension=apc.so apc.enabled = 1 apc.cache_by_default = 1 apc.stat = 1 apc.shm_segments = 1 apc.shm_size = 64 apc.write_lock = 1 apc.slam_defense = 0 apc.ttl = 7200 apc.user_ttl = 7200
Com o APC configurado temos quase tudo pronto, faltando apenas o Varnish. A configuração do Varnish é um pouco mais chata, então neste tutorial vou focar apenas em uma configuração para o WordPress, deixando outros scripts em aberto.
Primeiramente temos que editar o arquivo principal de configuração do Varnish, então digite o comando abaixo no terminal:
nano /etc/default/varnish
Primeiramente mude a linha “START” de “no” para “yes”, sem as aspas. Agora procure pela linha “Alternative 2, Configuration with VCL” e deixa-a como mostrado abaixo:
DAEMON_OPTS="-a :80
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-p thread_pool_add_delay=2
-p thread_pools=4
-p thread_pool_min=200
-p thread_pool_max=4000
-p cli_timeout=25
-p session_linger=100
-s malloc,512M"Com essas configurações feitas, vamos as configurações específicas para o WordPress. Digite o comando abaixo no terminal:
nano /etc/varnish/default.vlc
Agora deixe-o como mostrado no código abaixo, que foi retirado deste GitHub e editado minimamente:
backend default {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 300s;
}
acl purge {
# Only localhost can purge my cache
"127.0.0.1";
"localhost";
}
sub vcl_recv {
if ((req.http.host ~ "(ubuntubrsc.com)")) {
set req.backend = default;
} else {
return (pass);
}
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "This IP is not allowed to send PURGE requests.";
}
return (lookup);
}
if (req.request == "POST") {
return (pass);
}
if (req.url ~ "/feed") {
return (pass);
}
if (req.url ~ "/wp-(login|admin)") {
return (pass);
}
set req.http.Cookie = regsuball(req.http.Cookie, "has_js=[^;]+(; )?", "");
set req.http.Cookie = regsuball(req.http.Cookie, "__utm.=[^;]+(; )?", "");
set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(; )?", "");
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", "");
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", "");
set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", "");
if (req.http.cookie ~ "^ *$") {
unset req.http.cookie;
}
if (req.url ~ ".(css|js|png|gif|jp(e)?g|swf|ico|ttf|otf)") {
unset req.http.cookie;
}
if (req.http.Accept-Encoding) {
if (req.url ~ ".(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
remove req.http.Accept-Encoding;
}
}
if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") {
return (pass);
}
if (!req.http.cookie) {
unset req.http.cookie;
}
if (req.http.Authorization || req.http.Cookie) {
return (pass);
}
return (lookup);
}
sub vcl_pipe {
return (pipe);
}
sub vcl_pass {
return (pass);
}
sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
if (req.http.Accept-Encoding) {
hash_data(req.http.Accept-Encoding);
}
return (hash);
}
sub vcl_hit {
if (req.request == "PURGE") {
purge;
error 200 "Purged.";
}
return (deliver);
}
sub vcl_miss {
if (req.request == "PURGE") {
purge;
error 200 "Purged.";
}
return (fetch);
}
sub vcl_fetch {
if (req.url ~ ".(css|js|png|gif|jp(e)?g|swf|ico|ttf|otf)") {
unset beresp.http.cookie;
}
set beresp.ttl = 1800s;
return (deliver);
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "cached";
} else {
set resp.http.x-Cache = "uncached";
}
unset resp.http.X-Powered-By;
unset resp.http.Server;
return (deliver);
}
sub vcl_init {
return (ok);
}
sub vcl_fini {
return (ok);
}Com o Varnish devidamente configurado, nosso servidor está pronto para ser testado! Vamos iniciar todos os serviços com o comando abaixo e testar para ver se tudo está funcionando corretamente:
sudo /etc/init.d/php5-fpm start sudo /etc/init.d/nginx start sudo /etc/init.d/mysql start sudo /etc/init.d/varnish start
Agora basta acessar o IP do seu VPS e tudo deve estar funcionando corretamente (:
O próximo passo é fazer uma otimização em todos os arquivos de configuração para tirar máximo proveito das suas configurações, mas isso fica para o próximo tutorial.
Além da otimização, também temos que cuidar da segurança do seu VPS antes de podermos ir ao ar, e este é outro detalhe que ficará para um próximo tutorial. Espere ambos ainda essa semana :)
Bônus: instalando o WordPress no Ubuntu Server 12.04
De nada adianta todo esse trabalho se eu deixar vocês na mão bem na hora da instalação, né? Então vamos aprender a instalar o WordPress no VPS que acabamos de configurar e como sou um cara legal, também vou deixar uma indicação dos plugins que você deve utilizar para fazer seu blog voar (:
WordPress: a melhor plataforma de blogs na minha opinião (e meu ganho pão :P)
Antes de mais nada, vamos fazer uma pequena edição no arquivo de configurações do MySQL, para termos certeza de que teremos um ambiente otimizado para nosso VPS. Para isso, ainda com o terminal aberto, digite o comando abaixo:
nano /etc/mysql/my.cnf
Agora adicione as linhas abaixo logo depois da linha lc-messages-dir = /usr/share/mysql:
default_storage_engine=MyISAM skip_external_locking skip_slave_start skip_name_resolve ignore_builtin_innodb
Salve o arquivo e agora podemos iniciar o MySQL. Para isso, digite o seguinte comando no terminal:
sudo /etc/init.d/mysql start
Com nosso servidor MySQL rodando, está na hora de criar o usuário e banco de dados do nosso WordPress. Para isso precisamos entrar no MySQL e usar alguns comandos básicos. Digite o comando abaixo para começar e aperte enter:
mysql -u root -p
Digite a senha que você configurou quando estava instalando o servidor MySQL e digite os comandos abaixo para criar seu usuário e banco de dados:
CREATE DATABASE nomedoseubanco; CREATE USER 'nomedeumusuario'@'localhost' IDENTIFIED BY 'senhadesseusuario'; GRANT ALL PRIVILEGES ON nomedoseubanco.* TO "nomedeumusuario"@"localhost" IDENTIFIED BY "senhadesseusuario"; FLUSH PRIVILEGES; EXIT;
Substitua o nome do banco de dados, nome do usuário e senha pelo o que você achar melhor, mas NÃO use os valores que coloquei ali por padrão. Com seu banco de dados e usuário criados, vamos editar as configurações do Nginx um pouco. Para isso abra o arquivo de configuração digitante o comando abaixo:
nano /etc/nginx/sites-available/default
Com o arquivo de configurações do Nginx aberto, deixe-o parecido com o mostrado abaixo:
server {
listen 8080;
server_name www.seusite.com;
# Root directory
root /var/www;
index index.php index.html index.htm;
error_log /var/log/nginx/logsdosite.error_log;
location / {
try_files $uri $uri/ /index.php;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /. {
deny all;
access_log off;
log_not_found off;
}
location ~* ^/wp-content/uploads/.*.php$ {
deny all;
access_log off;
log_not_found off;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
error_page 404 = @wordpress;
log_not_found off;
location @wordpress {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
location ~ .php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (-f $request_filename) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
}
server {
server_name seusite.com;
return 301 $scheme://www.seusite.com$request_uri;
}Agora temos quase tudo necessário para instalar o WordPress. O que falta? O próprio WordPress é claro :P
Vamos criar nosso diretório padrão e fazer download da última versão do WordPress com o wget, mas antes temos que reiniciar o Nginx para as configurações acima surtirem efeito. Hora de brincar com o terminal novamente, lembrando de dar enter ao final de cada linha:
sudo /etc/init.d/nginx restart mkdir -p /var/www/ chown www-data:www-data /var/www/ chmod 705 /var/www/ cd /tmp wget http://br.wordpress.org/wordpress-3.4.1-pt_BR.tar.gz tar zxvf wordpress-3.4.1-pt_BR.tar.gz cd wordpress mv * /var/www/ chown -R www-data:www-data /var/www/*
Feito o download do WordPress, vamos configura-lo e finalmente fazer a instalação. Digite o comando abaixo no terminal:
cp /var/www/wp-config-sample.php /var/www/wp-config.php chown www-data:www-data /var/www/wp-config.php nano /var/www/wp-config.php
Agora você terá que configurar as variáveis do WordPress de acordo com os dados que possui. O arquivo de configuração é todo comentado, então não creio que eu precise explicar aonde vai cada dado, só lembre-se que o banco de dados e o usuário que é pedido no wp-config.php são aqueles que você configurou neste tutorial bônus, e não o root lá do começo.
Assim que você terminar de editar o arquivo de configuração, acesse o IP do seu VPS e se tudo estiver correto, você poderá seguir os passos de instalação tranquilamente. Com seu WordPress instalado, vamos editar algumas coisas para melhorar a segurança:
rm /var/www/wp-admin/install.php rm /var/www/wp-admin/install-helper.php rm /var/www/license.txt rm /var/www/readme.html chmod 705 /var/www/wp-admin/ chmod 705 /var/www/wp-includes/ chmod 404 /var/www/index.php chmod 404 /var/www/wp-blog-header.php chmod 404 /var/www/wp-config.php
Pronto! Agora que estamos um pouco mais seguros, que tal brincarmos com uma das melhores coisas disponíveis para o WordPress? Abaixo segue uma recomendação de alguns plugins essenciais para qualquer blog WordPress:
- BackWPup: plugin que faz backup de todo o blog (banco de dados/arquivos) e envia para o local de sua preferência. Backups são importantíssimos, não deixe esse plugin passar;
- Better WP Security: um ótimo plugin de segurança, com inúmeras opções para deixar seu blog mais seguro. Recomendo configurar o plugin para não editar arquivos automaticamente, devido a natureza do nosso setup;
- nginx Compatibility: este plugin faz com que o WordPress e o Nginx fiquem melhores amigos. Essencial para nosso setup;
- W3 Total Cache: melhor plugin de cache disponível até hoje. Se bem configurado, é o melhor amigo de qualquer blogueiro e transforma seu blog no The Flash;
- WordPress SEO by Yoast: plugin escrito pelo Jedi em SEO, Joost de Valk. Melhor plugin da atualidade para este serviço, também é essencial para qualquer blog WordPress.
Considerações finais
Com isso encera-se a primeira parte do nosso tutorial. Agora você tem em suas mãos o Ubuntu Server 12.04 rodando um servidor LEMP completo e um blog WordPress pronto para começar a ser usado. Na próxima parte do tutorial iremos focar na otimização desse servidor e do WordPress como um todo também, partindo para a parte de segurança e por último, vou ensinar como usar o CloudFlare como uma segunda camada de segurança e como seu servidor DNS.
Após essa primeira parte do tutorial e algumas otimizações que não estão presentes aqui, eis o que conseguimos:
Sim meu amigo, nosso pequeno VPS é capaz de suportar quase 10 milhões de pageviews diários com essas configurações. O uso da CPU nos meus testes não passou de 14% e o consumo de memória ficou em 180~200 megabytes. Bem legal hein?
Gostou do tutorial leitor? O que achou das estatísticas? O que acha que poderíamos melhorar? O que você espera das minhas otimizações para a próxima parte? Deixe seu comentário abaixo! Quero ler que ajudei vocês e ficar feliz com isso!
Caso você não queira esperar até o próximo tutorial sair ou tiver medo de colocar a mão na massa, ofereço serviços de otimização para blogs WordPress e claro, ofereço otimização de servidores para o setup acima. Entre meus felizes clientes estão os blogs Mestre Android e Vida de Suporte e claro, o Ubuntu-BR-SC. Basta entrar em contato comigo em [email protected] (:
- http://www.facebook.com/people/Isaias-Vasconcelos-Aguiar/100002555195694 Isaias Vasconcelos Aguiar
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/people/Isaias-Vasconcelos-Aguiar/100002555195694 Isaias Vasconcelos Aguiar
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/Lucas_SM Lucas Silveira
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/Lucas_SM Lucas Silveira
- http://www.ubuntubrsc.com/ Julian Fernandes
- Levi Gomes
- http://www.ubuntubrsc.com/ Julian Fernandes
- Levi Gomes
- http://www.ubuntubrsc.com/ Julian Fernandes
- alexkidd1612
- http://www.ubuntubrsc.com/ Julian Fernandes
- alexkidd1612
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/LFMOL Greyson Farias
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/LFMOL Greyson Farias
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/flavio.ti2011 Flavio Rogerio
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/flavio.ti2011 Flavio Rogerio
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/mad_team Mad_Team
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/mad_team Mad_Team
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cristopher
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- Cassio Talle
- Cristopher
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Rudy
- http://www.ubuntubrsc.com/ Julian Fernandes
- Rudy
- http://www.ubuntubrsc.com/ Julian Fernandes
- Rudy
- http://www.ubuntubrsc.com/ Julian Fernandes
- Rudy
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cristopher
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cristopher
- http://www.ubuntubrsc.com/ Julian Fernandes
- Cassio Talle
- http://www.ubuntubrsc.com/ Julian Fernandes
- Wagner
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/TsouzaR Tiago de Souza
- Wagner
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/TsouzaR Tiago de Souza
- Thiago
- http://www.ubuntubrsc.com/ Julian Fernandes
- Thiago
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://da2k.com.br/ Fernando Daciuk
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://da2k.com.br/ Fernando Daciuk
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/UalasAndrade Ualas Andrade
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/UalasAndrade Ualas Andrade
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/eduardohernacki Eduardo Hernacki
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/eduardohernacki Eduardo Hernacki
- http://www.ubuntubrsc.com/ Julian Fernandes
- Paulo Henrique
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/henriquesacramento Paulo Henrique Sacramento
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/henriquesacramento Paulo Henrique Sacramento
- Paulo Henrique
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/henriquesacramento Paulo Henrique Sacramento
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/henriquesacramento Paulo Henrique Sacramento
- http://www.facebook.com/henriquesacramento Paulo Henrique Sacramento
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/henriquesacramento Paulo Henrique Sacramento
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/cezar.lamann Cezar Lamann
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.focuson.com.br/ Ramoel Rodrigues
- http://www.ubuntubrsc.com/ Julian Fernandes
- Isaias Junior
- http://www.ubuntubrsc.com/ Julian Fernandes
- Isaias Junior
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- Guilherme_William
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/ricmmartins Ricardo Martins
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/ricmmartins Ricardo Martins
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/ricmmartins Ricardo Martins
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/ricmmartins Ricardo Martins
- Thiago Nalli Valentim
- Ricardo Roma
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/Dodilei Dodilei
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/juniorpdias Junior Dias
- http://www.ubuntubrsc.com/ Julian Fernandes
- Geraldo
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/gametavenus Gameta Vênus
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://twitter.com/gametavenus Gameta Vênus
- http://www.facebook.com/carlospineli Jose Carlos Pineli
- http://www.facebook.com/juniorpdias Junior Dias
- http://www.ubuntubrsc.com/ Julian Fernandes
- http://www.facebook.com/juniorpdias Junior Dias
- Rafael
- Urik
- http://www.ubuntubrsc.com/ Julian Fernandes
- Marcello Caetano
- http://mrnet.in/ Michel Wilhelm
- Marcello Caetano
- http://www.bragil.net/ Rogério Bragil
- http://mrnet.in/ Michel Wilhelm
- Anonimo
- Marcello Caetano
- http://mrnet.in/ Michel Wilhelm
- Marcello Caetano
- http://mrnet.in/ Michel Wilhelm
- Anonimo
- Anonimo
- Marcos Aurelio
- Anonimo
- Alex Aquino
- http://twitter.com/_carlosmarx Carlos Marx
- Marcos Nakamine
- Alexandro
- Renato Frota
- Rodrigo Müller
- http://www.facebook.com/andrecosta.on André Luis
- FrancisCPD
- Renato Frota

Ubuntu 12.04 Precise Pangolin LTS




































Assine nossa newsletter!
Quer receber as novidades mais recentes do Ubuntu na sua caixa de entrada? Informe seu e-mail e clique em Assinar.