elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 72
211  Seguridad Informática / Seguridad / Accesos de sitios rusos en mi sitio, DoS o que sucede ? ! en: 21 Septiembre 2011, 19:10 pm
Buen dia.

Tengo un portal en internet que los ultimos 4 o 6 meses he estado notando accesos redirigidos a mi sitio por parte de sitios web Rusos :S... Quiero descartar un ataque, ya que estos accesos son meramente re-direcciones.

Para guardar "quien entra y de donde" guardo en mis logs el REFERE, REQUEST_URI, IP, NAVEGADOR y HOSTNAME. Y reconozco los accesos que vienen de face, twitter, busquedas de google, etc... he notado visitas de estos sitios Rusos que en algunos casos el IP es el mismo pero cambia el referer, observen mencionare algunos mas recientes de los 5 ultimos dias:

Código:
# log
Referer: http://www.ukrat.ru/, IP: 92.249.127.111
Referer: http://www.zapomninas.ru/, IP: 92.249.127.111
Referer: http://www.profi71.ru/, IP: 193.106.136.36, Hostname: 193.106.136.36.usersnat.smileweb.com.ua
Referer: http://www.moregirls.org/, IP: 193.106.136.36, Hostname: 193.106.136.36.usersnat.smileweb.com.ua
Referer: http://www.moregirls.org, IP: 92.249.127.111
Referer: http://www.pincode.mobi/, IP: 193.106.136.36, Hostname: 193.106.136.36.usersnat.smileweb.com.ua
Referer: http://www.symbian-blog.com/, IP: 92.249.127.111
Referer: http://fido20.ru/ktulhu, IP: 92.249.127.111

No se si se trate de un intento de ataque DoS por parte de algun grupo que tenga vulnerado dichas paginas mencionadas en mis "Referer", o alguien que me pueda dar su opinion al respecto.

Lo que si fue un echo es que el mes de Agosto note que mi consumo de ancho de banda se vio afectado y para compensar el problema, implemente mod_deflate, expiracion de todo (gif, html, jpg, png, js, css) y compresion gzip del sitio. Evidentemente un DoS podria no causarme mucho problema a menos que fuese un ataque muuuuuy fuerte con millones de equipos a la vez.

Saludos !
212  Comunicaciones / Redes / [PXEBoot] Instalacion de GNU/Linux en red, ayuda ! en: 6 Septiembre 2011, 22:07 pm
Buenas.

Esto queriendo hacer que mi servidor gnu/linuc centos 5 se vuelva tambien una centralita para instalar GNU/Linux a los PCs que lleguen (o deseen ponerle una distro), la idea es que sienten su equipo (lap o pc) se conecten a la red (por cable), booteen por Red (PXE Boot), elijan la distro a instalar y se instale todo en red. Sin siquiera usar una memoria usb ni cdrom.

Siguiendo varios tutoriales (muuuuy desactualizados) he logrado hacer funcionar el dnsmasq ya que la version 2.45 no acepta la notcacion tipo "funciones" que presentan muchos tutoriales, asi que haciendo cambios al archivo de configuracion basicos, quedo asi:

shell# cat /etc/dnsmasq.conf
Código:
server=192.168.1.1
interface=eth0
dhcp-range=192.168.1.2,192.168.1.200
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/home/tftp
dhcp-boot=/home/tftp/pxelinux.0,server,192.168.1.1
dhcp-lease-max=150
dhcp-authoritative
log-queries
log-dhcp
conf-dir=/etc/dnsmasq.d

Ahora apagamos el DNS y encendemos el dnsmasq:
Código:
shell# /etc/init.d/named stop
shell# /etc/init.d/dnsmasq start

Como se observa en el config del dnsmasq, mi directorio donde estaran las distros es /home/tftp/, asi que tambien me monto un NFS y comparto dicho directorio y reiniciamos deamon:

shell# cat /etc/expots
Código:
/home/distros/public_html/      192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
/home/tftp/     192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
/home/backups                   192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)

shell# /etc/init.d/nfs restart

Ahora monto el pxelinux.cfg para el pxe boot, todo en /home/tftp/
Código:
shell# ls -l /home/tftp/
distro --> /home/distros/public_html/
mensaje.txt
netboot.tar.gz
pxelinux.0
pxelinux.cfg/
syslinux/

Como observan distro es un enlace simbolico hacia /home/distros/public_html/ que es donde estaran en tanto las imagenes ISO (para que bajen via http), como tambien los datos decomprimidos de las ISOs.

