nginx ich möchte zwei Projekte auf einem Server laufen lassen?
Ich möchte zwei Projekte auf einem Server laufen lassen, hier indem Beispiel werden einfach zwei angular Projekte genommen diese sollten je nach name /a1 oder /a2 geöffnet werden. Die angular projekte laufen schon auf dem Server, leider werden die Webseiten nicht über nginx geöffnet.
events{}
http {
server {
server_name localhost;
location /a1/ {
proxy_pass http://localhost:4201;
}
location /a2/ {
proxy_pass http://localhost:4202;
}
}
}
Sobald ich versuche auf localhost/a1 oder /a2 drauf zu kommen, bekomme ich die Meldung "502 Bad Gateway" und die Fehlermeldung in der Konsole:
prox-1 | 192.168.224.1 - - [27/Jul/2022:19:51:03 +0000] "GET /a1/ HTTP/1.1" 502 559 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" prox-1 | 2022/07/27 19:51:03 [error] 32#32: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.224.1, server: localhost, request: "GET /a1/ HTTP/1.1", upstream: "http://127.0.0.1:4201/a1/", host: "localhost"
Kann mir jemand Helfen, wie ich das schaffen könnt zwei Projekte auf einem Server laufen lassen zu können und über einen Port 80 drauf zugreifen kann?
2 Antworten
Mit einem Reverse Proxy und Docker Containern, du kannst NGINX Proxy Manager als GUI dafür verwenden.
Die Ports in den docker containern sind dann 80 oder was auch immer verlangt wird und außen irgendein zufälliger port. An diesen Port leitest du dann mit Nginx die Anfragen weiter.
Dann kaufst du eine Domain und weißt mit NGINX und Cloudflare die Subdomains zu.
Also so würde ich das machen, vielleicht geht es einfacher aber so sind die Server halt in Containern schön separiert und man hat kostenlos SSL und CDN
die Fehlermeldung besagt, das auf dem Port, welchen du im ProxyPass angegeben hast (4201), kein Dienst lauscht. Bist du sicher, dass der Port korrekt ist und dein Angular Projekt auch auf localhost Adresse lauscht, und nicht nur auf der IP deiner Netzwerkkarte?