J'utilise donc l'océan numérique et nginx. Je souhaite héberger plusieurs sites Web (mes projets) mais je ne veux pas acheter de domaine pour chacun.
Existe-t-il un moyen d'héberger plusieurs sites Web sur Nginx et Digital Ocean tout en y accédant en utilisant cette seule IP?
X.Y.Z.W/foo
,X.Y.Z.W/bar
)? Pourquoi ne pouvez-vous pas obtenir de domaines pour eux? (Vous pouvez attribuer la même IP à plusieurs domaines)?Réponses:
Il y a deux façons d'y parvenir. Soit vous faites tout par adresse IP, avec l'emplacement des sous-dossiers, soit vous devrez acheter un domaine puis avoir plusieurs sous-domaines sur ce domaine (les sous-domaines ne devraient rien coûter, si vous achetez le domaine, mais vérifiez auprès de votre registraire).
Je ne conseille pas la méthode de l'adresse IP, ne serait-ce que parce que c'est très mal de devoir se souvenir des adresses IP, et si vous essayez de partager des informations avec d'autres, vous avez également le même problème que les autres doivent se souvenir de l'adresse IP.
L'approche one-IP, plusieurs sous-dossiers, sans nom de domaine
Sur le
nginx
côté, nous devons faire une approche «diabolique» à ce sujet - une adresse IP, de nombreux docroots et emplacements de sous-dossiers. C'est une approche très très mauvaise et peut causer beaucoup de problèmes avec certains frameworks web.En supposant une
nginx
installation par défaut en tant que base à partir des référentiels, nous devons ensuite créer une configuration de site pour gérer chaque demande de sous-répertoire de projet. Ensuite, nous devons le lier symboliquement au bon endroit.Créez
/etc/nginx/sites-available/my-projects
avec ce qui suit (utilisez-le comme modèle / guide - il suppose trois projets avec HTML statique et aucune application Web dynamique en PHP ou python ou similaire, et vous pouvez copier les blocs d'emplacement individuels et créer de nouveaux emplacements en conséquence; il suppose également que votre IP du serveur est1.2.3.4
).Maintenant, nous remplaçons la configuration par défaut (supprimez-la) et ajoutons la nôtre:
Et puis redémarrez le
nginx
service:L'approche à un seul domaine et à plusieurs sous-domaines.
Avec chaque
nginx
server {}
bloc dans la configuration, vous devrez définir le nom du serveur et probablement définir un quatrième bloc de serveur comme «tout attraper» pour les autres demandes.Avec le scénario ci-dessus, nous avons deux parties: les domaines et sous-domaines et la configuration du serveur.
(1): Configuration DNS
Configurez votre DNS sur votre hôte de sorte que ce qui suit soit vrai avec les enregistrements DNS:
(2): configuration NGINX sur le serveur (1.2.3.4)
Maintenant pour vos
nginx
configurations. Je suppose que vous allez avoir les configurations par défaut de nginx et les packages des référentiels (je vais utiliser 14.04 comme exemple de base). Nous aurons d'abord quatre fichiers de configuration/etc/nginx/sites-available
. Vous devrez peut-être utilisersudo
lors de la création de ces fichiers, car le dossier en question appartient àroot
./etc/nginx/sites-available/catch-all
- ce sera le «catch all» pour tous les domaines non valides. J'aime retourner le code d'erreur http 410 (GONE).Ensuite, nous configurons la configuration de vos sites / projets. Je suppose que ce sont tous des fichiers statiques, cependant. Chacun de ces éléments implique que vous disposez également de différents répertoires Web pour chaque projet sur le serveur (différentes «racines de document»).
/etc/nginx/sites-available/proj1.evil-projects.net
:/etc/nginx/sites-available/proj2.evil-projects.net
:/etc/nginx/sites-available/proj3.evil-projects.net
:Nous devons ensuite supprimer la configuration «par défaut»
/etc/nginx/sites-enabled
et ajouter la nôtre. Encore une fois,sudo
est nécessaire ici.Et puis nous redémarrons le
nginx
processus:Une fois le DNS propagé, les sites fonctionneront comme ils le devraient.
la source