Entradas

Mostrando las entradas etiquetadas como nginx

PHP en Google compute engine + cloud sql

Imagen
Hoy en día los servicios en la nube son una clara alternativa a la hora de alojar un sitio web, ya no es necesario un servidor dedicado con las prestaciones y herramientas que ofrecen Google, Amazon o Azure. En el caso de Google existen alternativas más sencillas para alojar un sitio web que las de utilizar compute engine (una maquina virtual), me refiero a app engine, pero a mi parecer se pierde mucho control sobre las prestaciones que queramos tener. En este post pienso hablar de como instalar nginx con soporte para http2 y php 7.2 en una maquina virtual con CentOS 7, además de enseñar a configurarlo para utilizar una base de datos MySQL 5.7 almacenada en el servicio cloud SQL de Google. A la hora de sar de alta estos servicios es muy recomendable que esten en la misma zona geográfica, tanto la maquina virtual como la instancia de MySQL. Una vez creada nuestra instancia de maquina virtual instalaremos nginx y comprobaremos su configuración con: nginx -V nginx -t A...

CentOS 7 soporte para HTTP2 con NginX

Imagen
Esta entrada sigue un poco la línea del artículo en el que comentaba que para dar soporte a HTTP/2 para los usuarios de Google Chrome tendríamos que utilizar algún repositorio ya compilado o compilar nosotros mismos NginX con las últimas versiones de OpenSSL. En el post citado elegí la primera opción, pero encontrarme con un repositorio fiable, con un buen mantenimiento, actualizaciones y las últimas versiones de OpenSSL ha sido difícil, es por ello que decidí compilar mi propia versión de NginX con las últimas versiones de OpenSSL en CentOS 7, y estos son los pasos: sudo yum -y groupinstall 'Development Tools' sudo yum -y install epel-release \ wget \ openssl \ openssl-devel \ zlib-devel \ pcre-devel \ redhat-lsb-core sudo yum clean all sudo useradd builder sudo mkdir -p /opt/lib sudo wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz -O /opt/lib...

Una semana con Docker en Windows

Imagen
Docker para Windows ha mejorado muchísimo, recuerdo que no hace tanto intenté probarlo y no pude porque utilizaba Virtual Box y yo ya tenía Hyper-V corriendo en mi máquina lo cual me hizo imposible la prueba. Ahora, por suerte, utiliza nativamente Hyper-V y además soporta los contenedores de Windows. Pero empecemos de cero. ¿Qué es un contenedor? Hay mil definiciones online pero en resumidas cuentas un contenedor es una especie de máquina virtual con muchas limitaciones pero grandes ventajas. Los contenedores se basan en imágenes de software que parten de una imagen base y sobre la cual heredan sus características, al principio estas imágenes base solo estaban basadas en el núcleo de Linux pero con la llegada de los Server Core y Nano Core Microsoft también ha optado por crear sus imágenes base a partir de estas dos mini distribuciones de su sistema operativo. En resumen, son un entorno operativo aislado, con controlados recursos y portátil. ¿Qué es Docker? Docker no ...

HTTP/2 para los usuarios de Google Chrome

Imagen
Si eres un webmaster y has notado que los usuarios de Google Chrome que accedían anteriormente a través de HTTP 2 ahora lo hacen por HTTP 1, estas en el sitio correcto. Esto es debido a un cambio de política en la más reciente actualización de Chrome , lanzada a finales de mayo, que elimina el soporte a NPN, un método para actualizar una conexión a HTTP 2. La única manera que tienen estos usuarios de Chrome de acceder a tu sitio web por HTTP 2 es cambiando a un navegador diferente. Pero tú, como administrador, puedes restaurar el soporte a HTTP 2 actualizando OpenSSL a versiones superiores o iguales a la 1.0.2. Para saber mas detalles sobre este comportamiento puedes visitar el siguiente enlace en inglés . Este post está destinado principalmente a CentOS 7 con instalaciones de Nginx desde el repositorio oficial.  La instalación oficial de Nginx no está compilada con OpenSSL, con lo cual utiliza la instalación que tengas en tu CentOS, lo malo de esto es que a fe...

Slim 3 en Apache como proxy de Nginx

Imagen
Supongo que si has llegado a este post es que conoces Slim , pero para los que no, voy a hacer una pequeña introducción. Slim es un micro framework PHP que te ayuda a escribir con rapidez aplicaciones web simples pero potentes y APIs. Aunque esa es su definición, Slim es realmente útil a la hora de crear servicios web. Ya va por la versión número 3 y aunque no tiene ni página en la Wikipedia, es bastante recomendable. Bien, yendo al grano. Si bien en su página web de documentación vienen detalladas las configuraciones para nginx, apache y otros servidores , lo que no viene es la configuración si tenemos un Nginx como front que utiliza Apache como proxy para las peticiones de PHP. Para este caso concreto lo que debemos hacer es configurar Nginx para que envíe la petición tal y como la recibe a Apache y que apache se encargue de procesarla. Imaginemos que el servicio web se encuentra en una subcarpeta de nuestra aplicación, /api, de manera que accedemos /api/public. Est...

Instalar últimas versiones de nginx, php y mysql en CentOS 7

Imagen
Trabajar con las últimas versiones de software en sistemas como CentOS a veces suele ser difícil, sobre todo a la hora de encontrar repositorios que te permitan mantener el mismo nombre de paquetes y así poder actualizar los existentes. A día de hoy estas son las versiones que tengo instaladas, todas con los nombres de paquetes oficiales, nginx, php y mysql, (existen otros repositorios que te permiten instalar php 7 pero con un nombre diferente php70 o php70w según el repositorio que consultes): CentOS Linux release 7.2.1511 (Core) Server version: 5.7.10 MySQL Community Server (GPL) nginx version: nginx/1.9.9 PHP 7.0.1 (cli) (built: Dec 16 2015 15:23:56) ( NTS ) Repositorios necesarios Para instalar MySQL descargaremos el repositorio oficial de Oracle, desde que MySQL fue comprado por Oracle la comunidad de CentOS se ha decantado por MariaDB con lo cual no hay disponibles versiones para CentOS. rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-7...