S
SrMendez
Gamma
Programador
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.