Servicio cloud: Tencent Cloud
Sistema operativo: Ubuntu 16.04
- Instalación de JDK
- Descargar el paquete JDK desde el sitio oficial y transferirlo al servidor mediante scp, xftp u otra herramienta.
- Descomprimir el archivo en el directorio deseado:
sudo tar -xzf jdk-8u171-linux-x64.tar.gz -C /usr/local/lib - Configurar las variibles de entorno. Abrir el archivo
/etc/profileconsudo vim /etc/profiley 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:$PATHGuardar y salir. Luego ejecutar `source /etc/profile` para aplicar los cambios. - 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;
- 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:
- Instalar dependencias necesarias:
sudo apt-get install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl - Descargar la versión estable de Nginx (por ejemplo 1.14.0):
wget http://nginx.org/download/nginx-1.14.0.tar.gz - Descomprimir y entrar al directorio:
tar -xzf nginx-1.14.0.tar.gz && cd nginx-1.14.0 - Configurar con soporte HTTPS y ruta de instalación:
sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module - 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
- Instalación de Redis
- Descargar Redis 4.0.9:
wget http://download.redis.io/releases/redis-4.0.9.tar.gz - Descomprimir y compilar:
tar -xzf redis-4.0.9.tar.gz && cd redis-4.0.9 && sudo make && sudo make install - 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
- Instalación de Tomcat
- 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 - Descomprimir en la ubicación deseada (por ejemplo
/opt/tomcat):
sudo tar -xzf apache-tomcat-8.5.30.tar.gz -C /opt - Mover el archivo WAR de la aplicación a
/opt/apache-tomcat-8.5.30/webapps/. - 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.
- 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.