Thanks Sam and Fabien for sharing the snippets. Fabien's solution didn't
worked, but Sam's solution got me success.
location /zeppelin/ {
proxy_pass http://10.0.1.1: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://10.0.1.1:8080/ws;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 5s;
proxy_connect_timeout 5s;
proxy_redirect off;
}
One more thing worth while noting is - if I pass public IP address of Zeppelin,
it fails; but if private IP is passed, it works. This is specifically observed
on Azure VM and AWS EC2 instances.
Sanket Tarun Shah - Enterprise Architect
+91 98793 56075 | [email protected]<http://outlook.com>
(LinkedIn<http://www.linkedin.com/in/sankettshah>)
________________________________
From: Sam Nicholson <[email protected]>
Sent: 05 June 2018 04:53 AM
To: [email protected]
Subject: Re: Difficult paths for Zeppelin and Nginx integration
Here's the zeppelin from my currently, working, config
I have changed my DNS domains to "internal" and "external"
Other than that, it's really verbatim.
server {
listen 443 ssl http2;
server_name zeppelin.external;
ssl_certificate /etc/certs/fullchain.cer;
ssl_certificate_key /etc/certs/cert.key;
location / {
proxy_pass http://zeppelin.internal:6800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
}
location /ws {
proxy_pass http://zeppelin.internal:6800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
On Mon, Jun 4, 2018 at 12:58 PM, Sanket Shah
<[email protected]<mailto:[email protected]>> wrote:
Am trying to put Nginx in front of Zeppelin. Regular requests are passing
through, but Websockets are not working. Followed this based on guide of
Zeppelin - https://zeppelin.apache.org/docs/0.7.3/security/authentication.html.
Seems having a real tough luck to get this going as scratching head and pulling
hairs 😞
Apache Zeppelin 0.7.3 Documentation: Authentication for
NGINX<https://zeppelin.apache.org/docs/0.7.3/security/authentication.html>
There are multiple ways to enable authentication in Apache Zeppelin. This page
describes HTTP basic auth using NGINX.
zeppelin.apache.org<http://zeppelin.apache.org>
Below is excerpt of my configuration:
location /zeppelin/ {
proxy_pass http://104.211.216.218:8080/<http://104.211.216.218: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://104.211.216.218:8080/ws<http://104.211.216.218:8080/ws>;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
Sanket Tarun Shah - Enterprise Architect
+91 98793 56075 | [email protected]<http://outlook.com>
(LinkedIn<http://www.linkedin.com/in/sankettshah>)