TP : MySQL, BlueMap, Reverse Proxy Nginx & HAProxy
🎯 Objectifs
- 📦 Installer et configurer un serveur MySQL en Master-Slave.
- ⚙️ Configurer un serveur Minecraft avec BlueMap.
- 🔄 Configurer un Reverse Proxy via NGINX ou HAProxy pour accéder à la carte du serveur Minecraft en HTTPS.
- 🌐 Vérifier le bon fonctionnement de la carte sur le navigateur.
- 📝 Vérifier la création des tables dans la base de données MySQL.
- 🔄 Vérifier la synchronisation des données entre le Master et le Slave.
📖 Définitions
- Master-Slave : Architecture de base de données où un serveur (Master) est responsable de l'écriture des données et de leur réplication vers un ou plusieurs serveurs (Slave) pour la lecture.
- BlueMap : Plugin Minecraft permettant de générer des cartes interactives du serveur.
- Reverse Proxy : Serveur intermédiaire qui reçoit les requêtes des clients et les transmet aux serveurs appropriés. Exemple : Un serveur dans un restaurant qui reçoit les commandes des clients et les transmet aux cuisines correspondantes.
📝 Prérequis
Avant de commencer, téléchargez les fichiers nécessaires dans le répertoire /tmp
:
cd /tmp
Sur le serveur Minecraft :
wget https://public.babouins.fr/assets/tp_bluemap/server.jar
wget https://public.babouins.fr/assets/tp_bluemap/bluemap-spigot.jar
wget https://public.babouins.fr/assets/tp_bluemap/minecraft-client.jar
Sur le serveur Proxy :
wget https://public.babouins.fr/assets/tp_bluemap/default.conf
wget https://public.babouins.fr/assets/tp_bluemap/haproxy.cfg
📂 Partie 1 : Installation de MySQL
Serveur MySQL 1
-
💻 Installation de MariaDB :
apt install mariadb-server mariadb-client -y
-
🔧 Configuration de MariaDB :
nano /etc/mysql/mariadb.conf.d/50-server.cnf
- Modifier
bind-address
en::
- Retirer le
#
devantserver-id = 1
- Supprimer
log_bin = /var/log/mysql/mysql-bin.log
- Modifier
-
📂 Création du répertoire de logs :
mkdir /var/log/mysql
chown mysql:mysql /var/log/mysql
systemctl restart mariadb.service -
👤 Configuration de l'utilisateur et de la base de données :
mysql
CREATE USER "admin"@"%" IDENTIFIED BY "P@ssw0rd";
GRANT ALL PRIVILEGES ON *.* TO "admin"@"%";
FLUSH PRIVILEGES;
CREATE DATABASE bluemap;
GRANT ALL PRIVILEGES ON bluemap.* TO "admin"@"%";
FLUSH PRIVILEGES; -
📝 Vérification du statut du master :
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 328 | | |
+------------------+----------+--------------+------------------+
1 row in set (0,000 sec)
Serveur MySQL 2
-
💻 Installation de MariaDB :
apt install mariadb-server mariadb-client -y
-
🔧 Configuration de MariaDB :
nano /etc/mysql/mariadb.conf.d/50-server.cnf
- Modifier
bind-address
en::
- Retirer le
#
devantserver-id = 2
- Supprimer
log_bin = /var/log/mysql/mysql-bin.log
- Modifier
-
📂 Création du répertoire de logs :
mkdir /var/log/mysql
chown mysql:mysql /var/log/mysql
systemctl restart mariadb.service -
👤 Configuration de l'utilisateur et de la base de données :
mysql
CREATE USER "admin"@"%" IDENTIFIED BY "P@ssw0rd";
GRANT ALL PRIVILEGES ON *.* TO "admin"@"%";
FLUSH PRIVILEGES;
CREATE DATABASE bluemap; -
🔄 Configuration du Slave :
CHANGE MASTER TO MASTER_HOST='IPMYSQL1', MASTER_USER='admin', MASTER_PASSWORD='P@ssw0rd', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=IDPosition;
START SLAVE;
SHOW SLAVE STATUS \G;- Vérifier le message "Slave has read all relay log; waiting for more updates"
🎮 Partie 2 : Configuration du Serveur Minecraft
-
🚹 Informations :
- Le serveur utilise un template préconfiguré avec Minecraft installé (sio1-gw-posix).
- ⚠️ Si le redémarrage de Minecraft échoue : ⚠️
- Utiliser
htop
, appuyer surF5
pour voir l'arborescence des processus. - Sélectionner le processus Minecraft, appuyer sur
F9
et choisirSIGKILL
pour tuer le processus.
-
⚙️ Gestion des processus Minecraft :
systemctl stop minecraft-*
mv /tmp/server.jar /srv/mc/alice/server.jar
chown -R alice:alice /srv/mc/alicesystemctl start minecraft-alice
journalctl -u minecraft-alice -f
systemctl stop minecraft-alicemv /tmp/bluemap-spigot.jar /srv/mc/alice/plugins/
chown -R alice:alice /srv/mc/alicesystemctl start minecraft-alice
journalctl -u minecraft-alice -f -
🔧 Configuration de BlueMap :
nano /srv/mc/alice/plugins/BlueMap/core.conf
- Mettre
accept-download
àtrue
mv /tmp/minecraft-client.jar /srv/mc/alice/bluemap/
- Mettre
-
🗄️ Configuration SQL pour BlueMap :
apt install mariadb-client -y
nano /srv/mc/alice/plugins/BlueMap/storages/sql.conf- Modifier l'adresse localhost par l'IP de votre serveur et les identifiants de connexion :
connection-url: "jdbc:mysql://[IPMYSQL1]:3306/bluemap?permitMysqlScheme"
connection-properties: {
user: "admin",
password: "P@ssw0rd"
}
- Modifier l'adresse localhost par l'IP de votre serveur et les identifiants de connexion :
-
🔄 Redémarrage de Minecraft :
systemctl restart minecraft-alice
journalctl -u minecraft-alice -f -
🗺️ Modification des fichiers de configuration des maps :
cd /srv/mc/alice/plugins/BlueMap/maps
- Modifier
alice.conf
,alice_nether.conf
,alice_the_end.conf
:storage: "file" à remplacer par storage: "sql"
- Modifier
-
🔄 Rechargement de BlueMap via mcrcon :
mcrcon -P 40001 -p alice_OVWBokqwGGLHZdByLgYf0hIlPkTPLMkfyO1v+VPC/n4
- Tapez
bluemap reload
puisq
pour sortir
- Tapez
-
🌐 Vérification de la MAP sur le navigateur :
- Se rendre sur [http://[IP SRV MC]:8100] pour vérifier l'apparition de la carte du serveur.
-
📝 Vérification sur le serveur MySQL 1 :
mysql
USE bluemap;
SHOW TABLES;Le résultat doit être similaire à :
MariaDB [bluemap]> SHOW TABLES;
+------------------------------+
| Tables_in_bluemap |
+------------------------------+
| bluemap_map |
| bluemap_map_meta |
| bluemap_map_tile |
| bluemap_map_tile_compression |
| bluemap_storage_meta |
+------------------------------+
5 rows in set (0,000 sec)
🌐 Partie 3 : Configuration du Reverse Proxy Nginx
-
🔒 Installation et génération des certificats TLS via Certbot :
apt update && apt upgrade -y
apt install certbot -y
certbot certonly --standalone -d fqdnRemplacer
fqdn
par le nom de domaine. -
💻 Installation de NGINX :
apt install nginx -y
-
🔧 Configuration de NGINX :
mv /tmp/default.conf /etc/nginx/sites-available/default.conf
- Remplacer
IPV6-MC
par l'adresse IP V6 du serveur Minecraft. - Remplacer
fqdn
par le nom de domaine.
- Remplacer
-
✅ Vérification et redémarrage de NGINX :
nginx -t
systemctl restart nginx -
🌐 Vérification sur le navigateur :
- Se rendre sur [https://fqdn] pour vérifier l'apparition de la carte du serveur.
🌐 Partie 4 : Configuration de HAProxy
- 💻 Installation de HAProxy :
apt install haproxy -y
- 🔧 Configuration de HAProxy :
mv /tmp/haproxy.cfg /etc/haproxy/haproxy.cfg
- Remplacer
IPV6-MC
par l'adresse IP V6 du serveur Minecraft.
- Remplacer
- 🔒 Configuration des certificats TLS :
cat /etc/letsencrypt/live/fqdn/fullchain.pem /etc/letsencrypt/live/fqdn/privkey.pem > /etc/haproxy/ssl/ssl.pem
- ✅ Vérification et redémarrage de HAProxy :
haproxy -c -f /etc/haproxy/haproxy.cfg
systemctl restart haproxy - 🌐 Vérification sur le navigateur :
- Se rendre sur [https://fqdn] pour vérifier l'apparition de la carte du serveur.