Ce guide explique comment héberger plusieurs applications basées sur différentes technologies de backend comme Java, PHP et Node sur le même Serveur Ubuntuainsi que des API et des clients s’exécutant sous plusieurs domaines ou sous-domaines sur le même serveur.

La plupart des développeurs modernes utilisent des serveurs de collaboration comme GitHub. Si plusieurs développeurs travaillent sur la même application, que se passerait-il si nous pouvions planifier la construction et automatiser les mises à jour de l’application installée sur le serveur que nous configurons quand nous le souhaitons? Avec Maven, vous créez vos applications à partir de la source mise à jour clonée à partir de votre référentiel Git. Et nous pouvons planifier et automatiser ces builds et exécutions à l’aide de cron (Crontab / Cron Jobs).

Comment Apache Fonctionnant sur le port 80, nous pouvons facilement pointer nos domaines vers des applications qui s’exécutent dessus. Si d’autres applications s’exécutent sur d’autres ports, vous pouvez les utiliser Configurer l’hôte virtuel Apache pour attribuer ces applications à des domaines ou sous-domaines sous différents ports et pour laisser de côté les numéros de port laids. Cela signifie que vous pouvez utiliser des domaines sans spécifier de numéros de port pour pointer vers plusieurs applications installées sur le même ordinateur de stockage et exécutées sur différents serveurs d’applications, telles que: Apache, Chat, nœud, etc.

Si vous installez le serveur SSH et activez l’accès, vous pouvez tout contrôler sur Internet depuis n’importe où, même depuis votre téléphone mobile ou votre tablette.

Peu importe si vous utilisez la même connexion Internet générale que vous utilisez pour d’autres besoins Internet. Tout ce que vous avez à faire est de faire quelques configurations de transfert de port pour diriger toutes les requêtes sur le port 80 vers le serveur que nous configurons. Si vous souhaitez que le SSH du serveur soit accessible sur Internet, vous devrez également rediriger le port 22. Cependant, vous devez l’attribuer à un numéro de port différent pour des raisons de sécurité.

Il y a un risque que tout se déconnecte si quelque chose arrive à votre connexion Internet. Pour éviter que cela ne se produise, nous pouvons avoir plusieurs connexions Internet de différents FAI (également dans différentes technologies telles que la fibre, le WiMAX et éventuellement l’ADSL hérité) et utiliser un routeur d’équilibrage de charge pour les mélanger.

Nous avons tous besoin de sauvegarde, principalement à différents endroits. Pour ce faire, nous pouvons planifier une sauvegarde locale et la télécharger sur un autre serveur via FTP. De plus, nous pouvons monter en permanence un dossier partagé sur un réseau local sur un ordinateur Windows et planifier la synchronisation des fichiers de sauvegarde avec ce dossier partagé Windows.

Si nous utilisons MySQL comme SGBD, nous pouvons utiliser phpMyAdmin pour le gérer via le Web. Vous pouvez configurer un sous-domaine pour qu’il pointe vers votre instance phpMyAdmin.

Vous pouvez faire la même chose et installer et configurer plusieurs sites WordPress pour qu’ils fonctionnent sur plusieurs domaines. De cette façon, vous pouvez héberger de nombreux sites Web sur votre propre serveur.

Vous pouvez gérer les fichiers sur votre serveur en installant un serveur FTP.

Bottes de printemps Les applications peuvent être lancées en exécutant simplement le fichier JAR car il a un serveur intégré dans le JAR. Cependant, que se passe-t-il si vous avez plusieurs applications Spring Boot? Vous devrez peut-être définir différents ports dans des configurations afin qu’ils fonctionnent tous ensemble sur des ports différents. cela ressemble à un gaspillage de ressources. Si nous utilisons séparément Serveur Tomcatpouvons-nous les déployer tous dans ce même tomcat. Nous pouvons planifier le déploiement d’applications lorsque nous mettons à jour des éléments via Git.

Parfois, vous devrez peut-être afficher les journaux Tomcat. Si vous créez des liens physiques vers ce fichier journal dans le conteneur Tomcat, vous pouvez le lire via votre navigateur.

