2016-12-02 9 views
1

Ich habe ein nginx-Setup wie folgt aus:Unerwünschte nginx Umleitung auf https

/etc/nginx/sites-available/default-ssl.conf:

server { 

    listen 443 ssl; 

    server_name my.server.name; 

    ssl_certificate /etc/letsencrypt/live/my.server.name/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/my.server.name/privkey.pem; 

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 

# root /usr/share/nginx/html; 
    root /var/www/html; 
    index index.html index.htm; 

    location/{ 
    try_files $uri $uri/ =404; 
    } 

    location /proxiedhost/ { 
    rewrite ^/proxiedhost(/.*)$ $1 break; 
    proxy_pass http://127.0.0.1:6080/; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto https; 
    proxy_redirect off; 
    } 
    <<<< A couple more of these blocks >>>> 
} 
    server { 
    listen 80; 
    server_name origin.ticktockhouse.co.uk; 
    return 301 https://$host$request_uri; 
} 

/etc/nginx/sites-available /aptrepo.conf:

server { 
     listen 80; ## listen for ipv4; this line is default and implied 

     root /home/aptrepo/; 
     index index.html index.htm; 

     server_name aptrepo.server.name; 
} 

Mein Problem ist, dass, wenn ich zu http://aptrepo.server.name durchsuchen, es automatisch zu https://aptrepo.server.name umleitet, die ich habe keine letsencrypt cert für. Natürlich könnte ich einen bekommen, aber ich brauche ihn nicht besonders und möchte dem Grund auf den Grund gehen.

Ich bin bereit zu glauben, dass es der Server-Block in der Standard-ssl.conf ist, aber ich bin verwirrt, warum der andere Server-Block ist nicht etwas völlig getrennt. Ich habe mich nach einer Erklärung umgeschaut, aber leider sind die meisten Artikel/Fragen darum herumgekommen, wie man https auf http umleiten kann - offensichtlich ein Problem, das ich schon gelöst habe!

+0

löst ich nicht den https-Server-Abschnitt in der Config für aptrepo.server.name sehen. Ist dies die vollständige Konfiguration aller Server? Benutzt du HSTS? – raciasolvo

+0

Ich möchte, dass aptrepo.server.name nur HTTP ist, wenn das möglich ist – ticktockhouse

+0

Natürlich ist es möglich. Benutzt du HSTS? Zeige ein Ergebnis von 'curl -I http: // aptrepo.server.name'. Wo enthalten Sie '/ etc/nginx/sites-available/aptrepo.conf'? – raciasolvo

Antwort

0

Es könnte der Fall sein, dass nginx nicht den richtigen server {} Block auswählt.

nur zu Testzwecken, versuchen return 301 https://$host$request_uri; kommentieren und sehen, ob dies das Problem auf aptrepo.server.name

+0

Danke, ich habe es versucht und es funktioniert. Ich habe auch die Return-Linie 301 wieder eingefügt, und es scheint zu funktionieren, wie ich ursprünglich wollte. Der Grund, warum ich es nicht als http wollte, bestand darin, Debian-Rechner zu unterstützen, auf denen apt-transport-https nicht installiert war. – ticktockhouse