informatique:installation_et_securisation_d_un_serveur_nextcloud_et_nginx_sur_un_raspberrypi_2_et_disque_ssd
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
informatique:installation_et_securisation_d_un_serveur_nextcloud_et_nginx_sur_un_raspberrypi_2_et_disque_ssd [2021/03/28 18:19] – créée Pascal Delrot | informatique:installation_et_securisation_d_un_serveur_nextcloud_et_nginx_sur_un_raspberrypi_2_et_disque_ssd [2021/10/20 15:03] – mise en forme Pascal Delrot | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
FIXME Cette page est en cours de rédaction ! | FIXME Cette page est en cours de rédaction ! | ||
===== Mes objectifs ===== | ===== Mes objectifs ===== | ||
- | La création de ce serveur répond à quelques objectifs personnels : | + | L' |
* serveur de sauvegarde de mes documents, séparé de ma machine principale (auparavant mon serveur Nextcloud de sauvegarde tournait sur ma tour, et servait à synchroniser ma tour et mon portable). En cas de défaillance de la tour, la plupart des données étaient perdues | * serveur de sauvegarde de mes documents, séparé de ma machine principale (auparavant mon serveur Nextcloud de sauvegarde tournait sur ma tour, et servait à synchroniser ma tour et mon portable). En cas de défaillance de la tour, la plupart des données étaient perdues | ||
- | * soulager mon nextcloud | + | * soulager mon Nextcloud |
+ | * dont l' | ||
+ | * nombreux messages d' | ||
+ | * absence d' | ||
* éventuellement remplacer mon Nextcloud chez Ouvaton | * éventuellement remplacer mon Nextcloud chez Ouvaton | ||
* apprendre ! | * apprendre ! | ||
+ | * utiliser la carte RaspberryPi 2 achetée il y a déjà 8 ans ! et du matériel d' | ||
Quelques difficultés ou apprentissages à faire : | Quelques difficultés ou apprentissages à faire : | ||
Ligne 16: | Ligne 20: | ||
* rediriger un sous-domaine vers ma box | * rediriger un sous-domaine vers ma box | ||
* en cas de défaillance du nouveau serveur, il n'y a toujours pas de sauvegarde prévue | * en cas de défaillance du nouveau serveur, il n'y a toujours pas de sauvegarde prévue | ||
+ | |||
+ | Il y a de nombreux blogs traitant du sujet. | ||
+ | La plupart sont orientés Nextcloud+Apache et promettent d' | ||
+ | Relecture de ces blogs, en ayant en tête que ma RPi2 n'est pas aussi puissante que les derniers modèles. | ||
+ | |||
+ | ===== Installations ===== | ||
+ | Construction du système : | ||
+ | |||
+ | * boot et système sur carte SD (ext4), | ||
+ | * données et base de données sur SSD (ext4) | ||
+ | |||
+ | ==== Installation Raspbian OS ==== | ||
+ | Rien de particulier à signaler sur cette partie. | ||
+ | |||
+ | A date de rédation et réalisation (mars 2021) la version est Raspbian basée sur Debian buster. | ||
+ | |||
+ | Fichiers de configuration sur la clé au premier démarrage : | ||
+ | SSH, Wifi (FIXME liens vers sites tiers pour explications) | ||
+ | |||
+ | ==== Installation serveur nginx ==== | ||
+ | FIXME décrire particularités RPi2, nginx | ||
+ | |||
+ | ==== Installation serveur Mysql/ | ||
+ | FIXME décrire particularités RPi2, nginx | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | |||
+ | ==== Installation Nextcloud ==== | ||
+ | FIXME décrire particularités RPi2, nginx | ||
+ | |||
+ | A date : Nextcloud 21 | ||
+ | |||
+ | |||
+ | === Messages d' | ||
+ | |||
+ | La page de paramètres de Nextcloud affiche assez souvent au départ quelques alertes concernant les réglages. Rien de grave et tout a pu se régler en suivant la documentation. | ||
+ | |||
+ | > Le module php-imagick n’a aucun support SVG dans cette instance. Pour une meilleure compatibilité, | ||
+ | |||
+ | apt install php-imagick imagemagicksudo | ||
+ | |||
+ | :-) | ||
+ | |||
+ | > Aucun cache mémoire n'est configuré. Si possible, configurez un " | ||
+ | |||
+ | Il a suffit de suivre la documentation qui se trouve ici : | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | Le fichier de configuration `config.php` contient alors les lignes suivantes : | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | |||
+ | Voici 2 autres tutoriels sur le sujet : | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | L' | ||
+ | |||
+ | La documentation PHP est utile à lire : https:// | ||
+ | |||
+ | Il a d' | ||
+ | |||
+ | utilisateur@hote: | ||
+ | Configuration File (php.ini) Path => / | ||
+ | Loaded Configuration File => / | ||
+ | |||
+ | L' | ||
+ | |||
+ | Par défaut l' | ||
+ | |||
+ | utilisateur@hote: | ||
+ | [opcache] | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ... | ||
+ | |||
+ | |||
+ | Les seules lignes activées après modifications sont : | ||
+ | |||
+ | utilisateur@hote: | ||
+ | [opcache] | ||
+ | opcache.enable=1 | ||
+ | opcache.memory_consumption=128 | ||
+ | opcache.interned_strings_buffer=8 | ||
+ | opcache.max_accelerated_files=10000 | ||
+ | opcache.revalidate_freq=2 | ||
+ | opcache.save_comments=1 | ||
+ | |||
+ | > La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo. | ||
+ | |||
+ | J'ai suivi ce tutoriel, c'est l' | ||
+ | https:// | ||
+ | |||
+ | utilisateur@hote: | ||
+ | memory_limit = 512M | ||
+ | |||
+ | > Votre installation n’a pas de préfixe de région par défaut. C’est nécessaire pour valider les numéros de téléphone dans les paramètres du profil sans code pays. Pour autoriser les numéros sans code pays, veuillez ajouter " | ||
+ | |||
+ | Il suffit d' | ||
+ | |||
+ | ' | ||
+ | |||
+ | Pour d' | ||
+ | |||
+ | |||
+ | > La configuration du serveur web ne permet pas d' | ||
+ | > La configuration du serveur web ne permet pas d' | ||
+ | |||
+ | Ces alertes semblent activées car j' | ||
+ | |||
+ | |||
+ | ===== Tests de performances ===== | ||
+ | FIXME à faire | ||
+ | |||
+ | ==== Conclusion pour les performances ==== | ||
+ | Le serveur est accessible depuis l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | ===== Optimisations ===== | ||
+ | FIXME à écrire | ||
+ | === Système de fichiers EXT4 === | ||
+ | Pour diminuer le nombre d' | ||
+ | FIXME à réaliser | ||
+ | |||
+ | === Utilisation de la swap === | ||
+ | C'est un sujet de discussion sur des blogs. A voir, la RPi2 ayant une quantité de RAM limitée. | ||
+ | Le choix qui a été réalisé est de créer un fichier de swap de 100MB (puis 256MB). Par rapport à une partition dédiée, le fichier peut " | ||
+ | |||
+ | sudo dphys-swapfile swapoff | ||
+ | sudo nano / | ||
+ | CONF_SWAPFILE=256 | ||
+ | sudo dphys-swapfile setup | ||
+ | want / | ||
+ | sudo dphys-swapfile swapon | ||
+ | | ||
+ | Ne pas oublier les commandes | ||
+ | |||
+ | Il est aussi possible de ne pas modifier le fichier de configuration, | ||
+ | |||
+ | Swap ou pas, la discussion est ouverte : | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | === Ecriture des journaux systèmes en décalé === | ||
+ | FIXME à essayer | ||
+ | L' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Sécurisation ===== | ||
+ | FIXME | ||
+ | |||
+ | * [ ] Penser à filtrage par MAC address pour l' | ||
+ | * [ ] Authentification à 2 facteurs est intéressante aussi | ||
+ | |||
+ | ===== Transfert serveur " | ||
+ | |||
+ | Mes précédents fichiers étaient hebergés sur ma tour, un serveur Apache+MySQL+Nextcloud. | ||
+ | Le transfert était la finalité du projet. | ||
+ | |||
+ | Nextcloud propose des guides de migration qui ont été efficaces, moyennant quelques éléments ci-dessous : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * et aussi https:// | ||
+ | |||
+ | A date, le serveur de test heberge 8Go de données et donne satisfaction en temps de réponse et en durée de fonctionnement. | ||
+ | Les données à transférer sont de 135Go, ce qui représente une marche conséquente (base de données, plus contenu du dossier `data` de Nextcloud). | ||
+ | |||
+ | Pour ne pas réinstaller et reconfigurer tout le serveur de test il a été choisi de : | ||
+ | |||
+ | * remplacer la base de données de test par la nouvelle | ||
+ | * remplacer les données par les nouvelles | ||
+ | * tout cela via le fichier config.php de Nextcloud | ||
+ | |||
+ | Les étapes dans l' | ||
+ | |||
+ | - Stopper nginx | ||
+ | - S' | ||
+ | - Sauvegarder les données (une copie des fichiers de la base données n'a pas réussi, à cause de versions de MySql/ | ||
+ | - Transférer les sauvegardes vers le nouveau disque (rsync a été bien utile) | ||
+ | - Recréer la table dans la base de données (mysql) | ||
+ | - Donner les droits à l' | ||
+ | - Modifier le fichier config.php par rapport au nouveau répertoire `data` | ||
+ | - Vérifier avec php occ que la connexion à la base de données est correcte | ||
+ | - Relancer nginx et tester ! | ||
+ | |||
+ | Normalement il est possible de se logger et d' | ||
+ | |||
+ | Les 4 CPU sont montés à 100% pendant 5 minutes durant le premier login, mais cela n'a pas empéché la navigation sur le site Nextcloud. La swap, auparavant proche de 0Mo, est désormais utilisée (88% des 100Mo parfois). | ||
+ | |||
+ | Ménage : | ||
+ | |||
+ | * suppression base de données serveur de test | ||
+ | * suppression des données de test | ||
+ | |||
+ | ====== Ressenti à l' | ||
+ | A l' | ||
+ | |||
+ | La mise à jour du Nextcloud (21.0.4) via l' | ||
+ | |||
+ | * rafraîchir la page, et ne pas cliquer " | ||
+ | * parfois se reconnecter sur l' | ||
+ | |||
/var/www/vhosts/kadavrhusky.net/httpdocs/data/pages/informatique/installation_et_securisation_d_un_serveur_nextcloud_et_nginx_sur_un_raspberrypi_2_et_disque_ssd.txt · Dernière modification : 2022/11/10 01:38 de Pascal Delrot