2016-05-11 3 views
0

Ich habe die folgende Konfiguration auf einem NGINX, der als Reverse-Proxy für meine Docker-Maschine dient: 192.168.99.100:3150.Nginx gibt HTTP-Status 200 statt 302 in einer proxy_pass-Konfiguration zurück

Grundsätzlich muss ich drücken: http://localhost:8150 und der angezeigte Inhalt muss der Inhalt aus dem Docker sein.

Die Konfiguration unten macht seine Arbeit.

Die hier ist, dass beim Treffen der localhost: 8150 I HTTP-Statuscode 302 bin immer, und ich mag den HTTP-Statuscode erhalten 200

Weiß jemand, ob es möglich ist, auf zu tun Nginx oder eine andere Möglichkeit, das zu tun?

server { 
     listen 8150; 

     location/{ 
      proxy_pass   http://192.168.99.100:3150; 
     } 
    } 

Antwort von einer Anfrage an http://localhost:8150/products

HTTP Requests 
------------- 

GET /projects     302 Found 
+0

Sie erhalten, was Ihr Docker an Sie gesendet hat. Es ist unklar, was du bekommen willst und warum. –

+0

Hey Alexey! Das Szenario ist dieses: Ich möchte meine lokale Maschine der Welt kostenlos zur Verfügung stellen. Ein tolles Werkzeug ist Ngrok. Seit Version 2 sollte das Feature zum Anhängen/Binden an eine andere IP-Adresse dafür bezahlt werden. –

Antwort

0

Ich habe die Lösung gefunden.

Sieht so aus, dass ein einfacher proxy_pass mit ngrok nicht ganz funktioniert.

Ich benutze Proxy_pass mit Upstream und es funktioniert gut.

Unter meiner Konfiguration.

worker_processes 1; 

events { 
    worker_connections 1024; 
} 


http { 
    include  mime.types; 
    default_type application/octet-stream; 

    sendfile  on; 
    keepalive_timeout 65; 


    upstream rorweb { 
     server     192.168.99.100:3150 fail_timeout=0; 
    } 

    server { 
     listen     8150; 
     server_name    git.example.com; 
     server_tokens    off; 
     root      /dev/null; 

     client_max_body_size  20m; 

     location/{ 
     proxy_read_timeout  300; 
     proxy_connect_timeout 300; 
     proxy_redirect   off; 

     proxy_set_header  X-Forwarded-Proto $scheme; 
     proxy_set_header  Host    $http_host; 
     proxy_set_header  X-Real-IP   $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header  X-Frame-Options SAMEORIGIN; 

     proxy_pass    http://rorweb; 
     } 
    } 

    include servers/*; 
} 

Meine Umgebung ist wie folgt:

  • Docker (ein Schienen-Projekt läuft auf Port 3150)
  • Nginx (als Reverse Proxy 8150 den Port legenden)
  • Ngrok (Export meine localhost/nginx)
Verwandte Themen