Tutorial: Instala Nginx 1.9.6 con Google PageSpeed en WHM/cPanel para hacer volar tu sitio web!

  • Autor Autor SrMendez
  • Fecha de inicio Fecha de inicio
S

SrMendez

Gamma
Programador
fast.webp

Anteriormente había creado un tutorial de como hacer esto en la versión 1.8.0 del Nginx, pero dicha versión no esta al día y ya me había tardado en hacer uno que si este al día.

Para quienes no conocen el anterior:

Instalando Nginx, Varnish, Pagespeed, Memcached y Mod Cloudflare sin errores en cP!

Ahora bien, muchos como tu se preguntaran, ¿Para que funciona el Ningx?

El Nginx es un motor que hace trabajar tu Sitio Web al igual que el Apache dándole vida al http y al https solo que este esta creado de diferente forma, el Nginx es mas seguro que Apache, da un excelente rendimiento, un gran porcentaje de sitios hoy en día lo esta usando como CloudFlare lo hace también solo que en este caso le daremos un uso inverso.

¿Y si mi servidor no tiene WHM/cPanel?, puedes recurrir a tu SysAdmin mas cercano para que el estudie el manual y haga la instalación de igual forma en base a como la tengo yo explicada, las personas con conocimientos saben aplicar este tutorial a cualquier otro panel de control o inclusive darle un uso sin tener ningún tipo de panel instalado.

¿Que me dices del Google PageSpeed?, es una bomba de optimización que se le va a sumar a tu sitio web con Nginx, trabajan a la perfección y te mejoran el puntaje en Google PageSpeed Insights, misma que no te va a traer conflictos algunos pero en caso de que lo tengas la siguiente descripción te dirá como desactivarlo y solo dejar el Nginx funcionado para un sitio especifico.

¿Trae conflictos con mi sitio web?, ninguno pero en caso de que si lo traiga como el Nginx esta funcionando de modo inverso en tu servidor cP entonces puedes agregar una simple linea al .htaccess para desactivarlo en un sitio web o directorio especifico "Modpagespeed Off".

¡Si tienes mas dudas consulta el tutorial anterior o hazla en un comentario al terminal de leer el tema, comenzamos!

1) - Accede a tu consola o terminar de ssh con permisos root para que puedas realizar los cambios que te voy a presentar a continuación.

2) - Este paso es mas que necesario porque aun hoy en día los creadores del script que auto instala el Nginx no lo han solucionado, corre el siguiente comando.

