2017-03-17 5 views
2

In unserer aktuellen Architektur haben wir zwei Apache Front-Server, vor ihnen haben wir eine Nginx Load Balancer. Und davor ein nginx Reverse Proxy.Ausführen von Apache Zeppelin mit Nginx als Reverse-Proxy

Mein Problem ist, dass ich versuche, Apache Zeppelin über den Reverseproxy auszuführen, und ich habe einige Probleme mit den Websockets.

Ich erhalte eine Fehlermeldung wie folgt aus: 400 HTTP method GET is not supported by this URL

Und hier ist ein Screenshot von dem, was die Chrome Networks Registerkarte zeigt: enter image description here

ich meine Reverse-Proxy-Konfiguration für Zeppelin hinzufügen:

error_log /var/log/nginx/nginx_error.log warn; 
server { 
    listen  80; 
    server_name localhost; 

    location /zeppelin/ { 
     proxy_pass http://zeppelin:8080/; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade websocket; 
     proxy_set_header Connection upgrade; 
    } 

    # fallback 
    location/{ 
     return 301 http://ci.blablalablab.com/app/; 
    } 
} 

Zeppelin läuft in einem Docker-Container, und ich habe den 8080-Port offengelegt, sein Hostname lautet: Zeppelin.

Wenn Sie Fragen zur Architektur oder so haben, zögern Sie nicht zu fragen.

Vielen Dank Jungs!

Antwort

3

Sie Ihre Reverse-Proxy-Konfiguration hinzufügen können

location /ws { # For websocket support 
    proxy_pass http://zeppelin:8080/ws; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade websocket; 
    proxy_set_header Connection upgrade; 
    proxy_read_timeout 86400; 
} 

Referenz: Zeppelin 0.7 auth docs

1

Nach viel Graben um, landete ich mit dieser Konfiguration auf:

location /zeppelin/ { 
    proxy_pass http://zeppelin:8080/; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-NginX-Proxy true; 
    proxy_redirect off; 
} 


location /zeppelin/ws { 
    proxy_pass http://zeppelin:8080/ws; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "Upgrade"; 
} 

Diese Arbeit ist ziemlich gut, danke euch allen für eure Bemühungen;)

Verwandte Themen