web-dev-qa-db-fra.com

VPS avec IP unique et proxy inverse nginx

J'ai un VPS avec une seule adresse IP assignée. Je vais configurer un proxy inverse nginx pour pouvoir desservir un certain nombre de sites Web à partir du même serveur.

Autant que je sache, différents domaines peuvent pointer vers la même adresse IP - celle du serveur - et le proxy inverse nginx utilisera les noms de domaine qui lui sont transmis (?) Pour servir ensuite le site Web approprié situé derrière le proxy.

Est-ce correct?

Est-ce que je change les serveurs de noms de chaque domaine pour qu'ils pointent vers les serveurs Serveurs DNS ou vice versa? Ou comment puis-je avoir différents domaines pointant vers la même adresse IP?

1
myol

Vous n'avez pas du tout besoin de changer vos serveurs de noms - cela n'est pertinent que lorsque vous changez de fournisseur DNS.

Pour chaque site Web, ajoutez un enregistrement A du domaine racine à l'adresse IP de votre serveur, et un enregistrement A du sous-domaine www à l'adresse IP de votre serveur.

Lorsqu'une personne adresse une demande à l'un de vos domaines, elle parviendra à nginx avec un en-tête HTTP Host indiquant le domaine avec lequel elle souhaite communiquer. Dans le fichier de configuration nginx, vous devrez configurer des serveurs virtuels pour proxyer la demande en fonction de l'en-tête Host, comme suit:

server {
    listen 80;
    server_name example1.com;
    location / {
        proxy_pass http://127.0.0.1:8080; # The port that web service 1 is running on
    }
}

server {
    listen 80;
    server_name example2.com;
    location / {
        proxy_pass http://127.0.0.1:8181; # The port that web service 2 is running on
    }
}

Vous voudrez également configurer des redirections de votre domaine nu vers www, ou de www vers votre domaine nu, comme ceci:

server {
    listen 80;
    server_name example1.com;
    return 301 http://www.example1.com$request_uri;
}

server {
    listen 80;
    server_name example2.com;
    return 301 http://www.example2.com$request_uri;
}