Insertar CODE, HTML o PHP:
cp /var/cpanel/templates/apache2_4/* /var/cpanel/templates/apache2

P1: Instalando Nginx

3) - Con el siguiente comando a continuación vas a descargar e instalar Nginx 1.9.6, mismo que se va a configurar de forma automática una vez este instalado.

Insertar CODE, HTML o PHP:
cd /usr/local/src;wget http://nginxcp.com/latest/nginxadmin.tar;tar xf nginxadmin.tar;cd publicnginx;wget http://nginx.org/download/nginx-1.9.6.tar.gz;tar -zxvf nginx-1.9.6.tar.gz;rm -rf nginx-1.8.0.tar.gz;rm -rf nginx-1.8.0;cp nginx-1.9.6.tar.gz nginx-1.8.0.tar.gz;mv nginx-1.9.6 nginx-1.8.0;tar -zxvf nginx-1.9.6.tar.gz;./nginxinstaller install

P2: Instalando PageSpeed

4) - Con el siguiente comando a continuación vas a instalar Google PageSpeed, lo vas a unir a la previa instalación del Nginx sin problema alguno todo de forma automática.

Insertar CODE, HTML o PHP:
cd /usr/local/src/publicnginx;wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip;yum install zip -y;unzip master.zip;cd ngx_pagespeed-master;wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz;tar -xzvf 1.9.32.6.tar.gz;cd /usr/local/src/publicnginx/nginx-1.8.0;service nginx stop;./configure --with-http_flv_module --with-ipv6 --with-http_mp4_module --with-pcre=../pcre-8.35  --sbin-path=/usr/local/sbin  --conf-path=/etc/nginx/nginx.conf  --pid-path=/var/run/nginx.pid  --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log  --with-http_realip_module  --with-http_ssl_module  --http-client-body-temp-path=/tmp/nginx_client  --http-proxy-temp-path=/tmp/nginx_proxy  --http-fastcgi-temp-path=/tmp/nginx_fastcgi  --with-http_stub_status_module  --add-module=/usr/local/src/publicnginx/ngx_pagespeed-master;make install

Una vez termine la instalación del complemento, necesitas detener el servicio de nginx y httpd de forma necesaria porque si no lo haces entonces tus sitios estarían presentando un error 503 si mal no me estoy acordando ya que es debido a que el Nginx no se esta ejecutando adecuadamente y para ello es necesario correr lo siguiente a continuación.

Insertar CODE, HTML o PHP:
service nginx stop;service httpd stop;service nginx restart;service httpd restart

O el siguiente:

Insertar CODE, HTML o PHP:
service nginx stop;service httpd stop;service httpd restart;service nginx restart

Si aun sigue el presente error se soluciona con un simple comando "reboot", este reiniciara el servidor y ya dependerá de unos minutos para que vuelva a estar operativo.

P3: Configurar PageSpeed

5) - En el WHM, vas a ir donde dice Nginx Admin, luego a "Configuración Editor", allí borraras todo lo que ya esta y pondrás lo siguiente & lo guardaras.

Insertar CODE, HTML o PHP:
user  nobody;
# no need for more workers in the proxy mode
worker_processes  4;
error_log  /var/log/nginx/error.log warn;
worker_rlimit_nofile 20480;
events {
 worker_connections 5120; # increase for busier servers
 use epoll; # you should use epoll here for Linux kernels 2.6.x
}
http {
 server_name_in_redirect off;
 server_names_hash_max_size 10240;
 server_names_hash_bucket_size 1024;
 include    mime.types;
 default_type  application/octet-stream;
 server_tokens off;
# remove/commentout disable_symlinks if_not_owner;if you get Permission denied error
# disable_symlinks if_not_owner;
 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;
 keepalive_timeout  5;
 gzip on;
 gzip_vary on;
 gzip_disable "MSIE [1-6]\.";
 gzip_proxied any;
 gzip_http_version 1.0;
 gzip_min_length  1000;
 gzip_comp_level  1;
 gzip_buffers  16 8k;
# You can remove image/png image/x-icon image/gif image/jpeg if you have slow CPU
 gzip_types    text/plain text/xml text/css application/x-javascript application/xml application/javascript application/xml+rss text/javascript application/atom+xml;
 ignore_invalid_headers on;
 client_header_timeout  3m;
 client_body_timeout 3m;
 send_timeout     3m;
 reset_timedout_connection on;
 connection_pool_size  256;
 client_header_buffer_size 256k;
 large_client_header_buffers 4 256k;
 client_max_body_size 200M; 
 client_body_buffer_size 128k;
 request_pool_size  32k;
 output_buffers   4 32k;
 postpone_output  1460;
 proxy_temp_path  /tmp/nginx_proxy/;
 proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=microcache:15m inactive=24h max_size=500m;
 client_body_in_file_only on;
 log_format bytes_log "$msec $bytes_sent .";
 log_format custom_microcache '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $body_bytes_sent '
        '"$http_referer" "$http_user_agent" nocache:$no_cache';
include "/etc/nginx/vhosts/*";
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
}

6) - Ahora te tocara hacer unas ediciones necesarias con el editor nano o el de tu gusto para que PageSpeed funcione en tus sitios web.

Insertar CODE, HTML o PHP:
yum install nano -y;nano /usr/local/cpanel/scripts/createvhosts.py

Buscar dedipvhost = """server { y agregar después.

Insertar CODE, HTML o PHP:
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
  add_header "" "";
}
location ~ "^/pagespeed_static/" { }

Buscar sharedipvhost = """server { y agregar después, luego guardar.

Insertar CODE, HTML o PHP:
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

7) - En WHM, vas a Nginx Admin, luego le das a "Rebuild Vhosts" y listo.

Para mi esto es algo sencillo, fácil y rápido de hacer pero no me voy a poner a hacer tutoriales sin antes hacer pruebas completas del funcionamiento de Nginx y PageSpeed por que son cosas que regularmente estoy usando bajo servidores en producción, en servidores de clientes e inclusive en proyectos sumamente costosos.

¿Dudas, Preguntas, Ayuda? Por privado pásame tu Skype o GTalk y hablemos :encouragement: y/o comenta en el tema en caso de problemas/errores para resolverlos en 3 segundos, te ayudo totalmente gratis en caso de que no tengas conocimiento de cómo hacer esto pero el caso de hacer esto para servers adicionales podría llevar a un costo por trabajo.

Con esto tu sitio web va a volar mas rápido que contratar a un Sysadmin para optimizar un servidor de 32 cores con 256gb de ram... 😛7:

Una vez mas,

Saluditos.
 
Excelente tutorial :encouragement: justo para probarlo en un nuevo servidor 🙄 :welcoming:
 
Excelente tutorial :encouragement: justo para probarlo en un nuevo servidor 🙄 :welcoming:

sumamente recomendado, aparte cualquier persona que no tenga whm/cpanel igual puede tener la idea de como hacerlo en un servidor con otro tipo de panel o sin panel.
 
¿Cómo se actualiza Nginx correctamente?
 
Gracias por el aporte
 
¿Cómo se actualiza Nginx correctamente?

si lo tienes instalado en whm/cpanel, te recomiendo que lo remuevas para volver a hacerlo de nuevo con este tutorial pero si lo tienes instalado en un servidor que dispone de un panel diferente o no tiene ningun panel de control yo te recomiendo que hagas esto manualmente en base a tus experiencias.

Insertar CODE, HTML o PHP:
http://nginx.org/download/nginx-1.9.6.tar.gz

lo descargas en un directorio temporal, lo descomprimes, lo copilas y sobrescribes el que ya tienes o remueves el que ya tienes e instalas este.

si necesitas ayuda personal para hacerlo me puedes contactar por mensaje privado, yo te ayudo sin inconveniente alguno 😛7:

este tutorial te da mucha información de buena utilidad aunque sea muy corto para ver como puedes hacer ese proceso guiándose principalmente de los siguientes comandos.

Insertar CODE, HTML o PHP:
cd /;mkdir test;cd test;wget http://nginx.org/download/nginx-1.9.6.tar.gz;tar -zxvf nginx-1.9.6.tar.gz;./configure;make;sudo make install
 
Hola muy buen tutorial yo tengo instalado el nginxcp y xcache , pero me surge una duda tu recomiendas utilizar ese plugin cpanel ? , lo digo porque casi no veo soporte en su foro y en los comentarios ni se diga. Yo la verdad lo utilice pero después lo quite por que no funcionaba el plugin picshield de wordpress.

De todas formas en mi nuevo servidor voy a seguir este excelente tutorial...

Saludos
 
Hola muy buen tutorial yo tengo instalado el nginxcp y xcache , pero me surge una duda tu recomiendas utilizar ese plugin cpanel ? , lo digo porque casi no veo soporte en su foro y en los comentarios ni se diga. Yo la verdad lo utilice pero después lo quite por que no funcionaba el plugin picshield de wordpress.

De todas formas en mi nuevo servidor voy a seguir este excelente tutorial...

Saludos

por supuesto que lo recomiendo, yo mismo personalmente me comprometo a darle soporte a través de esta hermosa comunidad o con tan solo contactarme personalmente.

como bien he comentado varias veces, lo puedes usar en tu servidor mas valioso pero si te causa conflicto con un sitio web con un comando lo resuelves todo.

Insertar CODE, HTML o PHP:
Modpagespeed Off

si te refieres al nginx en lo general pues todo depende de la configuración que tiene el mismo, no importa si el uso es inverso, toda configuración es bienvenida.
 
Se ve muy interesante, esto se puede probar en localhost?
 
[MENTION=147692]SrMendez[/MENTION] Gracias por el tutorial 😱
 
Muy pero muy interesante gracias por el aporte sr Mendez 😀

Me lo guardo en favoritos.... :encouragement::encouragement::encouragement:
 
Me sentaré a leerlo más tarde, o por si las dudas te vuelvo a contratar hehe
 
Siempre usan nginx como proxy inverso :/, yo en mi caso prefiero usarlo directamente como webserver y quitar apache (mayor ahorro de ram y mejor rendimiento final); la única diferencia notable en el uso será que el .htacess no existe y hay que escribir esas reglas de otra manera.

kj
 
Última edición:
Se ve muy interesante, esto se puede probar en localhost?

lo único que debes tener es un pc que estés usando como server y una distro de linux instalada para que comiences a hacer tus pruebas 😛7:

- - - Actualizado - - -

Siempre usan nginx como proxy inverso :/, yo en mi caso prefiero usarlo directamente como webserver y quitar apache (mayor ahorro de ram y mejor rendimiento final); la única diferencia notable en el uso será que el .htacess no existe y hay que escribir esas reglas de otra manera.

kj

así es, de igual forma puedes usarlo normal en servidores que no tengan un panel de control y tener este tutorial como idea para actualizar el nginx a su ultima versión e instalar el pagespeed junto a el, con nginx se puede hacer muchísimas cosas buenas solo hay que tener aunque sea una gota de experiencia para convertirlo en lo que necesitas.
 
Super interesante, solo tengo una pequeña duda.

Si tengo por ejemplo un subdominio, ¿es posible que la velocidad mejorada afecte también a ese subdominio? ¿o solo afecta al dominio principal?... Quiero pensar que es general, pero me surgió la duda.
 
Super interesante, solo tengo una pequeña duda.

Si tengo por ejemplo un subdominio, ¿es posible que la velocidad mejorada afecte también a ese subdominio? ¿o solo afecta al dominio principal?... Quiero pensar que es general, pero me surgió la duda.

claro que afecta a los subdominios por igual no solo al dominio principal, una vez tengas instalado el nginx con el pagespeed puedes ver la fuente de código de tu sitio web y comprobarlo.
 
Interesante tus tutoriales, te he enviado Mp a ver si me puedes ayudar en par de cosas !!
 
Seria interesante que hicieras un tutorial de como instalarlo en localhost y de esa manera probarlo antes de ir lo a poner al servidor!
 
Seria interesante que hicieras un tutorial de como instalarlo en localhost y de esa manera probarlo antes de ir lo a poner al servidor!

que sistema estas usando o que distro de linux?, siempre hay que aclarar estos puntos también :encouragement:
 
Atrás
Arriba