Veamos un directorio de ejemplo:

Código:
shell# cd /home/distros/public_html/
shell# cd ubuntu_1104_alt
shell# ls -l
so/
iso/

shell# ls -l iso/
ubuntu-1104-alternative.iso

shell# ls -l so/
drwxrwxrwx 3 root root   4096 jun  4 13:24 boot
-rwxrwxrwx 1 root root   1115 jun  4 13:24 cdromupgrade
drwxrwxrwx 3 root root   4096 jun  4 13:24 dists
drwxrwxrwx 3 root root   4096 jun  4 13:24 doc
drwxrwxrwx 3 root root   4096 jun  4 13:24 install
drwxrwxrwx 2 root root   4096 jun  4 13:24 isolinux
-rwxrwxrwx 1 root root 179133 jun  4 13:24 md5sum.txt
drwxrwxrwx 2 root root   4096 jun  4 13:24 pics
drwxrwxrwx 3 root root   4096 jun  4 13:24 pool
drwxrwxrwx 2 root root   4096 jun  4 13:25 preseed
-rwxrwxrwx 1 root root    224 jun  4 13:25 README.diskdefines
lrwxrwxrwx 1 root root      1 jun  4 13:25 ubuntu ->

Y finalmente la configuracion del pxelinux.cfg/default

shell# cd /home/tftp/
shell# cat pxelinux.cfg/default
Código:
DISPLAY mensaje.txt

LABEL 8
kernel distro/ubuntu_1104_alt/so/install/vmlinuz netboot=nfs nfsroot=192.168.1.1:/home/tftp/distros/ubuntu_1104_alt/so/
append file=distro/ubuntu_1104_alt/so/preseed/ubuntu.seed initrd=distro/ubuntu_1104_alt/so/install/initrd.gz vga=normal ramdisk_size=32768

HASTA ESTE PUNTO...

Enciendo una PC conectada a la red y mi servidor (dnsmasq) me asigna un IP, me aparece el mensaje del boot y mi menu donde elijo la distribucion, en este caso de ejemplo, elijo ubuntu_1104_alt (label 8).

