nginx proxi vor Rails/Puma

Apache, Lighttpd, nginx, Cherokee
Herbie
Posts: 2
Joined: 2019-09-03 16:09

nginx proxi vor Rails/Puma

Post by Herbie » 2019-09-03 16:16

Hallo,

ich bastele nun schon 12 Stunden an meiner nginx config und es will einfach nicht funktionieren.

Wenn ich im Browser die url mit https eingebe, komme ich auf den Server, wenn ich es ohne mache, lande ich auf der nginx default page.

Hat jemand nen Hinweis für mich?

Code: Select all

upstream initiative {
  server unix:///var/run/initiative.sock;
}

server {
    listen 80 default;
    listen [::]:80 default;
      return 307 https://$host$request_uri;
}

server {
  listen 443;
  ssl on;

  ssl_certificate     /etc/nginx/cert_mainkaichaos/public.crt;
  ssl_certificate_key /etc/nginx/cert_mainkaichaos/ssl.key;

  server_name  mainkaichaos.de www.mainkaichaos.de ;    # change to match your URL
  root   /home/www/mainkaichaos/public/;     # I assume your app is located at that location

  if ($scheme != "https") {
    rewrite ^ https://$host$uri permanent;
}

  location / {
    proxy_pass http://initiative; # match the name of upstream directive which is defined above
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Ssl on;
  }

 }

Hamsta
Posts: 1
Joined: 2019-09-04 09:24

Re: nginx proxi vor Rails/Puma

Post by Hamsta » 2019-09-04 09:38

Guten Morgen erstmal,

mein Kaffee-Level ist noch nicht so hoch das ich mir 100% sicher bin, aber kann es sein (erschießt mich wenn ich falsch liege), dass dein Port 80 nicht auf den Namen mainkaichaos.de bzw. www.mainkaichaos.de hört da an der Stelle "default" deklariert ist?
Demnach würde ich dieses:

Code: Select all

server {
    listen 80 default;
    listen [::]:80 default;
      return 307 https://$host$request_uri;
}
mal in dieses abändern:

Code: Select all

server {
    listen 80 mainkaichaos.de www.mainkaichaos.de ;
    listen [::]:80  mainkaichaos.de www.mainkaichaos.de ;
    return 301 https://$host$request_uri;
}
Und natürlich den reload nicht vergessen.

ddm3ve
Moderator
Moderator
Posts: 1186
Joined: 2011-07-04 10:56

Re: nginx proxi vor Rails/Puma

Post by ddm3ve » 2019-09-04 10:16

Das hier:

if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}

im Block für https wird nicht funktionieren, da eine https Verbindung bereits existiert.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

ddm3ve
Moderator
Moderator
Posts: 1186
Joined: 2011-07-04 10:56

Re: nginx proxi vor Rails/Puma

Post by ddm3ve » 2019-09-04 10:19

Teil2:

Code: Select all

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name example.com www.example.com;
	return 301 https://$server_name$request_uri;
}
example.com durch deine Domain ersetzen, damit er auch weiss, dass er dafür zuständig ist.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

Herbie
Posts: 2
Joined: 2019-09-03 16:09

Re: nginx proxy vor Rails/Puma

Post by Herbie » 2019-09-04 18:09

Vielen Dank erstmal. Jetzt bin ich schon einen Schritt weiter, die Umschaltung von http auf https funktioniert. Jetzt habe ich aber immer noch das Problem, dass die nginx default Page angezeigt wird, d. h. der zweite Server-Block, die Proxy Funktion geht nicht.

Wenn ich im Browser https://mainkaichaos.de eingebe, funktioniert es, wenn ich das https:// weglasse, wird die nginx default page angezeigt.

Code: Select all

upstream initiative {
  server unix:///var/run/initiative.sock;
}

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

server {
    listen 443 ssl;

    server_name mainkaichaos.de www.mainkaichaos.de;

  ssl_certificate     /etc/nginx/cert_mainkaichaos/public.crt;
  ssl_certificate_key /etc/nginx/cert_mainkaichaos/ssl.key;

  root   /home/www/mainkaichaos/public/;     # I assume your app is located at that location

  location / {
    proxy_pass http://initiative; # match the name of upstream directive which is defined above
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Ssl on;
  }

 }

ddm3ve
Moderator
Moderator
Posts: 1186
Joined: 2011-07-04 10:56

Re: nginx proxi vor Rails/Puma

Post by ddm3ve » 2019-09-11 13:25

Wenn der Hostname / die Adresse stimmt, dann leitet er weiterhin nicht auf HTTPS um.
Per HTTPS ist die Seite erreichbar, aber .... das Zertifikat ist ungültig. Es wird jedoch eine Webseite angezeigt.

Versuche es ggf. mal mit einem rewrite statt return.
Findet sich auch hier: https://bjornjohansen.no/nginx-redirect

Und prüfe, ggf. ob nicht per Include irgendwo eine Standardkonfiguration des Betriebsystemes eingebunden ist, die das überschreibt.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.