web-dev-qa-db-fra.com

Serveur unique, nginx comme proxy inverse, plusieurs domaines / sites Web

J'ai cette configuration nginx pour mon site Web sur https où nginx est utilisé comme serveur proxy inverse:

  server {
      listen 80 default_server;
      listen [::]:80 default_server;
      server_name my_domain123.com www.my_domain123.com;
      return 301 https://$server_name$request_uri;
  }

  server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name localhost www.my_domain123.com;
    return 301 https://my_domain123.com$request_uri;
  }

  server {
      listen 443 ssl default_server;
      listen [::]:443 ssl default_server;
      server_name my_domain123.com;

    location / {
      proxy_redirect      http://localhost:4000 https://my_domain123.com;
      # ...........................

    }

Comment dois-je l'ajuster pour pouvoir héberger plusieurs sites Web avec différents noms de domaine sur le même serveur? Où dans la configuration dois-je insérer la nouvelle configuration pour ce nouveau site Web?

Ou dois-je en créer un de plus disponible/activé pour le site également? Pourtant, la question demeure: comment puis-je combiner correctement 2 configurations ou plus - même serveur, plusieurs domaines -?

4
Rakori

Normalement, vous créez un nouveau fichier de configuration /etc/nginx/sites-available/newserver.conf pour le nouveau serveur et le liez à partir de/etc/nginx/sites-enabled. Pour utiliser nginx comme proxy inverse, vous configurez SSL dans nginx (ssl_certificate, ...) et dans la section location, vous utilisez proxy_pass sur le serveur non SSL de localhost. proxy_redirect est également nécessaire, mais cela ne modifie l'en-tête Location que si votre serveur local non SSL en envoie un. Vous trouverez un exemple dans ce qui suit article .

Plusieurs serveurs http sur localhost utilisant différents ports

    server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://localhost:8001 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://localhost:8002 https://mydomain-02.com;
      ...
    }
}

Serveur http unique sur localhost utilisant des sites basés sur le nom d'hôte

server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://s1.localdomain:4000 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://s2.localdomain:4000 https://mydomain-02.com;
      ...
    }
}
8
1Peter