Se inicia Ubuntu (presentacion), se pone pantalla de color azul con una ventanita blanca y me pide que indique la configuracion del idioma, depues configuro el teclado, y en el siguiente paso me sale una ventana de error que indica que el cd no pudo montarse :(

Alguna idea ?
213  Programación / PHP / [API Facebook + Url Amigables] Problema para implementacion ! en: 25 Agosto 2011, 23:45 pm
Buenas...

Estoy queriendo implementar en mi portal la posibilidad de que mis futuros usuarios y actuales, sincronicen su perfil de face.

Buscando en la red encontre bastantes manuales pero desgraciadamente la mayoria estan planificados bajo una version obsoleta del API Facebook, por lo cual hasta los nombres de las funcionas ya no son igales, en conclusion, no sirve ningun manual (casi ninguno).

Asi que lo unico que me quedo, fue leerme el Doc de Authentificacion y el example.php de la libreria facebook para PHP. Con esto he logrado hacer hasta ahorita solamente:

1- Generar enlace valido para el boton facebook que enlace a mi APP.
2- Mostrar mi APP y esperar que el usuario de click en "Allow"

El problema empieza con que una vez se da clic sobre "Allow", automaticamente Facebook re-dirige al usuario a mi sitio invocando una url con los valores de:
Código:
?state=HASH_STATE&code=HASH_BIG#

Pero resulta que por seguridad y simplicidad utilizo url amigables, de modo que el boton facebook por el momento solo lo muestro en la Configuracion del Perfil, al acceder a tu configuracion se invoca la URL: http://misitio.com/usuario/perfil.

Asumiendo la URL que les mencione, el boton de Facebook se crea mas o menos asi con el siguiente enlace:

Código
  1. <?php
  2. echo '<a href="https://www.facebook.com/dialog/oauth?client_id=HASH_ID&amp;redirect_uri=http://misitio.com/usuario/perfil&state=HASH_ESTADO">
  3.     <img src="botonfb.jpg" border="0">
  4. </a>
  5. ?>

Al dar click sobre el boton de Facebook Connect, me envia a Facebook con mi APP cargada, y al pulsar Allow, me retorna a mi sitio a esta URL:
Código:
http://misitio.com/usuario/perfil?state=HASH_STATE&code=HASH_CODE#

De primeras asumo que al estar asi mi RewriteRule:

Código:
RewriteRule ^(.+)/perfil$ index.php?my=$1

Las variables GET de state y code se pierden !, asi que AGREGUE lo siguiente cambio:
Código:
RewriteRule ^(.+)/perfil$ index.php?my=$1
RewriteRule ^(.+)/perfil?state(.+)&code=(.+)$ index.php?my=$1&state=$2&code=$3

Pero aun asi,  algo sale mal porque me sale error de que no encuentra la pagina, no se si sea mi implementacion de RewriteRule, pero ya hasta agregue un \ antes de los caracteres: ? y =. Y lo mismo :(...

Solo quiero tomar las variables state y code, para guardar en la BDD e inmediatamente (al detectar dichas variables) redireccionar al perfil normal: http://misitio.com/usuario/perfil y cuando mi sistema nota que ya esta el ID de Face en la BDD, se supone que muestro la FOTO del perfil y el boton de Des-sincronizar Plataforma.

Saludos !
214  Comunicaciones / Redes / Re: [Apache] Problemas para servir contenido comprimido .gz ! en: 11 Agosto 2011, 23:21 pm
Les dejo la solución explicada desde 0s.

---> Descargar Manual PDF <----

Concepto


Cuando realizamos un sitio web y lo tenemos funcionando al 100% por lo general nuestro sitio llega a pesar mas de 1, 2, 3 o hasta 10Kb, esto resulta muy pesado cuando tenemos un servidor dedicado, ya que tenemos una cuota limite de consumo del ancho de banda, por lo cual es el momento en que debemos empezar a pensar en economizar codigo, disminuir tama~o del sitio y asu vez hagilizar el despliegue del sitio,he aqui donde tocamos el tema de Servidor Contenido Comprimido.

La estrategia solo es valida para Seridores Dedicados o un Servidor Casero, ya que tocaremos la configuracion del apache y del php. Sobre mod_rewrite pues ya saber que pueden definirla desde su .htacces.

Consejos

Si usan un servidor dedicado o servidor casero no se les ocurra poner configuraciones en el HTACCESS, ya que es mas rapido la digestion y procesamiento de las reglas mod_rewrite desde el <VirtualHost> (donde declaramos nuestro dominio en httpd.conf). Cuestiones de renderizado ;)

Antes de seguir con el manual es bueno primero vean cuando pesa su web y lo rapido con que se despliega, asi cuando implementen esto vean los resultados. Les dejo una implementacion para verificar el renderizado del sitio y tiempo:

Código:
<?php
# funcion para verificar el tiempo de carga
function tiempodecarga()
 {
 $tm= explode( " ", microtime() );
 return ($tm[1]+$tm[0]);
 }

$render= tiempodecarga(); # tiempo actual
echo '<html>
<head>
</head>

<body>';

 $render= tiempodecarga()-$render;
 $d= 212;
 echo 'Tiempo de Carga: '. number_format($render,2). ' |
 Peso Web: ';
 echo number_format( (ob_get_length()+$d)/1024, 2);
 echo ' kb';
 unset($render);

echo '</body>
</html>';
?>

En misitio.com tenia los siguientes tiempos....

Antes de la implementacion...
Código:
Tiempo de Carga: 1.50 | Peso Web: 14.43 kb

Despues de la implementacion...
Código:
Tiempo de Carga: 1.04 | Peso Web: 0.23 kb

Configurando PHP

Con PHP no es mucho rollo, solamente editamos el php.ini para habilitar la compresión usando zlib. Les mencionare solamente las lineas como deben estar, asi que, si ustedes las ven comentadas, entonces descomentarlas...

Código:
shell# catwc /etc/php.ini |grep zlib
zlib.output_compression = On
zlib.output_handler =

Configurando APACHE

Es importante mencionar que en Apache versión mayor o igual a 2.0 se utiliza mod_deflate y en versiones menores a 2.0 se usa mod_gzip. En mi caso utilizo la versión reciente (solo un loco pone una desactualizada), asi que les planteare todo sobre mod_deflate.

Primero dentro de nuestro <VirtualHost> debemos activar la encodeo con gzip y declarar los tipos de formatos. OJO, yo pongo todo en el <VirtualHost> porque solo me interesa para mi espacio, el de mis clientes pues ya deberan pedirlo o simplemente debe dar mas $$ (gajes de Hosting Básico y otros niveles xD).

El VirtualHost
Código:
shell# cat /etc/httpd/conf/httpd.conf

<VirtualHost misitio.net:80>
 ServerAdmin contacto@sie-group.net
 DocumentRoot /home/misitio/public_html
 ServerName misitio.net
 ServerAlias www.misitio.net
 ErrorLog logs/misitio-net-error_log
 CustomLog logs/misitio-net-access_log common
 <Directory "/home/misitio/public_html">
 Options +FollowSymLinks
 Order allow,deny
 Allow from all
 AllowOverride All
 RewriteEngine on
 AddEncoding x-gzip .jgz .cgz .gz
 AddType text/css .css
 AddType text/css .cgz
 AddType application/x-javascript .js
 AddType application/x-javascript .jgz
#................
#................ MIS REGLAS RewriteRule ....
#................
</VirtualHost>

Ahora explicamos las lineas:

Código:
# estas son MIME types
#

# indicamos que toda extensión .css debe tratarse como contenido tipo text/css.
AddType text/css .css

# indicamos que toda extensión .cgz debe tratarse como contenido tipo text/css,
# ya que es CSS Comprimido.
AddType text/css .cgz

# indicamos que toda extensión .js debe tratarse como contenido tipo application/x-javascript
AddType application/x-javascript .js

# indicamos que toda extensión .jgz debe tratarse como contenido tipo application/x-javascript, ya que
# son script JS comprimidos
AddType application/x-javascript .jgz

El Encodeado de los tipos:
Código:
# aqui indicamos que vamos a encodear con el compresor GZIP los tipos: .gz, .cgz y .jsz
AddEncoding x-gzip .jgz .cgz .gz

Mucho OJO, si no tenemso estas lineas, lo que sucedera es que al subir nuestros CSS o JS compresos en GZIP estos no se interpretaran sino que seran tomados como archivos compresos e interpretados con el MIME Type de applicacion/x-gzip y esto causara que no tengamos los STYLES puestos y el SCRIPT JS no existirá.

Ahora debemos habilitar mod_deflate.

Código:
shell# cat /etc/httpd/conf/httpd.conf |grep deflate

LoadModule deflate_module modules/mod_deflate.so

Y la configuracion... en mi caso todo lo tengo en el directorio /etc/httpd/conf.d/

Código:
shell# cat /etc/httpd/conf.d/deflate.conf

AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/x-javascript

Creacion de Comprimidos


Ya que tenemos todo configurado, ahora falta comprimir los estilos CSS y script JS.

Código:
# comprimiendo CSSs
shell# cd /nuestro/proyecto/web/estilos
shell# ls -l
estilo.css

shell# gzip estilo.css
shell# ls -l
estilo.css.gz

# cambiando el nombre al comprimido
shell# mv estilo.css.gz estilo.cgz

# comprimiendo js
shell# cd /nuestro/proyecto/web/js/
shell# ls -l
script.js

shell# gzip script.js
shell# ls -l
script.js.gz

# re-nombrando
shell# mv script.js.gz script.jgz

La razon del porque cambiamos de css.gz a .cgz, es porque mas arriba en la configuracion del Apache indicamos el MIME Type .cgz y .jgz.

Adaptación en el Sitio

Ahora solo falta mandar llamar los comprimidos en el sitio, aqui un ejemplo de antes y despues.

Antes.........
Código
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="css/estilo.css">
  4. <script type="text/javascript" src="js/script.js"></script>
  5. </head>
  6.  
  7. <body>
  8. </body>
  9. </html>
  10.  

Despues.....
Código
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="css/estilo.cgz">
  4. <script type="text/javascript" src="js/script.jgz"></script>
  5. </head>
  6.  
  7. <body>
  8. </body>
  9. </html>
  10.  

Ofuscación en PHP


Ahora debemos hacer la ofuscacion, y esto debe ser directamente en PHP, y veras como magicamente su sitio pasa de pesar muchisimos, a simples Kilobytes xD.

Les dejo la idea basica sobre como se haria, ustedes ya en sus codes lo arman al gusto, pero deben seguir el siguiente lineamiento a fuerzas

Código:
<?php
ob_start( 'comprimir_web' );
# funcion para comprimir pagina web
function comprimir_web($buffer)
 {
 $busca = array('/\>[^\S ]+/s','/[^\S ]+\</s','/(\s)+/s');
 $reemplaza = array('>','<','\\1');
 return preg_replace($busca, $reemplaza, $buffer);
 }

echo '<html>
<head>
<title></title>
</head>

<body></body>
</html>';

ob_end_flush(); # fin objeto
?>

URL Amigables


El uso de URL Amigables como muchos sabran sirven para evitar acceder a las noticias de la forma comun que es http://sitios.com/?id_noticia=12 y hacerlo mas amigable y legible, que seria: http://misitios.com/noticias/10-tituto_de_la_noticia.html.

El punto de mencionar las URLS Amigables es porque posiblemente muchos digan no quiero usar la extensión CGZ o JGZ, y desean seguir usando CSS y JS. Pues si se puede, para ello hacemos uso de las mod_rewrite en Apache, la cual deben saber como activarlas (sino, entonces google).

Para seguir usando la "nomenclatura" estilo.css o script.js, pero que este llame al comprimido GZ, usamos Reglas que deben ser establecidas mas o menos asi, cabe mencionar que para cada caso es distinto, dependiendo como tienen organizado su sitio.

Donde tengo mis JGZ y CGZ ??
Código:
# aqui tengo mis CGZ
shell# ls -l /home/user/public_html/templates/css/

# aqui tengo mis JGZ
shell# ls -l /home/user/public_html/templates/js/

Editamos el <VirtualHost> (de preferencia... Yo aqui lo tengo) o bien el HTACCES (muchos tambien ponene aqui las reglas). Y dejamos mas o menos asi:

Código:
shell# cat /etc/httpd/conf/httpd.conf

........
RewriteRule ^template/css/(.+)\.css$ template/css/$1.cgz
RewriteRule ^template/js/(.+)\.js$ template/js/$1.jgz
........

Ahora podran invocar las etiquetas:

Código:
<link rel="stylesheet" type="text/css" href="css/estilo.css">
<script type="text/javascript" src="js/script.js"></script>

Y mod_rewrite estaria llamando los JGZ y CGZ que son los que en realidad existen en el sitio.

Herramientas


Les dejo las herramientas web para que peudan testear la configruacion en su sitio y verificar que este bien implementada:

http://www.whatsmyip.org/http_compression/
http://www.gidnetwork.com/tools/gzip-test.php

Agradecimientos


Pues de nada, al rato formalizo el texto y subo en PDF....
Visiten mi blog: <spam>

Saludos !
215  Comunicaciones / Redes / Re: [Apache] Problemas para servir contenido comprimido .gz ! en: 11 Agosto 2011, 15:58 pm


Se ve perfectamente. Y en el código fuente me sale:


Código
  1. <head>
  2. <title>Sitio compromido al maximo</title>
  3. <meta http-equiv="Vary" content="Accept-Encoding" />
  4. <link rel="stylesheet" type="text/css" href="codigo.cgz" />
  5. </head>
  6.  
  7. <body>
  8. <div id="caja">Caja en el centro con background amarillo y borde negro.</div>
  9.  
  10. </body>
  11. </html>

Por lo tanto, lo está descomprimiendo bien.

Despues de colocar el enlace, horas despues quedo solucionado, mas tarde pongo la solucion...
216  Comunicaciones / Redes / Re: [Apache] Problemas para servir contenido comprimido .gz ! en: 10 Agosto 2011, 23:31 pm
He puesto un test.php en donde se invoca un codigo.css.gz, alguien me ayude a que se pueda descomprimir al momento de entrar al sitio y pueda verse el estilo ?

Enlace: http://turundus.net/test.php
217  Comunicaciones / Redes / Re: [Apache] Problemas para servir contenido comprimido .gz ! en: 10 Agosto 2011, 22:23 pm
No siempre hace falta poner la extensión .gz, ya que en teoría, la compresión-descompresión se hace en segundo plano.
 
En tu sitio (lab.sie-group) al crear la hoja de estilos le pusiste tú esa extensión? O la agrega el servidor de forma dinámica?

En teoría no hace falta ponerle la extensión .gz si en las cabeceras HTTP le envías:

Código:
 Accept-Encoding: gzip

Los de GoDaddy creo que hacen algo así:

Código
  1. <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>

Creo que aun tomas bien el dato que te quiero decir, yo entiendo al habilitar Encoding gzip el sitio se envia compreso y apache hace todo el proceso, pero cuando yo me refiero a los script.js y script.css me refieo a comprimir los CSS y JS antes de subirlos al server por eso toman la extensión gz. Vaya:

Código:
micasa# cd /miproyecto/tema/css/
micasa# cp estilo.css estilo.css.back
misaca# gzip estilo.css
micasa# mv estilo.css.back estilo.css
micasa# ls -l
estilo.css
estilo.css.gz

El peso del estilo.css.gz (80kb) es menos de la mitad de estilo.css (200kb), asi que el que subo es estilo.css.gz, pero obviamente al estar compreso e intentar abrirlo con un editor se ven puros garabatos.

Despues lo subo al server de GoDaddy (lab.sie-group.net) y en el HTML invoco el estilo.css.gz, y sucede que en vez de mostrar los garabatos el mismos server GoDaddy lo traduce a legible.

El punto aqui es que se reduce drasticamente el peso del sitio y la rapidez con que se visualiza el sitio.

Lo demas que me dijiste segun entiendo es para que reconozca el GZ y lo asocie, pero deja lo implemento y subo los archivos compresos y haber si funciona.

Por cierto, en el test de compresion http://www.gidnetwork.com/tools/gzip-test.php me indica que SI esta comprimido el sitio....

Saludos !



Otro ejemplo de configuración del .htaccess es:

Código:
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:
<Files *.html>
SetOutputFilter DEFLATE
</Files>

Esta lineas si las uso, pero en una sola en el mod_deflate asi:
Código:
shell# cat /etc/http/conf.d/deflate.conf
AddOutputFilterByType DEFLATE text/html text/plain text/css application/x-javascript



No siempre hace falta poner la extensión .gz, ya que en teoría, la compresión-descompresión se hace en segundo plano.
 
En tu sitio (lab.sie-group) al crear la hoja de estilos le pusiste tú esa extensión? O la agrega el servidor de forma dinámica?

En teoría no hace falta ponerle la extensión .gz si en las cabeceras HTTP le envías:

Código:
 Accept-Encoding: gzip

Los de GoDaddy creo que hacen algo así:

Código
  1. <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>

Fuente: Compressing Web Pages for Faster Load Times.

Mediante .htaccess también puedes detectar si el navegador del usuario tiene GZip:

Código:
<files *.js.gz>
  AddType "text/javascript" .gz
  AddEncoding gzip .gz
</files>
<files *.css.gz>
  AddType "text/css" .gz
  AddEncoding gzip .gz
</files>
RewriteEngine on
#Check to see if browser can accept gzip files.
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
#make sure there's no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L]

O si vas a incluir los recursos (css y js) con la extensión .gz, lo más probable es que se lo tengas que indicar al servidor, al igual que arriba, mediante .htaccess:

Código:
AddEncoding gzip .gz
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]

