2016-04-08 8 views
0

ich https und nur einige Wege mit verschiedenen Häfen http alle http haben wollen http:mit nginx: http auf https und nur einige Wege mit verschiedenen Ports

server { 
    listen 80; 
    servername _; 
    return 301 https://$host$requesturi; 

    location /bamboo { 
    rewrite ^/bamboo(.*)$ http://mydomainname:8085/$1 last; 
    } 

    location /api { 
    rewrite ^/api(.*)$ http://mydomainname:8080/$1 last; 
    } 

    return 403; 
} 

die oben nicht funktioniert, auch das funktioniert nicht:

#Redirect paths 
server { 
listen 443; 
server_name _; 

    location /bamboo { 
    rewrite ^/bamboo(.*)$ http://mydomainname:8085/$1 last; 
    } 

    location /api { 
    rewrite ^/api(.*)$ http://mydomainname:8080/$1 last; 
    } 

    return 403; 
} 

#Redirect http -> https 
server { 
    listen 80; 
    servername _; 
    return 301 https://$host$requesturi; 

    return 403; 
} 

Gibt es vielleicht eine andere Möglichkeit, alle http senden an https außer diese 2 Pfade?

Antwort

1

Ich würde den gesamten Datenverkehr auf dem HTTP-Server leiten, indem ich die deklarative Natur von nginx nutze. Die spezifische Lage wird gewählt:

server { 
    listen 80 default_server; 
    server_name _; 

    location/{ 
     return 301 https://$host$request_uri; 
    } 

    location /bamboo/ { 
     proxy_pass http://mydomainname:8085/; 
    } 

    location /api/ { 
     proxy_pass http://mydomainname:8080/; 
    } 
} 

Hinweis der Hinter/in den proxy_pass Argumenten für den Ports 8085 und 8080. Es wird der Bambus und api verursacht Teile aus dem URI in den proxy_pass docs wie beschrieben entfernt werden.

Verwandte Themen