2017-01-11 4 views
0

Ich habe einen einzelnen Domain-Namen von meiner Universität Einstellung, wo ich einen Dienst ausgeführt haben:nginx: einen bestimmten Pfad zu anderen Server

server { 
    listen    443 default_server ssl; 
    server_name   example.uni.com; 
    keepalive_timeout 70; 

    ssl_certificate  xxx.crt; 
    ssl_certificate_key xxx.key; 


    location/{ 
     proxy_pass http://localhost:8081; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 


} 

Was ich erreichen möchte, ist die example.uni.com/specificaddress Punkt müssen ein anderer Dienst, der auf einem anderen localhost-Port läuft, ohne den auf 8081 laufenden Dienst modifizieren zu müssen (noch schöner wäre ein specificaddress.example.uni.com, aber ich glaube, das kann ich selbst nicht). Wie wäre das möglich? Einfaches Erstellen eines anderen Servers mit server_name auf example.uni.com/specificaddress eingestellt funktioniert leider nicht (keine große Überraschung, es wird von dem Dienst unter 8081 ausgeführt).

Antwort

1

Sie können einen neuen Standortblock mit dem Proxy den anderen Port übergeben.

Beispiel

location/{ 
     proxy_pass http://localhost:8081; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
} 

location /specificaddress { 
     proxy_pass http://localhost:8082; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
} 
Verwandte Themen