Je souhaite partager ma liste de commandes et de modèles avec vous afin que vous puissiez les essayer si vous êtes intéressé.

Vous pouvez trouver de nombreux articles sur Ubuntu et des guides d’installation de base sur Internet. Par conséquent, je ne vais pas tout expliquer en détail ici.

Vérifiez la configuration du BIOS de votre ordinateur pour vérifier que le Démarrage automatique en cas de panne de courant La fonction est activée.

Dans l’assistant d’installation d’Ubuntu, vous devriez avoir sélectionné LAMPE et Ouvrir SSH. Si vous ne l’avez pas fait, ne vous inquiétez pas; Nous pouvons les installer manuellement.

Installez le serveur SSH ouvert:

sudo apt install openssh-server

Voir l’état du serveur SSH:

sudo service ssh status

Vous devriez maintenant pouvoir le connecter sur le réseau.

Comment installer le serveur MySQL:

sudo apt install mysql-server

Pour installer Java:

sudo apt install default-jdk

Comment installer Maven:

sudo apt install maven

Comment installer Git:

sudo apt install git

Cloner les dépôts Git (remplacez les urls par les dépôts que vous devez cloner):

mkdir git
cd git
git clone https://github.com/GIT_USER/REPO_ONE.git
git clone https://github.com/GIT_USER/REPO_TWO.git

Installez et activez Apache 2:

sudo apt install apache2
enable  apache2

Installez phpMyAdmin:

sudo apt install phpmyadmin

Créez un dossier pour héberger le site (remplacez SITE_NAME avec le nom réel de votre site).

cd /var/www
sudo mkdir SITE_NAME

Disons que vous avez besoin du site en tant que dépôt Git cloné.

Ajouter un lien vers le dossier du référentiel cloné en tant que site public_html Dossier (remplacer UBUNTU_USERNAME, CLONED_REPO_FOLDER, et SITE_NAME pour correspondre à la vôtre).

sudo ln -s /home/UBUNTU_USERNAME/git/CLONED_REPO_FOLDER/var/www/SITE_NAME/public_html

Créez et modifiez un fichier d’hôtes virtuels pour gérer (remplacer) les demandes sur votre site SITE_NAME).

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/SITE_NAME.conf
sudo nano /etc/apache2/sites-available/SITE_NAME.conf

Activez le site, puis désactivez le site par défaut. Rechargez Apache 2 pour que la modification prenne effet.

sudo a2ensite SITE_NAME.conf
sudo a2dissite 000-default.conf
sudo service apache2 reload

J’ai actuellement une application API basée sur Spring qui s’exécute dans Tomcat et une application cliente REST basée sur l’angle s’exécutant dans Apache sur l’un de mes serveurs. Mon fichier d’hôtes virtuels pour cela ressemble à ceci. (Les vrais domaines qui ont été remplacés par « votredomaine.com » restent inchangés.)

<VirtualHost *:*>
        ProxyPreserveHost On
        ServerAdmin [email protected]
        ServerName yourdomain.com
        ServerAlias app.yourdomain.com
        DocumentRoot /var/www/app.yourdomain.com/public_html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:*>
    ProxyPreserveHost On
    ServerAdmin [email protected]
    ServerName yourdomain.com
    ServerAlias api.yourdomain.com
    # setup the proxy
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/your-api/
    ProxyPassReverse / http://localhost:8080/your-api /
</VirtualHost>

Disons maintenant que vous devez mettre à jour les fichiers du site à partir de Git. Remplacez le répertoire par le dossier du référentiel et faites glisser les modifications depuis Git.

cd ~/git/REPO_NAME
git pull

Il y a plus de choses à venir! Je mettrai à jour cela en continu et en ajouterai plus au fil du temps.

Si vous pensez que cela vous aide de quelque manière que ce soit, veuillez aimer cet article et le partager. Vous pouvez me trouver sur LinkedIn (et j’adore vraiment si vous améliorez mes compétences là-bas!).

Je suis heureux de vous aider si vous pratiquez ces choses. Veuillez également fournir des commentaires et des suggestions. J’améliorerai cet article avec votre aide.



Source link

Recent Posts