Puncte:0

Cum rulez două servere web Nginx pe aceeași mașină?

drapel br

Vreau să găzduiesc un site web și să rulez un proiect de microservicii pe propriul meu server.

  1. Site-ul web va fi rulat cu serverul web Nginx. Domeniul site-ului web va arăta ca sampleapp.com și acest site web va folosi freessl.

  2. Unul dintre serviciile proiectului Microservice va fi rulat cu serverul web Nginx ca serviciu într-un container docker. Acest serviciu folosește subdomenii ale meu sampleapp.com, cum ar fi api-dev.sampleapp.com, iar acele subdomenii ar trebui să funcționeze și cu SSL.

Când încerc să implementez servicii cu docker-compose, primesc următoarea eroare:

[avertisment] 1#1: nume de server conflictual „api-dev.sample.com” activat 0.0.0.0:80, ignorat

Principala preocupare este că cum pot configura ssl în interiorul docker. 443 este portul implicit pentru HTTPS.

Fișierul de configurare Nginx al microserviciului meu este ca mai jos.

worker_proceses auto;

evenimente {
  conexiuni_muncitor 1024;
}

http {

  Server {
    asculta 80 default_server;
    numele serverului "";
    întoarcere 444;
  }

  Server {
    nume_server game-dev.sampleapp.com;

    Locație / {
      proxy_set_header X-Real-IP $adresă_la distanță;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Gazdă $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_http_versiunea 1.1;
      proxy_set_header Actualizare $http_upgrade;
      proxy_set_header Conexiune „upgrade”;

      proxy_pass http://game_nodes;
      proxy_redirect dezactivat;
    }
  }
  Server {
    dacă ($gazdă = game-dev.sampleapp.com) {
      returnează 301 https://$host$request_uri;
    }


    asculta 80;
    asculta [::]:80;
    nume_server game-dev.sampleapp.com;
    întoarce 404;
  }

  game_nodes în amonte {
# activați sesiunea sticky
 # ip_hash;
    server game-alpha:3000;
    keepalive 8;
  }

  Server {
    nume_server api-dev.sampleapp.com;

    Locație / {
      proxy_set_header X-Real-IP $adresă_la distanță;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Gazdă $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://main_nodes;
      proxy_redirect dezactivat;

    }
  }

  Server {
   # dacă ($gazdă = api-dev.sampleapp.com) {
    # return 301 https://$host$request_uri;
    #}

    asculta 80;
    asculta [::]:80;
    nume_server api-dev.sampleapp.com;
    întoarce 404;
  }

  noduri principale din amonte {
    server main-alpha:8000;
    server main-beta:8000;
    keepalive 8;
  }
}

Fișierul de configurare Nginx al site-ului este ca mai jos

Server {
    asculta 8080;
    asculta [::]:8080;
    asculta 8443 ssl http2;
    asculta [::]:8443 ssl http2;

    nume_server sampleapp.com www.sampleapp.com;
    rădăcină /var/www/sampleapp.com;
    index index.html;

    ssl_certificate /etc/ssl/certs/sampleapp.com.pem;
    ssl_certificate_key /etc/ssl/private/sampleapp.com.key;
    ssl_client_certificate /etc/ssl/certs/origin-pull-ca.pem;
    ssl_verify_client activat;

    client_max_body_size 100M;
  
    autoindex dezactivat;

    Locație / {
        try_files $uri $uri/ =404;

    }

}

Sunt dezvoltator, nu administrator de sistem, așa că îmi este greu să-mi dau seama care este cea mai bună modalitate de a face acest lucru.

djdomi avatar
drapel za
nginx are, în cazurile obișnuite, directoare disponibile pe site și activate pe site pentru adăugarea de vhost-uri la serviciu.
Puncte:1
drapel es

Una dintre soluțiile posibile aici este să rulați 3 containere docker cu Nginx.

  1. ascultă pe porturile 80 și 443, descarcă ssl și funcționează ca un proxy invers pentru alte două containere.
  2. rotește site-ul web
  3. rotește microserviciul

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.