Otro ejemplo de configuración del .htaccess es:

Código:
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:
<Files *.html>
SetOutputFilter DEFLATE
</Files>

Si te fijas en los comentarios, le estás indicando que sirva "comprimidos" todos esos tipos MIME.


Te confirmo que no funciona, vaya el sitio SI ESTA COMPRESO (eso lo se porque siempre lo ha estado desde que acitve mod_deflate), pero al pasarle los estilo.css y script.js comprimidos estos no se interpretan al visitar el sitio.

Saludos !
218  Comunicaciones / Redes / Re: [Apache] Problemas para servir contenido comprimido .gz ! en: 10 Agosto 2011, 18:39 pm
Las hojas de estilo CSS y los scripts javascript se cargan en el navegador del cliente, no tiene nada que ver con el servidor. Por lo que no deberían tener extensión .gz.

Hay algunas herramientas online que te permiten comprobar si tu servidor envía el contenido comprimido:

_HTTP Compression
_Compression / Deflat / Gzip test tool

Te interesará saber, que con PHP también puede comprimir los datos que se envía, mediante ZLib (Explicación).

Resumiendo, el servidor hace bien la compresión de los datos, el problema es el cliente/navegador, porque no carga ni las CSS ni los JS (al haberlos comprimido).


Buenas...

