【问题标题】:Running Apache Zeppelin with nginx as reverse proxy使用 nginx 作为反向代理运行 Apache Zeppelin
【发布时间】:2017-08-09 07:38:56
【问题描述】:

在我们当前的架构中,我们有两个 apache 前端服务器,在它们前面,我们有一个 nginx 负载均衡器。前面还有一个 nginx 反向代理。

我的问题是我正在尝试通过反向代理运行 Apache Zeppelin,而我在使用 websockets 时遇到了一些问题。

我收到这样的错误:400 HTTP method GET is not supported by this URL

下面是 Chrome 的“网络”标签显示的屏幕截图:

我为 Zeppelin 添加了反向代理配置:

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 在 docker 容器中运行,我已经暴露了 8080 端口,它的主机名是:zeppelin。

如果您对架构有任何疑问,请不要犹豫。

非常感谢你们!

【问题讨论】:

    标签: apache nginx websocket reverse-proxy apache-zeppelin


    【解决方案1】:

    您可以添加到您的反向代理配置中

    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;
    }
    

    参考:Zeppelin 0.7 auth docs

    【讨论】:

    • 这不适用于最新版本的 Zeppelin 和 Nginx。有任何想法吗?我尝试使用与您相同的配置。
    • 我实际上只是将它用于 Zeppelin 0.8.2 + Nginx 1.16.1,它按预期工作
    【解决方案2】:

    经过大量的挖掘,我最终得到了这个配置:

    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";
    }
    

    效果很好,谢谢大家的努力;)

    【讨论】:

    • 这不适用于最新版本的 Zeppelin 和 Nginx。有任何想法吗?我的配置和你的一样。
    • 从那以后我就没有和 Zeppelin 合作过,希望你找到解决办法:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2017-01-23
    • 2015-10-06
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    相关资源
    最近更新 更多