Préface
Pour commencer, j'ai un jour voulu crĂ©er une application. Ce dĂ©sir est nĂ© parce que j'aime lire, mais il n'y a tout simplement pas d'agrĂ©gateurs de livres normaux dans le vaste Internet russe. En fait, de la douleur de chercher quelque chose Ă lire et d'essayer de rappeler le nom du livre que j'ai lu rĂ©cemment et dans quel chapitre je me suis arrĂȘtĂ©, le dĂ©sir est nĂ© de crĂ©er une application web dans laquelle tout cela serait possible et pratique. Il est Ă noter qu'aucune expĂ©rience en dĂ©veloppement, programmation, etc. Je nâen avais pas, mon travail nây est pas du tout liĂ©. NĂ©anmoins, le dĂ©sir a surmontĂ© la paresse et s'est transformĂ© en actions concrĂštes, une sorte de passe-temps.
Je ne dirai pas comment j'ai étudié javascript, node.js, react, html, css, etc., nous allons passer à ce à quoi je suis arrivé en ce moment, ce que je voudrais partager avec vous et, bien sûr, écouter les critiques constructives des spécialistes.
Comme beaucoup, je me suis entraßné sur mon propre PC sur localhost: 3000, créé des front-end / back-end, typographié, travaillé avec des api, etc., mais j'étais toujours inquiet par la pensée de comment transférer tout cela vers l'hébergement plus tard? Cela fonctionnera-t-il? Sera-t-il nécessaire de réécrire le code à cause de cela?
Et surtout, est-il possible de tout configurer pour que je puisse travailler sur l'application depuis n'importe quel PC et tout transférer facilement vers l'hébergement en production? Je vais en parler.Choix d'hébergement
Pour mon hobby, j'Ă©tais prĂȘt Ă dĂ©penser 10 $ par mois, j'ai donc choisi l'hĂ©bergement avec lequel je comptais rester Ă l'avenir. Comme je l'ai dit, avant cela, je n'avais aucune expĂ©rience, y compris avec l'hĂ©bergement de sites. J'ai essayĂ© et refusĂ© ce qui suit:
Jelastic :
interface belle et conviviale, tout semble intuitif, évolutif et compréhensible. Néanmoins, j'ai rencontré des difficultés pour configurer (nginx pour une raison quelconque ne voulait pas travailler à partir de vps, uniquement avec leur module séparé) et connecter SSL (et la mise à jour automatique) au domaine russophone par des moyens standard (ils ont promis de corriger le bogue, mais je ne veux pas attendre)
Hébergement cloud REG.RU : J'ai également un domaine là -bas, donc la solution semblait logique, mais ils n'avaient pas PostgreSQL configuré séparément, et comme je ne voulais pas contacter l'administration de la base de données, j'ai commencé à chercher plus loin.
AWS et Google Clouds : j'ai essayĂ©, tout semble aller bien, mais je me suis souvenu de nos «merveilleuses» lois et de l'obligation de mettre les donnĂ©es des utilisateurs sur des serveurs en FĂ©dĂ©ration de Russie. Malheureusement, ces gars-lĂ n'avaient pas de serveurs en FĂ©dĂ©ration de Russie. Pas un avocat, mais du pĂ©chĂ© a dĂ©cidĂ© de rechercher des nuages ââavec des serveurs dans la FĂ©dĂ©ration de Russie.
S'il est peu probable que votre demande rencontre des problĂšmes avec la loi, alors un bon choix.Bien qu'il y ait des nuages ââavec des serveurs dans la FĂ©dĂ©ration de Russie, je voulais toujours quelque chose qui m'Ă©viterait de devoir plonger dans l'administration PostgreSQL. L'impulsion est
tombée il y a peu sur
Yandex.Clouds qui sont devenus disponibles, j'ai essayĂ©, il semble que tout soit simple et pratique, alors je me suis arrĂȘtĂ© sur eux pour l'instant. Il convient de noter que l'hĂ©bergement PostgreSQL est immĂ©diatement livrĂ© avec 1core et 4 Go de RAM, ce qui coĂ»te environ 2k roubles par mois, donc pour le temps de dĂ©veloppement et de faible charge, je prĂ©vois d'exĂ©cuter PostgreSQL sur VPS pendant ~ 300r, et de transfĂ©rer la base de donnĂ©es avec une charge accrue et de laisser Yandex s'occupe de l'administration et de la mise Ă jour.
Configuration de Yandex.Cloud
Cloud privé virtuel
1) Créez un annuaire pour votre site:

