Implementación de un proyecto en Tencent Cloud con Ubuntu

Servicio cloud: Tencent Cloud
Sistema operativo: Ubuntu 16.04

  1. Instalación de JDK

  1. Descargar el paquete JDK desde el sitio oficial y transferirlo al servidor mediante scp, xftp u otra herramienta.
  2. Descomprimir el archivo en el directorio deseado:
    sudo tar -xzf jdk-8u171-linux-x64.tar.gz -C /usr/local/lib
  3. Configurar las variibles de entorno. Abrir el archivo /etc/profile con sudo vim /etc/profile y agregar las siguientes líneas al final: ``` export JAVA_HOME=/usr/local/lib/jdk1.8.0_171 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    
    Guardar y salir. Luego ejecutar `source /etc/profile` para aplicar los cambios.
    
    
  4. Instalación de MySQL

Instalar el servidor y cliente de MySQL (se solicitará establecer una contraseña para el usuario root durante el proceso):

sudo apt-get update
sudo apt-get install mysql-server mysql-client libmysqlclient-dev

Comandos básicos para gestionar el servicio:

sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl status mysql

Para acceder a la consola MySQL: mysql -u root -p

Configuración de acceso remoto

Editar el archivo de configuración /etc/mysql/mysql.conf.d/mysqld.cnf y comentar la línea bind-address = 127.0.0.1 agregando # al inicio.

Crear un usuario con permisos remotos (más seguro que usar root):

CREATE USER 'appuser'@'%' IDENTIFIED BY 'password_segura';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  1. Instalación de Nginx

Compilar desde el código fuente es una opción que permite personalizar los módulos. A continuación se detalla el proceso:

  1. Instalar dependencias necesarias:
    sudo apt-get install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl
  2. Descargar la versión estable de Nginx (por ejemplo 1.14.0):
    wget http://nginx.org/download/nginx-1.14.0.tar.gz
  3. Descomprimir y entrar al directorio:
    tar -xzf nginx-1.14.0.tar.gz && cd nginx-1.14.0
  4. Configurar con soporte HTTPS y ruta de instalación:
    sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module
  5. Compilar e instalar:
    sudo make && sudo make install

Comandos útiles (ejecutar desde /usr/local/nginx):

sudo sbin/nginx -c conf/nginx.conf   # iniciar con configuración específica
sudo sbin/nginx -s reload            # recargar configuración
  1. Instalación de Redis

  1. Descargar Redis 4.0.9:
    wget http://download.redis.io/releases/redis-4.0.9.tar.gz
  2. Descomprimir y compilar:
    tar -xzf redis-4.0.9.tar.gz && cd redis-4.0.9 && sudo make && sudo make install
  3. Por defecto Redis se instala en /usr/local/bin.

Configurar autenticación con contraseña:

Copiar el archivo de configuración de Redis: cp redis.conf /etc/redis/redis.conf
Editar /etc/redis/redis.conf y buscar la línea # requirepass foobared. Reemplazarla por:

requirepass mi_clave_secreta

Iniciar Redis con el archivo de configuración:

redis-server /etc/redis/redis.conf

Conectarse con autenticación: redis-cli -a mi_clave_secreta

  1. Instalación de Tomcat

  1. Descargar Tomcat 8.5.30:
    wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.30/bin/apache-tomcat-8.5.30.tar.gz
  2. Descomprimir en la ubicación deseada (por ejemplo /opt/tomcat):
    sudo tar -xzf apache-tomcat-8.5.30.tar.gz -C /opt
  3. Mover el archivo WAR de la aplicación a /opt/apache-tomcat-8.5.30/webapps/.
  4. Iniciar Tomcat: sudo /opt/apache-tomcat-8.5.30/bin/startup.sh

Configurar acceso sin nombre de contexto
Editar conf/server.xml y modificar el nodo <Host> agregando:

<Context path="" docBase="/ruta/absoluta/de/la/aplicación" />

Cambiar también appBase="" para evitar que el proyecto se cargue dos veces.

  1. Configuración de Nginx (proxy inverso y dominios)

Editar /usr/local/nginx/conf/nginx.conf y añadir un bloque server similar al siguiente:

server {
    listen 80;
    server_name tudominio.com;

    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location ^~ /static/ {
        root /opt/apache-tomcat-8.5.30/webapps/tu_proyecto/;
        expires 30d;
    }
}

Con esta configuración, las peticiones HTTP al dominio se redirigen a Tomcat (puerto 8080) y los archivos estáticos se sirven directamente desde Nginx.

Para habilitar HTTPS, es necesario contar con un certificado SSL. Se recomienda agregar otro bloque server que escuche en el puerto 443 y configure los arcihvos ssl_certificate y ssl_certificate_key.

Etiquetas: JDK MySQL Nginx Redis tomcat

Publicado el 6-4 03:11