Introducción
Buenas, en este post vamos a instalar joomla
y nextcloud
usando un docker-compose
, y posteriormente configuraremos un proxy inverso en nuestra máquina con nginx para que podamos acceder a las dos aplicaciones mediante un nombre y no mediante un puerto.
Instalación
Haremos la instalación de joomla
y nextcloud
, para ello tenemos el siguiente docker-compose
:
version: '3.1'
services:
joomladb:
container_name: joomladb
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: db_joomla
MYSQL_USER: user_joomla
MYSQL_PASSWORD: pass_joomla
joomla:
container_name: joomla
image: joomla
restart: always
ports:
- 8080:80
environment:
JOOMLA_DB_HOST: joomladb
JOOMLA_DB_USER: user_joomla
JOOMLA_DB_PASSWORD: pass_joomla
JOOMLA_DB_NAME: db_joomla
nextcloud_db:
container_name: nextcloud_db
image: mariadb
restart: always
environment:
MYSQL_DATABASE: db_nextcloud
MYSQL_USER: user_nextcloud
MYSQL_PASSWORD: pass_netxcloud
MYSQL_ROOT_PASSWORD: root
nextcloud:
container_name: nextcloud
image: nextcloud
restart: always
environment:
MYSQL_HOST: nextcloud_db
MYSQL_USER: user_nextcloud
MYSQL_PASSWORD: pass_netxcloud
MYSQL_DATABASE: db_nextcloud
ports:
- 8081:80
Desplegamos:
docker-compose up -d
Editando nginx
Suponiendo que ya tenemos instalado nginx en nuestro equipo, vamos a hacer dos virtualhost, para la primera aplicación:
sudo nano /etc/nginx/sites-available/app1
Y añadimos:
server {
listen 80;
listen [::]:80;
index index.html index.htm index.nginx-debian.html;
server_name www.app1.org;
location / {
proxy_pass http://localhost:8080;
}
}
Y para la segunda:
sudo nano /etc/nginx/sites-available/app2
Y añadimos:
server {
listen 80;
listen [::]:80;
index index.html index.htm index.nginx-debian.html;
server_name www.app2.org;
location / {
proxy_pass http://localhost:8081;
}
}
Habilitamos los dos sitios:
sudo ln -s /etc/nginx/sites-available/app1 /etc/nginx/sites-enabled/app1
sudo ln -s /etc/nginx/sites-available/app2 /etc/nginx/sites-enabled/app2
Reiniciamos nginx:
sudo systemctl restart nginx
Añadimos a nuestro fichero:
sudo nano /etc/hosts
El siguiente contenido:
127.0.0.1 www.app1.org
127.0.0.1 www.app2.org
Y comprobamos: