2017-11-16 2 views
0

Ich habe einen winstone Server (Jenkins) auf 8443. Jenkins hört ein gültiges Zertifikat, und Jenkins erfolgreich die CERT Beendigung tut:Wie macht man Nginx Passthrough auf 443 und Redirect 80 bis 443?

JENKINS_ARGS="--httpPort=-1 --httpsKeyStore=/secure/jenkins.keystore --httpsKeyStorePassword=MY_PASSWORD --httpsPort=8443" 

Das einzige Problem ist, dass die Nutzer müssen jetzt gehen: https://example.com:8443

Ich möchte diese Portnummer nicht in der URL. Ich möchte:

https://example.com:8443 -> https://example.com 
https://example.com  -> https://example.com 
http://example.com  -> https://example.com 

So denke, ich werde ich nginx auf derselben Instanz ausführen, die Jenkins läuft.

Also meine Frage ist:

  1. Muss ich jenkins neu konfigurieren cert Terminierung nicht zu tun, so dass nginx es nur das?
  2. Kann nginx 80 und 443 zu localhost umleiten: 8443 ohne ein cert (Seit Jenkins macht cert Kündigung)?
  3. Müssen beide Nginx UND Jenkins Cert Terminierung tun?

Entschuldigung für diese ähnlichen Fragen.

Ich bin mir ziemlich sicher, dass ein AWS ELB nicht ersetzen kann, was nginx hier tut, aber ich dachte, ich würde es rauswerfen, für den Fall, dass ein ELB das auch für mich lösen kann.

Antwort

1

1) Nein, Sie können Nginx Stream die Verbindung direkt zu den Jenkins mit der Stream Module haben.

Beachten Sie, dass dies in 1.9.0 hinzugefügt wurde, aber nicht Teil des Standard Build ist, so dass Sie Build es selbst erstellen können.

Es funktioniert viel wie ein http Block, aber Sie müssen es außerhalb der http Block einrichten.

stream { 
    upstream jenkins_server { 
     server jenkins:443; 
    } 

    server { 
     listen 443; 
     proxy_pass jenkins_server; 
    } 
} 

2) Sie haben nicht einen CERT auf nginx brauchen, aber Sie sollten einen http Server Block für den Port 80, der ein 301 mit dem 443-Stream haben darüber gesprochen, in Antwort Teil 1.

server { 
    listen 80; 
    server_name your_server_name_here; 
    return 301 https://$host$request_uri; 
} 

3) Nein, Sie können den nginx-Stream nicht verwenden, um die SSL vom Client zum Jenkins-Server zu übertragen.

Verwandte Themen