2) Créez un cloud privé virtuel:
La principale chose qu'il me donne au stade actuel est l'IP pour accéder à la ressource créée de l'extérieur. Je me suis familiarisé superficiellement avec les sous-réseaux, les zones, l'isolement et la tolérance aux pannes, si nécessaire je rattraperai mon retard.
3) Créez un sous-réseau et attribuez-lui une adresse IP interne (si je comprends bien, c'est comme un réseau local)

4) Allez dans l'onglet IP et réservez-vous une IP statique.
Sur celui-ci, nous nous connecterons depuis la maison et d'autres endroits. Vous pouvez probablement travailler avec dynamique, mais je n'ai pas compris dans quels cas cela change.

Nuage de calcul
Ici, nous aurons des calculs :) Autrement dit, nous allons créer une machine virtuelle avec Linux (j'ai choisi ubuntu 18.04), installer les applications node.js et postgreSQL.

Nous cliquons pour créer une VM, dévisser tous les paramÚtres au minimum, car il n'y aura pas de charge pendant le développement (lorsque notre application sera publiée, puis tourner un peu plus, eh bien, nous surveillerons par les graphiques).
Ssh
Le problÚme que j'ai rencontré à ce stade est SSH:

Ce que c'était et pourquoi je n'en avais aucune idée, alors je suis allé étudier. Il s'est avéré - ce n'est qu'une méthode d'accÚs, mais pas par mot de passe, mais par la clé SSH générée. Pour le générer, téléchargez et installez
Putty comme il nous est conseillé.
Exécutez C: \ Program Files \ PuTTY \ puttygen.exe

Nous appuyons sur le bouton GĂ©nĂ©rer et dĂ©plaçons la souris pour donner un caractĂšre alĂ©atoire Ă la clĂ© gĂ©nĂ©rĂ©e (si je comprends bien). Ensuite, copiez la ligne qui apparaĂźt en commençant par ssh-rsa quelque part dans le fichier texte et cliquez sur Enregistrer la clĂ© privĂ©e, Enregistrer la clĂ© publique. La clĂ© copiĂ©e dans le fichier texte est insĂ©rĂ©e dans le champ SSH de la clĂ© de la page Yandex Yandex. Nous spĂ©cifions root comme identifiant de connexion, sinon vous n'aurez pas accĂšs lorsque vous travaillerez avec le systĂšme de fichiers graphiques de l'application par laquelle vous vous connecterez au cloud depuis votre domicile / travail (il y a peut-ĂȘtre un moyen, mais je n'ai pas compris).
Comme l'a noté andreymal, il vaut mieux ne pas utiliser root pour que les bots chinois ne récupÚrent pas le mot de passe pour votre cloud, mais comme dans Yandex.cloud l'accÚs se fait uniquement via SSH, vous pouvez vivre comme ça.
Une application sur un hĂ©bergement doit ĂȘtre lancĂ©e exclusivement par un utilisateur non root, afin de ne pas permettre aux attaquants d'exĂ©cuter du code malveillant Ă travers d'Ă©ventuelles vulnĂ©rabilitĂ©s de votre application.
Nous nous connectons au cloud depuis un PC et sélectionnons un client SSH gratuit
Le Putty standard vous permet de travailler uniquement sur la ligne de commande, et comme je ne connais pas bien l'utilisateur Windows, j'ai commencĂ© Ă chercher un client avec un pseudo-explorateur. Au dĂ©but, j'ai essayĂ© Mobaxterm, mais aprĂšs un certain temps d'inactivitĂ©, il s'arrĂȘte, l'explorateur se bloque complĂštement, alors maintenant je travaille avec
bitvise ssh et jusqu'à présent, je ne vois pas de problÚmes comme Mobaxterm.
Configurer bitvise ssh

Ici, dans le champ Serveur> HĂŽte, indiquez notre cloud IP externe. Port 22. Cliquez sur Gestionnaire de clĂ©s client> Importer et spĂ©cifiez la clĂ© privĂ©e prĂ©cĂ©demment gĂ©nĂ©rĂ©e dans celui-ci. Vous aurez peut-ĂȘtre encore besoin d'une phrase clĂ©, choisissez quelque chose que vous n'oublierez pas. Fermez cette fenĂȘtre et spĂ©cifiez le nom d'utilisateur dans le champ d'authentification: racine, clĂ© publick de mĂ©thode, clĂ© client - sĂ©lectionnez celle prĂ©cĂ©demment importĂ©e. Cliquez sur connexion et si nous avons tout fait correctement, puis connectez-vous au cloud:

Installez Node.js
Ici, je recommande d'utiliser les instructions de digitalocean.com, elles sont trÚs détaillées et beaucoup sont en russe. Habituellement, je google "digitalocean ubuntu 18.04 node.js" ou tout ce que vous voulez y installer ou configurer.
Comment installer Node.js peut ĂȘtre lu
ici .
En bref, nous allons Ă
nodeource (ici les derniĂšres versions de node.js peuvent ĂȘtre installĂ©es), feuilletez ici:

Copiez et exécutez les commandes tour à tour:
curl -sL https:
Nous vérifions comment il a été établi par l'équipe
nodejs -v
Nous verrons la version de node.js
npm -v
Nous verrons la version du gestionnaire de paquets pour node.js.
Ensuite, allez dans le dossier / opt / mysuperapp (my_super_app_name - vous devez crĂ©er ce dossier). Le rĂ©pertoire opt a Ă©tĂ© choisi comme emplacement de l'application aprĂšs une longue recherche sur «oĂč il convient de placer les fichiers node.js de l'application dans ubuntu».
Enfin, créez le fichier server.js, qui sera le point d'entrée de l'application, et collez-y le code serveur simple sur node.js:
const http = require('http'); const hostname = 'localhost'; const port = 80; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Le port 80 est pour les requĂȘtes http, 443 est pour https. Alors que nous avons un serveur sur http.
Nous enregistrons tout et exécutons la commande:
node server.js
La console doit afficher la ligne «Serveur en cours d'exécution sur
localhost : 80 /»
Vous pouvez maintenant ouvrir un navigateur, saisir une IP externe (celle dans le cloud Yandex de votre machine virtuelle ubuntu) et nous verrons "Bonjour tout le monde!"
Nous faisons tout facilement ou le cycle de développement avec git
Tout semble fonctionner, mais nous ne travaillerons pas tout le temps Ă nous connecter au cloud. De plus, tout d'un coup, nous ne travaillerons plus seuls Ă l'avenir.
Github
Github est l'endroit oĂč se trouve le code de notre application. En bref, le principe du travail pour une personne est le suivant:
- Nous développons notre application sur un PC domestique.
- Nous enregistrons et déchargeons le code sur Github en un clic.
- Sur l'hébergement ou sur un autre PC, téléchargez notre application depuis github, redémarrez le serveur (s'il héberge) et la nouvelle version de notre application web est disponible sur le World Wide Web.
Tout est rapide, simple et pratique.
Inscrivez-vous sur Github et créez un référentiel privé pour notre application (il ne sera disponible que pour nous):

Copiez la ligne
github.com/ReTWi/mysuperapp.git pour télécharger l'application.

- Nous revenons Ă la ligne de commande bitvise, arrĂȘtons l'application en appuyant sur ctrl + c (si cela fonctionne toujours).
- Accédez au répertoire / opt et supprimez le dossier avec l'application que nous avons créée
Git est ce que nous utiliserons pour télécharger notre application sur github, et de là vers un hébergement ou un autre PC. Git est un sujet de discussion distinct, alors nous allons nous attarder sur cela pour l'instant.
Installez
git sur l'hébergement avec les commandes suivantes:
sudo apt update sudo apt install git
Vérifiez si tout est bien établi:
git --version
La version git devrait apparaĂźtre.
Nous remplissons les données git (je n'ai pas compris pourquoi, mais apparemment il peut y avoir des avertissements ennuyeux).
git config --global user.name "Your Name" git config --global user.email "youremail@domain.com"
Enfin, nous téléchargeons notre application sur l'hébergement avec la commande:
(il devrait y avoir un lien vers votre candidature)
git clone https:
Un nouveau mysuperapp apparaĂźtra dans le rĂ©pertoire / opt, oĂč se trouveront nos fichiers d'application tĂ©lĂ©chargĂ©s depuis github.
Il est maintenant temps de rĂ©pĂ©ter la mĂȘme chose pour PC et de fermer la chaĂźne PC (diffĂ©rente) -> Github -> HĂ©bergement
Installez
node.js sur le PC .
Code Visual Studio
Pour commencer, sĂ©lectionnez l'Ă©diteur de code source oĂč nous travaillerons. J'ai choisi le code Visual studio, il est donc simple, pratique, il a beaucoup de plugins et vous pouvez configurer la synchronisation des paramĂštres si vous travaillez avec plusieurs appareils. En fait, nous tĂ©lĂ©chargeons, installons, lançons, sĂ©lectionnons le dossier d'application partagĂ©, car git clone crĂ©era le sien pour nous.
Les plugins que j'utilise sont les suivants:
Installez git pour PC .
Ouvrez une console dans VScode en utilisant ctrl + shift + `ou terminal> nouveau terminal
Retraite:
Dans la console Windows, c'est mauvais avec les caractÚres russes, pour qu'il n'y ait pas de fissures dont vous avez besoin pour ouvrir le fichier> préférences> paramÚtres, entrez terminal.integrated.shellArgs.windows dans le champ, cliquez sur

Et ajoutez la ligne "terminal.integrated.shellArgs.windows": ["-NoExit", "/ c", "chcp 65001"],

Répétez la commande pour télécharger des fichiers depuis github:
git clone https:
Dans VScode, cliquez sur Fichier> Ouvrir un dossier et ouvrez le dossier de notre application.
CrĂ©ez le fichier server.js avec le mĂȘme code de serveur simple:
const http = require('http'); const hostname = 'localhost'; const port = 80; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Installez nodemon pour redémarrer automatiquement le serveur lorsque des modifications sont apportées au code:
npm i nodemon -g
i - court pour installer
g - installation globale (disponible dans la console), et pas seulement pour notre application.
Exécutez la commande:
nodemon server.js
Ouvrez
localhost : 80 / dans le navigateur ou simplement localhost: 80 et voyez Hello World.
Il est maintenant temps de consulter notre chaßne PC> Github> Hébergement.
Téléchargez le bureau Github pour plus de commodité, connectez votre compte Github, puis cliquez sur le fichier d'ajout de référentiel local et spécifiez le répertoire de notre application.
Dans l'application, nous voyons les modifications que nous avons apportées par rapport à la version téléchargée depuis Github (nous avons ajouté server.js):

Cliquez sur "commit to master"> "push origin", téléchargeant ainsi les fichiers du PC vers Github.

Nous allons sur notre compte github dans le navigateur et voyons le fichier server.js téléchargé:

Pratiquons un peu plus, dans VScode nous remplaçons la ligne «res.end ('Hello World! \ N');" Ă "res.end ('OmNomNom');". Nous verrons que le serveur lui-mĂȘme a redĂ©marrĂ©:

Nous vérifierons dans le navigateur et y verrons les modifications que nous avons apportées "OmNomNom".
Desktop github nous montrera également que nous avons changé la ligne:

Encore une fois, cliquez sur commit to master> push origin pour envoyer des fichiers Ă github.
Basculez vers la ligne de commande d'hébergement.
Nous arrĂȘtons notre application si elle est toujours en cours d'exĂ©cution (ctrl + c).
Téléchargez notre application mise à jour avec les commandes suivantes:
git config credential.helper store git pull
Le premier enregistrera nos données afin que vous n'ayez pas à saisir constamment votre nom d'utilisateur et votre mot de passe. à l'avenir, git pull nous suffira.
Installez pm2 - quelque chose de similaire à nodemon, uniquement pour l'hébergement:
npm i pm2 -g
Commençons l'application en utilisant pm2, qui redémarrera notre serveur au prochain pull git sur l'hébergement:
pm2 start server.js --watch
Ouvrez le navigateur sur notre cloud IP externe et consultez notre «OmNomNom».
Ainsi, nous avons fermé la chaßne de travail avec l'application et son déploiement rapide sur l'hébergement.
Nous créons des certificats SSL temporaires pour HTTPS sur l'hÎte local et l'hébergement
Nous allons sur le site
zerossl.com
Dans le champ domaines, ip ..., entrez d'abord localhost, cliquez sur générer et télécharger 2 fichiers par bouton:

Nous les enregistrons dans notre projet dans le dossier ssl / localhost.
Répétez la procédure pour le cloud IP externe et enregistrez-le dans ssl / myapp.
Lancer un serveur https plus complexe node.js
Structure d'application:

- client - ici notre front-end mentira. J'ai réagi.
- logs - les logs sur l'hébergement seront déposés ici
- node_modules - modules node.js
- privé - vos fichiers privés, j'y stocke l'accÚs SSH au cloud
- le serveur est votre backend
- ssl - certificats SSL pour travailler https sur localhost et hébergement
- .babelrc - paramÚtres de construction de l'application webpack'om react (vous permet d'utiliser un JS plus moderne lors du développement du frontend)
- .gitignore - fichiers qui ne seront pas déplacés vers github (git ne semble pas les voir)
- client.js - point d'entrée pour générer l'assembly React
- package.json - les node_modeles que vous utilisez et divers extraits de commande.
- package-lock.json - changements dans les modules (si je comprends bien, le fichier vĂ©rifiera si les mĂȘmes modules sont installĂ©s sur votre hĂ©bergement et sur votre PC).
- pm2-watch.json - ParamÚtres de démarrage de pm2 pour l'hébergement
- README.md - couverture pour github
- server.js - le point de départ de notre serveur backend Node.js
- webpack.config.js - réagit à la configuration de build
.gitignore
Ici, nous indiquons les fichiers / dossiers que nous ne voulons pas télécharger sur github. Ils ne seront que sur cet appareil et git ne suivra / affichera pas leurs modifications. Ouvrez et insérez:
/node_modules/ /logs/* # exception to the rule !logs/.gitkeep /public/react_bundle.js /public/isProd.js
Puisque github ne décharge pas les dossiers vides, vous pouvez mettre quelque chose à l'intérieur, par exemple, un fichier .gitkeep vide. Enregistrez le fichier et fermez.
package.json
Ouvrez et collez ce qui suit (aprĂšs // ajout de commentaires)
{ "name": "myapp",
Je me concentrerai sur deux principaux frameworks / bibliothÚques sélectionnés pour l'application:
Fastify a été choisi comme alternative à express.js, puisque le premier a déjà un support expérimental pour htpp2, il se développe activement et il me semble qu'il a plus d'avenir que express.js, qui est devenu trÚs lent et en quelque sorte en développement. D'un autre cÎté, express.js fonctionne depuis longtemps et il vous sera plus facile de trouver des informations à ce sujet.
React a Ă©tĂ© choisi parce qu'il Ă©tait plus facile pour moi de travailler avec, de comprendre et d'essayer tout de mes propres mains. Vue - cela semblait quelque chose avec ses propres rĂšgles, direction. Bien que dans Vue, il puisse ĂȘtre nĂ©cessaire d'Ă©crire quelque chose de moins de vos propres mains, mais comme la prioritĂ© est accordĂ©e Ă la formation et Ă une personne qui n'a pas programmĂ© auparavant, la rĂ©action est devenue plus facile.
Nous enregistrons le fichier package.json et installons tous les modules spécifiés dans les dépendances avec la commande:
npm i
Nous aurons un dossier node_modules, dans lequel il y aura tous les modules pour notre application.
client - tandis que le dossier vide
logs - à l'intérieur du fichier .gitkeep se trouve, de sorte que le dossier migre vers l'hébergement et que les journaux y parviennent avec succÚs. Pendant le développement, nous afficherons tout sur la console.
public
Ici se trouvent les fichiers statiques de notre site, des images, des favicons, etc.
ArrĂȘtons-nous sur deux dossiers:
index.html:
<!DOCTYPE html> <html> <head> <base href="/" /> <meta charset="UTF-8" /> <title>MyApp</title> </head> <body> <div id="cookies"> react_bundle </div> <noscript >: Javscript</noscript > <script src="react_bundle.js"></script> </body> </html>
- ici, nous avons un front-end réactif chargé et rendu dans une balise par son id.
isProd.js contient une seule ligne "module.exports = false"
Comme il fait partie des exceptions .gitignore, il n'est pas portable. En conséquence, nous l'avons défini sur false sur le PC et vrai sur l'hébergement. Ensuite, nous utilisons ce fichier pour comprendre dans quel environnement nous sommes actuellement (développement / production). Il m'a semblé le plus pratique, en plus, vous pouvez modifier partiellement le code lors du développement et vérifier le fonctionnement des modules en production.
ssl - il existe des certificats précédemment enregistrés dans les dossiers localhost et myapp
.babelrc
{ "presets": [ [ "@babel/preset-env", { "targets": { "browsers": [">0.25%", "not ie 11", "not op_mini all"] } } ], "@babel/preset-react" ], "plugins": [ "babel-plugin-styled-components", "@babel/plugin-transform-runtime" ] }
ParamÚtres de création de notre react_bundle avec prise en charge du navigateur utilisé par plus de 0,25% des utilisateurs.
client.js
import React from 'react' import { render } from 'react-dom' render(<div>!!</div>, document.getElementById('cookies'))
Rend notre frontend dans un div avec une étiquette de cookie.
pm2-watch.json - vous permet d'exécuter le serveur avec la commande "npm run server" sur l'hébergement avec le suivi des modifications du code et le redémarrage automatique.
webpack.config.js
Constructeur d'application de réacteur:
const webpack = require('webpack'), path = require('path'), BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin module.exports = (env, argv) => { let prod = argv.mode == 'production' let config = { entry: './client.js', output: { path: path.resolve('./public'), filename: 'react_bundle.js' }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, loader: 'babel-loader' }, { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] }, resolve: { alias: { client: path.resolve('./client/shared'), public: path.resolve('./public') } }, plugins: [ argv.analyze ? new BundleAnalyzerPlugin() : false, prod ? new webpack.optimize.AggressiveMergingPlugin() : false, new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /ru/) ].filter(Boolean), optimization: { minimize: prod ? true : false }, performance: { hints: false } } return config }
En bref, il ouvre le fichier client.js et tout ce qu'il contient, collectant react_bundle et le plaçant dans le dossier public, d'oĂč il sera chargĂ© via le fichier ouvert index.html.
server.js
const isProd = require('./public/isProd'), fs = require('fs'), log = require('./server/logger'), path = require('path')
Dossier du serveur
Ici se trouve le backend et toutes les voies.
logger.js - en fonction de l'environnement, isProd se connecte Ă la console ou Ă errors.log
'use strict' const pino = require('pino'), isProd = require('../public/isProd') let logOptions = isProd ? { level: 'warn',
serveur / api /
open.js - ajoutez nos chemins ici.
'use strict' module.exports = function(fastify, options, next) { fastify.route({ method: 'GET', url: '/', handler: async (req, res) => { res.send('api / route') } }) fastify.route({ method: 'GET', url: '/hi', handler: async (req, res) => { res.send('api / route hi') } }) next() }
AprĂšs avoir configurĂ© et vĂ©rifiĂ© tout sur Localhost, nous tĂ©lĂ©chargeons simplement tout sur github, et Ă partir de lĂ , git pull vers l'hĂ©bergement. Tout ce qui doit ĂȘtre fait sur l'hĂ©bergement est d'installer les modules node.js avec la commande "npm i" et de crĂ©er le fichier isProd.js
SSL mis Ă jour automatiquement
Lorsque vous achetez un domaine et le liez au cloud IP, un exemple d'
instructions pour REG.RU , vous pouvez installer sur le serveur SSL mis Ă jour automatiquement et gratuitement pour que le site fonctionne via https.
Notre serveur fonctionne sans nginx. Nous en aurons peut-ĂȘtre besoin Ă l'avenir en tant qu'Ă©quilibreur de charge ou serveur HTTP plus rapide pour la distribution de fichiers statiques, mais jusqu'Ă prĂ©sent, je n'en vois pas la nĂ©cessitĂ©. Nous n'avons pas encore besoin d'Ă©quilibrage de charge, mais je n'ai pas trouvĂ© de comparaison concernant la vitesse de distribution de la statique.
Avant d'installer dans le dossier ssl, créez le dossier .well-known, et dans celui-ci acme-challenge. Il s'avÚre que /opt/myapp/ssl/.well-known/acme-challenge
Pour installer SSL mis Ă jour automatiquement sur un serveur avec node.js sans nginx
, cliquez sur le lien . à son tour, exécutez les commandes dans la console d'hébergement:
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot sudo certbot certonly
Nous sélectionnons la deuxiÚme méthode de vérification, qui placera un fichier spécifique dans le dossier /opt/myapp/ssl/.well-known/acme-challenge, et aprÚs confirmation du propriétaire du serveur, il sera supprimé.
Nous indiquons notre domaine sur demande, par exemple: "example.com" et le chemin vers le dossier ssl de notre application (le serveur est configuré pour donner le fichier créé par le bot) "/ opt / myapp / ssl".
Le bot configurera lui-mĂȘme la tĂąche cron pour renouveler le certificat avant son expiration dans les 90 jours.
Je ne pensais pas qu'il faudrait autant de temps pour tout écrire, à 4 heures du matin, j'aurais déjà pu manquer quelque chose: /
Intéressant est l'opinion des Habrachiens et des spécialistes qui ont maßtrisé cette toile ou lu certains points individuels. Comment est organisé votre cycle de développement? Y a-t-il des points sur lesquels je me trompe ou fais la mauvaise chose?