- Entrou
- Set 19, 2006
- Mensagens
- 7,819
- Gostos Recebidos
- 53
Esta será uma excelente conjunção para sites com elevado tráfego de utilizadores, onde os administradores tenham problemas com o desempenho do apache devido ao elevado número de query's.
Esta técnica passa pelo uso do mod_proxy do apache para fazer com que o nginx (servidor web ultra-lihght) sirva aos utilizadores as imagens do site, blog ou forum aliviando assim as query's do apache.
Instalar o nginx (válido para redhat e centos)
O nginx não vem por defeito activo no sitema de pacotes base do sistema, vamos activar os pacotes "EPEL" com o seguinte comando.
Uma vez a instalação finalizada poderemos agora utilizar o yum para instalar o nginx através do comando.
Se a instalação do nginx correr sem problemas deverá aprecer um scree idêntico a este na shell.
Ok, como o nosso objectivo passa por servir unicamente imagens e nada de conteúdo dinâmico com o nginx, vamos agora configurar o mesmo para o devido efeito.
Com o nginx instalado e configurado chega a vez de configurar o apache para usar o mod_proxy.
Editar o httpd.conf
Vamos activar os módulos necessários para o correcto funcionamento de comunicação entre os dois servidores web.
Adicione as configurações no fundo do httpd.conf (em caso de não usar virtualhosts).
A configuração acima diz ao apache que todos os pedidos na pasta de imagens irá ser processada em Gforum - Digital que por sua vez é respondida pelo servidor nginx.
Ps. Aconselho a que a utilização desta técnica seja só aplicada em servidores com extremo volume de tráfego e com muitas imagens.
Esta técnica passa pelo uso do mod_proxy do apache para fazer com que o nginx (servidor web ultra-lihght) sirva aos utilizadores as imagens do site, blog ou forum aliviando assim as query's do apache.
Instalar o nginx (válido para redhat e centos)
O nginx não vem por defeito activo no sitema de pacotes base do sistema, vamos activar os pacotes "EPEL" com o seguinte comando.
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -m)/epel-release-5-3.noarch.rpm
Uma vez a instalação finalizada poderemos agora utilizar o yum para instalar o nginx através do comando.
yum install nginx
Se a instalação do nginx correr sem problemas deverá aprecer um scree idêntico a este na shell.
Loaded plugins: downloadonly, fastestmirror, priorities, protectbase
Loading mirror speeds from cached hostfile
* epel: archive.linux.duke.edu
* base: ftp.linux.ncsu.edu
* updates: centos.mirror.nac.net
* addons: mirror.cs.vt.edu
* extras: centos.mirror.nac.net
0 packages excluded due to repository protections
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 0:0.6.34-1.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================
Installing:
nginx x86_64 0.6.34-1.el5 epel 319 k
Transaction Summary
==============================================================================================================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total size: 319 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : nginx [1/1]
Installed: nginx.x86_64 0:0.6.34-1.el5
Complete!
Ok, como o nosso objectivo passa por servir unicamente imagens e nada de conteúdo dinâmico com o nginx, vamos agora configurar o mesmo para o devido efeito.
Ok é só guardar a configuração e reiniciar o nginx.
vi /etc/nginx/nginx.conf
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~* ^.+.(jpe?g|gif|png|ico)$ {
expires 30d;
root /pasta/root/imagens;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
service nginx restart
Com o nginx instalado e configurado chega a vez de configurar o apache para usar o mod_proxy.
Editar o httpd.conf
vi /etc/httpd/conf/httpd.conf
Vamos activar os módulos necessários para o correcto funcionamento de comunicação entre os dois servidores web.
Remover o # dos seguintes módulos
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
Adicione as configurações no fundo do httpd.conf (em caso de não usar virtualhosts).
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /pasta/imagens Gforum - Digital
ProxyPassReverse /pasta/imagens Gforum - Digital
A configuração acima diz ao apache que todos os pedidos na pasta de imagens irá ser processada em Gforum - Digital que por sua vez é respondida pelo servidor nginx.
Ps. Aconselho a que a utilização desta técnica seja só aplicada em servidores com extremo volume de tráfego e com muitas imagens.