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 | sanket.s...@outlook.com<http://outlook.com> (LinkedIn<http://www.linkedin.com/in/sankettshah>) ________________________________ From: Sam Nicholson <sam...@ogt11.com> Sent: 05 June 2018 04:53 AM To: users@zeppelin.apache.org 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 <sanket.s...@outlook.com<mailto:sanket.s...@outlook.com>> 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 | sanket.s...@outlook.com<http://outlook.com> (LinkedIn<http://www.linkedin.com/in/sankettshah>)