Gracias por las recomendaciones...

Me creeras loco men, pero si se pueden interpretar como style.css.gz, y es un servicio mismo del apache o del php (nose)... pero de que se puede, se puede, y mejora un buen el peso del sitio y la rapidez. Como ejemplo habilite la modalidad en otro sitio que tengo, es: http://lab.sie-group.net... Mirate el codigo fuente html y observa como esta llamado el estilo.css

Ahora diras.. "pues hazlo"... El punto es que mi Blog (lab.sie-group.net) esta sobre un servidor GoDaddy, vaya, YO NO gestiono el server, ellos lo configuran.

Y para mi otro sitio tengo un Servidor Dedicado, así que, no hayo como activar esa opción :(.

Cabe resaltar que en el servidor de GoDaddy cuando yo llamo la URL: http://misitio.com/mitemplate/estillo.css.gz , me resulta el GZ descomprimido.

Y cuando en mi servidor dedicado visito la URL: http://miserver.com/mitemplate/estilo.css.gz, me resulta el codigo comprimido en GZ, vaya, veo puros garabatos !

Saludos !
219  Comunicaciones / Redes / [Apache] Problemas para servir contenido comprimido .gz ! (solved) en: 10 Agosto 2011, 04:53 am
Buenas.

Quiero implementar la opcion de servir contenido comprimido para ahorrar ancho de banda y alijerar el peso de mi sitio, lo primero la idea es que los scripts JS y estilo CSS se sirvan comprimidos y se puedan interpretar.

Me refiero a algo asi:

Código:
# css
<link rel="stylesheet" type="text/css" href="http://misitio.com/estilos/style.css.gz">

# javascript
<script type="text/javascript" src="http://misitio.com/js/script.js.gz"></script>

Hasta este punto he implementado algunas cosas pero mi servidor no consigue interpretar los *.gz, vaya, es como si no interpretara el style CSS y el sitio se ve todo mal.

Lo que he implementado es:

Habilitar mod_deflate.so - Por defecto esta instalado.
OJO, en Apache menor a 2.0 se usaba mod_gzip.so, ahora en 2.0 para arriba es mod_deflate.so
Código:
shell# cd /etc/httpd/modules/
shell# ls -l
...
..
mod_deflate.so

Configurando mod_deflate.so
Código:
shell# cd /etc/httpd/conf.d/
shell# nano deflate.conf
AddOutputFilterByType DEFLATE text/html text/plain text/css application/x-javascript

Habilitando interpretacion de *.gz en httpd.conf [Ver httpd.conf completo]
Código:
shell# nano /etc/httpd/conf/httpd.conf
ForceLanguagePriority Prefer Fallback
AddDefaultCharset UTF-8
AddType application/x-tar .tgz
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Configurar php.ini para habilitar zlib compression
Código:
shell# cat /etc/php.ini | grep zlib
zlib.output_compression = On

Reiniciar apache
Código:
shell# /etc/init.d/httpd restart

Subo los estilo.css.gz, script.js.gz, los invoco tal cual en el HTML, y al refrescar el sitio sale sin los estilos. en pocas palabras, no se interpreta.

Les dejo la trama recepcionada para que verifiquen que el Header de Encoding esta en gzip. Sigo sin entender proque no funciona :(.

GET a turundus.net
Código:
Date	Wed, 10 Aug 2011 02:54:00 GMT
Server Apache/2.2.3 (CentOS)
X-Powered-By PHP/5.1.6
Set-Cookie PHPSESSID=klsdjklfjsmi_session_msdisidmf; path=/
Expires Thu, 11 Aug 2011 02:54:00 GMT
Cache-Control public, max-age=3600
Pragma no-cache
Last-Modified Wed, 10 Aug 2011 02:54:00 GMT
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 2959
Connection close
Content-Type text/html; charset=UTF-8
220  Programación / Desarrollo Web / Re: Analizador Log´s Web en: 26 Julio 2011, 22:50 pm
Hola, no se si este tma va por aqui... pero bueno lo pongo,

estoy buscando un analizador de ficheros log´s para monitorear mi web, me da igual qeu los archivos se tengan que descargar a una maquina para posteriormente analizarlos o que se pueda hacer online, conectando con el servidor.

a ver si alguien me hecha una mano estoy algo desesperado

por cierto lo busco para sistemas Linux (debian)

Me imagino que para monitorear Apache....

Deberias implementar un script (en PHP de preferencia) para monitorear el estado de tu site, en fin, solo seria los errores, pero a fin de cuentas no le veo mucha ventaja saber los errores :S, a menos que tengas hosting a clientes y desees verificar el comportamiento.

Ya que si vas por la tirada de verificar el deamon (/etc/init.d/httpd) seria mejor lo implementaras en el mismo servidor (corriendolo desde shell).

Explicate por favor, ya que son suposiciones !

Saludos !
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 72
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines