☰Read-only archive⌕
Looking for help with Bokeh?

This is a read-only archive. Ask questions and join the conversation on GitHub.

Visit Community Support on GitHub →
Archived discussions · Captured October 28, 2026

Bokeh with NGINX reverse proxy gives a Blank White Screen

Community Support
Sebastian_Maurice
Sebastian_Maurice

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
⌁   Link to post
Bryan
Bryan

Much more information is needed to help:

Relevant versions (Bokeh, browser, os)

The Nginx config file

The url you expect to be able to navigate to

The exact command you invoke to start the Bokeh server

Nginx log output

Bokeh server log output

JavaScript console output in the browser

Thanks,

Bryan

···

On Sep 23, 2017, at 16:44, sebastian.maurice@gmail.com wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/d28d11a9-b7ce-480c-8601-49ee06b58380%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
···

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

This is the site I see:

···

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Attached are more details:

Hi please see below: (Thank you so much for helping - i am going on three weeks trying to figure this out - very close to giving up!)

···

On Sun, Sep 24, 2017 at 2:42 PM, sebastian.maurice@gmail.com wrote:

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/26123c83-04dd-43fd-b677-9a480f2b5007%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Bokeh/Browser works fine when going directly to the bokeh listerner

···

On Sun, Sep 24, 2017 at 3:01 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached are more details:

Hi please see below: (Thank you so much for helping - i am going on three weeks trying to figure this out - very close to giving up!)

  1. Relevant versions (Bokeh, browser, os)
    Ans: Bokeh version: 0.12.7
    broswer: Chrome, Mozilla, IE
    OS: Bokeh runs on Windows 10 (Win64)

  2. The Nginx config file
    Ans:
    #user nobody;

worker_processes 4;

events {
worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /inetpub/wwwroot/T2A_WEBSITE/STOCKS/otics/bokeh/nginx-1.12.1/conf/mime.types;
default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

include C:/inetpub/wwwroot/T2A_WEBSITE/STOCKS/otics/bokeh/nginx-1.12.1/conf/sites-enabled/*.conf;

}

  1. The url you expect to be able to navigate to
    Ans: http://192.168.0.101:5007

  2. The exact command you invoke to start the Bokeh server
    Ans: bokeh serve C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\pyfiles\smaurice_5007.py --port 5007 --log-level debug --allow-websocket-origin 192.168.0.101:5007

  3. Nginx log output
    Server: nginx/1.12.1
    Date: Sun, 24 Sep 2017 18:09:46 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Content-Encoding: gzip

2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B950, pos 0069B950, size: 194 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:0 f:0 s:194
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “.”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “…”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “.keepdir”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “css”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “js”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http output filter “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http postpone filter “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36” 02C5FB94
2017/09/24 14:09:46 [debug] 10464#1520: *7 http gzip filter
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 006FCE90:270336
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:1 s:5828 a:8192 p:006FCE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:006FEE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:0070EE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:0071EE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:16384 s:4 a:65536 p:0072EE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in: 0069B898
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in_buf:0069BA14 ni:0069BA4C ai:430
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0073EE98:32768
2017/09/24 14:09:46 [debug] 10464#1520: *7 deflate in: ni:0069BA4C no:0073EE98 ai:430 ao:32768 fl:4 redo:0
2017/09/24 14:09:46 [debug] 10464#1520: *7 deflate out: ni:0069BBFA no:0073EF4F ai:0 ao:32585 rc:1
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in_buf:0069BA14 pos:0069BA4C
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006FCE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 http chunk: 10
2017/09/24 14:09:46 [debug] 10464#1520: *7 http chunk: 191
2017/09/24 14:09:46 [debug] 10464#1520: *7 write old buf t:1 f:0 0069B950, pos 0069B950, size: 194 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069BD04, pos 0069BD04, size: 4 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0073EE98, pos 0073EE98, size: 191 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:0 f:0 00000000, pos 015A6848, size: 7 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:1 f:1 s:406
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter limit 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 WSASend: fd:640, s:406
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1
2017/09/24 14:09:46 [debug] 10464#1520: *7 set http keepalive handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 http close request
2017/09/24 14:09:46 [debug] 10464#1520: *7 http log handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0073EE98
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069A8B0, unused: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069B8B8, unused: 2549
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006998A8
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc free: 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc busy: 00000000 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 1
2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer add: 640: 65000:3038097572
2017/09/24 14:09:46 [debug] 10464#1520: *7 post event 006D4058
2017/09/24 14:09:46 [debug] 10464#1520: *7 delete posted event 006D4058
2017/09/24 14:09:46 [debug] 10464#1520: *7 http keepalive handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 006998A8:4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 WSARecv: fd:640 rc:0 531 of 4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0069A8B0:4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer del: 640: 3038097572
2017/09/24 14:09:46 [debug] 10464#1520: *7 http process request line
2017/09/24 14:09:46 [debug] 10464#1520: *7 http request line: “GET /favicon.ico HTTP/1.1”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http uri: “/favicon.ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http args: “”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http exten: “ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http process request header line
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Host: www.analytix.ai:443”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Connection: keep-alive”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Pragma: no-cache”
2017/09/24 14:09:46 [debug] 10464#1520: 7 http header: “Cache-Control: no-cache”
2017/09/24 14:09:46 [debug] 10464#1520: 7 http header: “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
2017/09/24 14:09:46 [debug] 10464#1520: 7 http header: "Accept: image/webp,image/apng,image/,
/
;q=0.8"
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Referer: http://www.analytix.ai:443/5007/smaurice_5007”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Accept-Encoding: gzip, deflate”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Accept-Language: en-US,en;q=0.8”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Cookie: sc_is_visitor_unique=rx7434007.1506276059.DB3C054494D04F60C42AC968B2BA3F88.70.57.53.50.42.33.18.6.2”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header done
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 rewrite phase: 1
2017/09/24 14:09:46 [debug] 10464#1520: *7 test location: “/”
2017/09/24 14:09:46 [debug] 10464#1520: *7 test location: ~ “^/(\d+)/static/”
2017/09/24 14:09:46 [debug] 10464#1520: *7 using configuration “/”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http cl:-1 max:31457280
2017/09/24 14:09:46 [debug] 10464#1520: *7 rewrite phase: 3
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script var
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script var: “/favicon.ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script regex: “^/(\d+)/([^/]+)”
2017/09/24 14:09:46 [notice] 10464#1520: *7 “^/(\d+)/([^/]+)” does not match “/favicon.ico”, client: 174.114.196.64, server: www.analytix.ai, request: “GET /favicon.ico HTTP/1.1”, host: “www.analytix.ai:443”, referrer: “http://www.analytix.ai:443/5007/smaurice_5007”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script if
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script if: false
2017/09/24 14:09:46 [debug] 10464#1520: *7 post rewrite phase: 4
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 5
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 6
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 7
2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 8
2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 9
2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 10
2017/09/24 14:09:46 [debug] 10464#1520: *7 post access phase: 11
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 12
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 13
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 14
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 15
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 16
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 17
2017/09/24 14:09:46 [debug] 10464#1520: *7 http filename: “C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 add cleanup: 0069B228
2017/09/24 14:09:46 [debug] 10464#1520: *7 cached open file: C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico, fd:656, c:1, e:0, u:2
2017/09/24 14:09:46 [debug] 10464#1520: *7 http static fd: 656
2017/09/24 14:09:46 [debug] 10464#1520: *7 http set discard body
2017/09/24 14:09:46 [debug] 10464#1520: *7 HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Sun, 24 Sep 2017 18:09:46 GMT
Content-Type: image/x-icon
Content-Length: 1150
Last-Modified: Fri, 04 Sep 2009 10:42:24 GMT
Connection: keep-alive
ETag: “4aa0ef10-47e”
Accept-Ranges: bytes

2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B33C, pos 0069B33C, size: 242 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:0 f:0 s:242
2017/09/24 14:09:46 [debug] 10464#1520: *7 http output filter “/favicon.ico?”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: “/favicon.ico?”
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0069B8B8:4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 http postpone filter “/favicon.ico?” 0069B4C8
2017/09/24 14:09:46 [debug] 10464#1520: *7 write old buf t:1 f:0 0069B33C, pos 0069B33C, size: 242 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B8C8, pos 0069B8C8, size: 1150 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:1 f:0 s:1392
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter limit 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 WSASend: fd:640, s:1392
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: 0 “/favicon.ico?”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http finalize request: 0, “/favicon.ico?” a:1, c:1
2017/09/24 14:09:46 [debug] 10464#1520: *7 set http keepalive handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 http close request
2017/09/24 14:09:46 [debug] 10464#1520: *7 http log handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 run cleanup: 0069B228
2017/09/24 14:09:46 [debug] 10464#1520: *7 close cached open file: C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico, fd:656, c:0, u:2, 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069A8B0, unused: 708
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069B8B8, unused: 2930
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006998A8
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc free: 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc busy: 00000000 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 1
2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer add: 640: 65000:3038097746
2017/09/24 14:10:51 [debug] 10464#1520: *5 event timer del: 616: 3038097428
2017/09/24 14:10:51 [debug] 10464#1520: *5 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *5 close http connection: 616
2017/09/24 14:10:51 [debug] 10464#1520: *5 select del event fd:616 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *5 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *5 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *5 free: 006FCB10, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *1 event timer del: 340: 3038097430
2017/09/24 14:10:51 [debug] 10464#1520: *1 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *1 close http connection: 340
2017/09/24 14:10:51 [debug] 10464#1520: *1 select del event fd:340 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *1 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *1 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *1 free: 007B81E8, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *2 event timer del: 608: 3038097431
2017/09/24 14:10:51 [debug] 10464#1520: *2 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *2 close http connection: 608
2017/09/24 14:10:51 [debug] 10464#1520: *2 select del event fd:608 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *2 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *2 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *2 free: 006FC7F8, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *3 event timer del: 612: 3038097432
2017/09/24 14:10:51 [debug] 10464#1520: *3 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *3 close http connection: 612
2017/09/24 14:10:51 [debug] 10464#1520: *3 select del event fd:612 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *3 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *3 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *3 free: 006FC1C8, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *6 event timer del: 636: 3038097435
2017/09/24 14:10:51 [debug] 10464#1520: *6 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *6 close http connection: 636
2017/09/24 14:10:51 [debug] 10464#1520: *6 select del event fd:636 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *6 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *6 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *6 free: 006FCC18, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *7 event timer del: 640: 3038097746
2017/09/24 14:10:51 [debug] 10464#1520: *7 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *7 close http connection: 640
2017/09/24 14:10:51 [debug] 10464#1520: *7 select del event fd:640 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *7 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *7 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *7 free: 006FCD20, unused: 28

  1. Bokeh server log output : not sure how i get this?

  2. JavaScript console output in the browser

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

On Sun, Sep 24, 2017 at 2:42 PM, sebastian.maurice@gmail.com wrote:

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/26123c83-04dd-43fd-b677-9a480f2b5007%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.


Sebastian Maurice, PhD

Mobile: 403-612-5443

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Attached is the Bokeh terminal output
ebsocket-origin 192.168.0.101:5007

2017-09-24 15:10:53,726 Starting Bokeh server version 0.12.7 (running on Tornado 4.5.2)

2017-09-24 15:10:53,727 These host origins can connect to the websocket: [‘192.168.0.101:5007’]

2017-09-24 15:10:53,728 Patterns are:

2017-09-24 15:10:53,728 [(‘/smaurice_5007/?’,

2017-09-24 15:10:53,728 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-24 15:10:53,728 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,

2017-09-24 15:10:53,728 ‘bokeh_websocket_path’: ‘/smaurice_5007/ws’}),

2017-09-24 15:10:53,728 (‘/smaurice_5007/ws’,

2017-09-24 15:10:53,728 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-24 15:10:53,729 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,

2017-09-24 15:10:53,729 ‘bokeh_websocket_path’: ‘/smaurice_5007/ws’}),

2017-09-24 15:10:53,729 (‘/smaurice_5007/metadata’,

2017-09-24 15:10:53,729 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-24 15:10:53,729 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,

2017-09-24 15:10:53,729 ‘bokeh_websocket_path’: ‘/smaurice_5007/ws’}),

2017-09-24 15:10:53,729 (‘/smaurice_5007/autoload.js’,

2017-09-24 15:10:53,729 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-24 15:10:53,729 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,

2017-09-24 15:10:53,729 ‘bokeh_websocket_path’: ‘/smaurice_5007/ws’}),

2017-09-24 15:10:53,729 (‘/?’,

2017-09-24 15:10:53,729 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-24 15:10:53,729 {‘applications’: {‘/smaurice_5007’: <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>},

2017-09-24 15:10:53,729 ‘prefix’: ‘’,

2017-09-24 15:10:53,730 ‘use_redirect’: True}),

2017-09-24 15:10:53,730 (‘/static/(.*)’,

2017-09-24 15:10:53,731 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-24 15:10:53,732 Bokeh app running at: http://localhost:5007/smaurice_5007

2017-09-24 15:10:53,732 Starting Bokeh server with process id: 5236

2017-09-24 15:11:08,733 [pid 5236] 0 clients connected

2017-09-24 15:11:08,733 [pid 5236] /smaurice_5007 has 0 sessions with 0 unused

2017-09-24 15:11:23,733 [pid 5236] 0 clients connected

2017-09-24 15:11:23,734 [pid 5236] /smaurice_5007 has 0 sessions with 0 unused

c:\users\smaurice\appdata\local\programs\python\python35\lib\site-packages\statsmodels\compat\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.

from pandas.core import datetools

2017-09-24 15:11:25,454 200 GET /smaurice_5007/ (192.168.0.101) 874.80ms

2017-09-24 15:11:38,733 [pid 5236] 0 clients connected

2017-09-24 15:11:38,733 [pid 5236] /smaurice_5007 has 1 sessions with 1 unused

···

On Sun, Sep 24, 2017 at 3:01 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached are more details:

Hi please see below: (Thank you so much for helping - i am going on three weeks trying to figure this out - very close to giving up!)

  1. Relevant versions (Bokeh, browser, os)
    Ans: Bokeh version: 0.12.7
    broswer: Chrome, Mozilla, IE
    OS: Bokeh runs on Windows 10 (Win64)

  2. The Nginx config file
    Ans:
    #user nobody;

worker_processes 4;

events {
worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /inetpub/wwwroot/T2A_WEBSITE/STOCKS/otics/bokeh/nginx-1.12.1/conf/mime.types;
default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

include C:/inetpub/wwwroot/T2A_WEBSITE/STOCKS/otics/bokeh/nginx-1.12.1/conf/sites-enabled/*.conf;

}

  1. The url you expect to be able to navigate to
    Ans: http://192.168.0.101:5007

  2. The exact command you invoke to start the Bokeh server
    Ans: bokeh serve C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\pyfiles\smaurice_5007.py --port 5007 --log-level debug --allow-websocket-origin 192.168.0.101:5007

  3. Nginx log output
    Server: nginx/1.12.1
    Date: Sun, 24 Sep 2017 18:09:46 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Content-Encoding: gzip

2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B950, pos 0069B950, size: 194 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:0 f:0 s:194
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “.”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “…”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “.keepdir”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “css”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: “js”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http output filter “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http postpone filter “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36” 02C5FB94
2017/09/24 14:09:46 [debug] 10464#1520: *7 http gzip filter
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 006FCE90:270336
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:1 s:5828 a:8192 p:006FCE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:006FEE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:0070EE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:0071EE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:16384 s:4 a:65536 p:0072EE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in: 0069B898
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in_buf:0069BA14 ni:0069BA4C ai:430
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0073EE98:32768
2017/09/24 14:09:46 [debug] 10464#1520: *7 deflate in: ni:0069BA4C no:0073EE98 ai:430 ao:32768 fl:4 redo:0
2017/09/24 14:09:46 [debug] 10464#1520: *7 deflate out: ni:0069BBFA no:0073EF4F ai:0 ao:32585 rc:1
2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in_buf:0069BA14 pos:0069BA4C
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006FCE90
2017/09/24 14:09:46 [debug] 10464#1520: *7 http chunk: 10
2017/09/24 14:09:46 [debug] 10464#1520: *7 http chunk: 191
2017/09/24 14:09:46 [debug] 10464#1520: *7 write old buf t:1 f:0 0069B950, pos 0069B950, size: 194 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069BD04, pos 0069BD04, size: 4 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0073EE98, pos 0073EE98, size: 191 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:0 f:0 00000000, pos 015A6848, size: 7 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:1 f:1 s:406
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter limit 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 WSASend: fd:640, s:406
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1
2017/09/24 14:09:46 [debug] 10464#1520: *7 set http keepalive handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 http close request
2017/09/24 14:09:46 [debug] 10464#1520: *7 http log handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0073EE98
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069A8B0, unused: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069B8B8, unused: 2549
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006998A8
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc free: 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc busy: 00000000 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 1
2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer add: 640: 65000:3038097572
2017/09/24 14:09:46 [debug] 10464#1520: *7 post event 006D4058
2017/09/24 14:09:46 [debug] 10464#1520: *7 delete posted event 006D4058
2017/09/24 14:09:46 [debug] 10464#1520: *7 http keepalive handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 006998A8:4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 WSARecv: fd:640 rc:0 531 of 4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0069A8B0:4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer del: 640: 3038097572
2017/09/24 14:09:46 [debug] 10464#1520: *7 http process request line
2017/09/24 14:09:46 [debug] 10464#1520: *7 http request line: “GET /favicon.ico HTTP/1.1”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http uri: “/favicon.ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http args: “”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http exten: “ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http process request header line
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Host: www.analytix.ai:443”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Connection: keep-alive”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Pragma: no-cache”
2017/09/24 14:09:46 [debug] 10464#1520: 7 http header: “Cache-Control: no-cache”
2017/09/24 14:09:46 [debug] 10464#1520: 7 http header: “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
2017/09/24 14:09:46 [debug] 10464#1520: 7 http header: "Accept: image/webp,image/apng,image/,
/
;q=0.8"
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Referer: http://www.analytix.ai:443/5007/smaurice_5007”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Accept-Encoding: gzip, deflate”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Accept-Language: en-US,en;q=0.8”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: “Cookie: sc_is_visitor_unique=rx7434007.1506276059.DB3C054494D04F60C42AC968B2BA3F88.70.57.53.50.42.33.18.6.2”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http header done
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 rewrite phase: 1
2017/09/24 14:09:46 [debug] 10464#1520: *7 test location: “/”
2017/09/24 14:09:46 [debug] 10464#1520: *7 test location: ~ “^/(\d+)/static/”
2017/09/24 14:09:46 [debug] 10464#1520: *7 using configuration “/”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http cl:-1 max:31457280
2017/09/24 14:09:46 [debug] 10464#1520: *7 rewrite phase: 3
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script var
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script var: “/favicon.ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script regex: “^/(\d+)/([^/]+)”
2017/09/24 14:09:46 [notice] 10464#1520: *7 “^/(\d+)/([^/]+)” does not match “/favicon.ico”, client: 174.114.196.64, server: www.analytix.ai, request: “GET /favicon.ico HTTP/1.1”, host: “www.analytix.ai:443”, referrer: “http://www.analytix.ai:443/5007/smaurice_5007”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script if
2017/09/24 14:09:46 [debug] 10464#1520: *7 http script if: false
2017/09/24 14:09:46 [debug] 10464#1520: *7 post rewrite phase: 4
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 5
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 6
2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 7
2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 8
2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 9
2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 10
2017/09/24 14:09:46 [debug] 10464#1520: *7 post access phase: 11
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 12
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 13
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 14
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 15
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 16
2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 17
2017/09/24 14:09:46 [debug] 10464#1520: *7 http filename: “C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico”
2017/09/24 14:09:46 [debug] 10464#1520: *7 add cleanup: 0069B228
2017/09/24 14:09:46 [debug] 10464#1520: *7 cached open file: C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico, fd:656, c:1, e:0, u:2
2017/09/24 14:09:46 [debug] 10464#1520: *7 http static fd: 656
2017/09/24 14:09:46 [debug] 10464#1520: *7 http set discard body
2017/09/24 14:09:46 [debug] 10464#1520: *7 HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Sun, 24 Sep 2017 18:09:46 GMT
Content-Type: image/x-icon
Content-Length: 1150
Last-Modified: Fri, 04 Sep 2009 10:42:24 GMT
Connection: keep-alive
ETag: “4aa0ef10-47e”
Accept-Ranges: bytes

2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B33C, pos 0069B33C, size: 242 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:0 f:0 s:242
2017/09/24 14:09:46 [debug] 10464#1520: *7 http output filter “/favicon.ico?”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: “/favicon.ico?”
2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0069B8B8:4096
2017/09/24 14:09:46 [debug] 10464#1520: *7 http postpone filter “/favicon.ico?” 0069B4C8
2017/09/24 14:09:46 [debug] 10464#1520: *7 write old buf t:1 f:0 0069B33C, pos 0069B33C, size: 242 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B8C8, pos 0069B8C8, size: 1150 file: 0, size: 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:1 f:0 s:1392
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter limit 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 WSASend: fd:640, s:1392
2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: 0 “/favicon.ico?”
2017/09/24 14:09:46 [debug] 10464#1520: *7 http finalize request: 0, “/favicon.ico?” a:1, c:1
2017/09/24 14:09:46 [debug] 10464#1520: *7 set http keepalive handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 http close request
2017/09/24 14:09:46 [debug] 10464#1520: *7 http log handler
2017/09/24 14:09:46 [debug] 10464#1520: *7 run cleanup: 0069B228
2017/09/24 14:09:46 [debug] 10464#1520: *7 close cached open file: C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico, fd:656, c:0, u:2, 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069A8B0, unused: 708
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069B8B8, unused: 2930
2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006998A8
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc free: 00000000
2017/09/24 14:09:46 [debug] 10464#1520: *7 hc busy: 00000000 0
2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 1
2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer add: 640: 65000:3038097746
2017/09/24 14:10:51 [debug] 10464#1520: *5 event timer del: 616: 3038097428
2017/09/24 14:10:51 [debug] 10464#1520: *5 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *5 close http connection: 616
2017/09/24 14:10:51 [debug] 10464#1520: *5 select del event fd:616 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *5 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *5 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *5 free: 006FCB10, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *1 event timer del: 340: 3038097430
2017/09/24 14:10:51 [debug] 10464#1520: *1 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *1 close http connection: 340
2017/09/24 14:10:51 [debug] 10464#1520: *1 select del event fd:340 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *1 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *1 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *1 free: 007B81E8, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *2 event timer del: 608: 3038097431
2017/09/24 14:10:51 [debug] 10464#1520: *2 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *2 close http connection: 608
2017/09/24 14:10:51 [debug] 10464#1520: *2 select del event fd:608 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *2 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *2 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *2 free: 006FC7F8, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *3 event timer del: 612: 3038097432
2017/09/24 14:10:51 [debug] 10464#1520: *3 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *3 close http connection: 612
2017/09/24 14:10:51 [debug] 10464#1520: *3 select del event fd:612 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *3 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *3 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *3 free: 006FC1C8, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *6 event timer del: 636: 3038097435
2017/09/24 14:10:51 [debug] 10464#1520: *6 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *6 close http connection: 636
2017/09/24 14:10:51 [debug] 10464#1520: *6 select del event fd:636 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *6 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *6 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *6 free: 006FCC18, unused: 28
2017/09/24 14:10:51 [debug] 10464#1520: *7 event timer del: 640: 3038097746
2017/09/24 14:10:51 [debug] 10464#1520: *7 http keepalive handler
2017/09/24 14:10:51 [debug] 10464#1520: *7 close http connection: 640
2017/09/24 14:10:51 [debug] 10464#1520: *7 select del event fd:640 ev:0
2017/09/24 14:10:51 [debug] 10464#1520: *7 reusable connection: 0
2017/09/24 14:10:51 [debug] 10464#1520: *7 free: 00000000
2017/09/24 14:10:51 [debug] 10464#1520: *7 free: 006FCD20, unused: 28

  1. Bokeh server log output : not sure how i get this?

  2. JavaScript console output in the browser

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

On Sun, Sep 24, 2017 at 2:42 PM, sebastian.maurice@gmail.com wrote:

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/26123c83-04dd-43fd-b677-9a480f2b5007%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.


Sebastian Maurice, PhD

Mobile: 403-612-5443

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

The output from the JavaScript console is also important. You will have to look up hos to get it, because it is different for every browser. Also just to clarify the bokeh server output was running until after you tried and failed to connect?

Also, is that your entire nginx conf? I don't see any "proxy_*" settings at all? Those are 100% necessary, without them your connection attempts will never even get to the bokeh server. They are all described in the documentation with a sample nginx conf:

  Bokeh server — Bokeh 3.3.2 Documentation

Thanks,

Bryan

···

On Sep 24, 2017, at 14:12, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the Bokeh terminal output
ebsocket-origin 192.168.0.101:5007
2017-09-24 15:10:53,726 Starting Bokeh server version 0.12.7 (running on Tornado 4.5.2)
2017-09-24 15:10:53,727 These host origins can connect to the websocket: ['192.168.0.101:5007']
2017-09-24 15:10:53,728 Patterns are:
2017-09-24 15:10:53,728 [('/smaurice_5007/?',
2017-09-24 15:10:53,728 <class 'bokeh.server.views.doc_handler.DocHandler'>,
2017-09-24 15:10:53,728 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,
2017-09-24 15:10:53,728 'bokeh_websocket_path': '/smaurice_5007/ws'}),
2017-09-24 15:10:53,728 ('/smaurice_5007/ws',
2017-09-24 15:10:53,728 <class 'bokeh.server.views.ws.WSHandler'>,
2017-09-24 15:10:53,729 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,
2017-09-24 15:10:53,729 'bokeh_websocket_path': '/smaurice_5007/ws'}),
2017-09-24 15:10:53,729 ('/smaurice_5007/metadata',
2017-09-24 15:10:53,729 <class 'bokeh.server.views.metadata_handler.MetadataHandler'>,
2017-09-24 15:10:53,729 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,
2017-09-24 15:10:53,729 'bokeh_websocket_path': '/smaurice_5007/ws'}),
2017-09-24 15:10:53,729 ('/smaurice_5007/autoload.js',
2017-09-24 15:10:53,729 <class 'bokeh.server.views.autoload_js_handler.AutoloadJsHandler'>,
2017-09-24 15:10:53,729 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>,
2017-09-24 15:10:53,729 'bokeh_websocket_path': '/smaurice_5007/ws'}),
2017-09-24 15:10:53,729 ('/?',
2017-09-24 15:10:53,729 <class 'bokeh.server.views.root_handler.RootHandler'>,
2017-09-24 15:10:53,729 {'applications': {'/smaurice_5007': <bokeh.server.application_context.ApplicationContext object at 0x000001B9650EBF28>},
2017-09-24 15:10:53,729 'prefix': '',
2017-09-24 15:10:53,730 'use_redirect': True}),
2017-09-24 15:10:53,730 ('/static/(.*)',
2017-09-24 15:10:53,731 <class 'bokeh.server.views.static_handler.StaticHandler'>)]
2017-09-24 15:10:53,732 Bokeh app running at: http://localhost:5007/smaurice_5007
2017-09-24 15:10:53,732 Starting Bokeh server with process id: 5236
2017-09-24 15:11:08,733 [pid 5236] 0 clients connected
2017-09-24 15:11:08,733 [pid 5236] /smaurice_5007 has 0 sessions with 0 unused
2017-09-24 15:11:23,733 [pid 5236] 0 clients connected
2017-09-24 15:11:23,734 [pid 5236] /smaurice_5007 has 0 sessions with 0 unused
c:\users\smaurice\appdata\local\programs\python\python35\lib\site-packages\statsmodels\compat\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
  from pandas.core import datetools
2017-09-24 15:11:25,454 200 GET /smaurice_5007/ (192.168.0.101) 874.80ms
2017-09-24 15:11:38,733 [pid 5236] 0 clients connected
2017-09-24 15:11:38,733 [pid 5236] /smaurice_5007 has 1 sessions with 1 unused

On Sun, Sep 24, 2017 at 3:01 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
Attached are more details:

Hi please see below: (Thank you so much for helping - i am going on three weeks trying to figure this out - very close to giving up!)
>
> 1) Relevant versions (Bokeh, browser, os)
> Ans: Bokeh version: 0.12.7
> broswer: Chrome, Mozilla, IE
> OS: Bokeh runs on Windows 10 (Win64)
>
> 2) The Nginx config file
> Ans:
> #user nobody;
>
> worker_processes 4;
>
> events {
> worker_connections 1024;
> }
>
>
> http {
> sendfile on;
> tcp_nopush on;
> tcp_nodelay on;
> keepalive_timeout 65;
> types_hash_max_size 2048;
> include /inetpub/wwwroot/T2A_WEBSITE/STOCKS/otics/bokeh/nginx-1.12.1/conf/mime.types;
> default_type application/octet-stream;
> gzip on;
> gzip_min_length 1100;
> gzip_buffers 4 32k;
> gzip_types text/plain application/x-javascript text/xml text/css;
> open_file_cache max=10000 inactive=10m;
> open_file_cache_valid 2m;
> open_file_cache_min_uses 1;
> open_file_cache_errors on;
> ignore_invalid_headers on;
> client_max_body_size 8m;
> client_header_timeout 3m;
> client_body_timeout 3m;
> send_timeout 3m;
> connection_pool_size 256;
> client_header_buffer_size 4k;
> large_client_header_buffers 4 32k;
> request_pool_size 4k;
> output_buffers 4 32k;
> postpone_output 1460;
>
> include C:/inetpub/wwwroot/T2A_WEBSITE/STOCKS/otics/bokeh/nginx-1.12.1/conf/sites-enabled/*.conf;
>
> }
>
>
>
> 3) The url you expect to be able to navigate to
> Ans: http://192.168.0.101:5007
>
> 4) The exact command you invoke to start the Bokeh server
> Ans: bokeh serve C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\pyfiles\smaurice_5007.py --port 5007 --log-level debug --allow-websocket-origin 192.168.0.101:5007
>
> 5) Nginx log output
> Server: nginx/1.12.1
> Date: Sun, 24 Sep 2017 18:09:46 GMT
> Content-Type: text/html; charset=utf-8
> Transfer-Encoding: chunked
> Connection: keep-alive
> Content-Encoding: gzip
>
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B950, pos 0069B950, size: 194 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:0 f:0 s:194
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: "."
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: ".."
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: ".keepdir"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: "css"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http autoindex file: "js"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http output filter "/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: "/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http postpone filter "/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36" 02C5FB94
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http gzip filter
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 006FCE90:270336
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:1 s:5828 a:8192 p:006FCE90
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:006FEE90
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:0070EE90
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:32768 s:2 a:65536 p:0071EE90
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip alloc: n:16384 s:4 a:65536 p:0072EE90
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in: 0069B898
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in_buf:0069BA14 ni:0069BA4C ai:430
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0073EE98:32768
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 deflate in: ni:0069BA4C no:0073EE98 ai:430 ao:32768 fl:4 redo:0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 deflate out: ni:0069BBFA no:0073EF4F ai:0 ao:32585 rc:1
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 gzip in_buf:0069BA14 pos:0069BA4C
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006FCE90
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http chunk: 10
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http chunk: 191
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write old buf t:1 f:0 0069B950, pos 0069B950, size: 194 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069BD04, pos 0069BD04, size: 4 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0073EE98, pos 0073EE98, size: 191 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:0 f:0 00000000, pos 015A6848, size: 7 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:1 f:1 s:406
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter limit 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 WSASend: fd:640, s:406
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter 00000000
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js/?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 set http keepalive handler
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http close request
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http log handler
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0073EE98
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 00000000
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069A8B0, unused: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069B8B8, unused: 2549
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006998A8
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 hc free: 00000000
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 hc busy: 00000000 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 1
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer add: 640: 65000:3038097572
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 post event 006D4058
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 delete posted event 006D4058
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http keepalive handler
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 006998A8:4096
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 WSARecv: fd:640 rc:0 531 of 4096
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0069A8B0:4096
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer del: 640: 3038097572
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http process request line
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http request line: "GET /favicon.ico HTTP/1.1"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http uri: "/favicon.ico"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http args: ""
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http exten: "ico"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http process request header line
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Host: www.analytix.ai:443"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Connection: keep-alive"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Pragma: no-cache"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Cache-Control: no-cache"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Accept: image/webp,image/apng,image/*,*/*;q=0.8"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Referer: http://www.analytix.ai:443/5007/smaurice_5007&quot;
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Accept-Encoding: gzip, deflate"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Accept-Language: en-US,en;q=0.8"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header: "Cookie: sc_is_visitor_unique=rx7434007.1506276059.DB3C054494D04F60C42AC968B2BA3F88.70.57.53.50.42.33.18.6.2"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http header done
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 rewrite phase: 1
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 test location: "/"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 test location: ~ "^/(\d+)/static/"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 using configuration "/"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http cl:-1 max:31457280
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 rewrite phase: 3
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http script var
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http script var: "/favicon.ico"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http script regex: "^/(\d+)/([^/]+)"
> 2017/09/24 14:09:46 [notice] 10464#1520: *7 "^/(\d+)/([^/]+)" does not match "/favicon.ico", client: 174.114.196.64, server: www.analytix.ai, request: "GET /favicon.ico HTTP/1.1", host: "www.analytix.ai:443", referrer: "http://www.analytix.ai:443/5007/smaurice_5007&quot;
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http script if
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http script if: false
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 post rewrite phase: 4
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 5
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 6
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 generic phase: 7
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 8
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 9
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 access phase: 10
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 post access phase: 11
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 12
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 13
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 14
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 15
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 16
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 content phase: 17
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http filename: "C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 add cleanup: 0069B228
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 cached open file: C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico, fd:656, c:1, e:0, u:2
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http static fd: 656
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http set discard body
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 HTTP/1.1 200 OK
> Server: nginx/1.12.1
> Date: Sun, 24 Sep 2017 18:09:46 GMT
> Content-Type: image/x-icon
> Content-Length: 1150
> Last-Modified: Fri, 04 Sep 2009 10:42:24 GMT
> Connection: keep-alive
> ETag: "4aa0ef10-47e"
> Accept-Ranges: bytes
>
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B33C, pos 0069B33C, size: 242 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:0 f:0 s:242
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http output filter "/favicon.ico?"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: "/favicon.ico?"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 malloc: 0069B8B8:4096
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http postpone filter "/favicon.ico?" 0069B4C8
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write old buf t:1 f:0 0069B33C, pos 0069B33C, size: 242 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 write new buf t:1 f:0 0069B8C8, pos 0069B8C8, size: 1150 file: 0, size: 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter: l:1 f:0 s:1392
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter limit 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 WSASend: fd:640, s:1392
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http write filter 00000000
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http copy filter: 0 "/favicon.ico?"
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http finalize request: 0, "/favicon.ico?" a:1, c:1
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 set http keepalive handler
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http close request
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 http log handler
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 run cleanup: 0069B228
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 close cached open file: C:\inetpub\wwwroot\T2A_WEBSITE\STOCKS\otics\bokeh\nginx-1.12.1/html/favicon.ico, fd:656, c:0, u:2, 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069A8B0, unused: 708
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 0069B8B8, unused: 2930
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 free: 006998A8
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 hc free: 00000000
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 hc busy: 00000000 0
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 reusable connection: 1
> 2017/09/24 14:09:46 [debug] 10464#1520: *7 event timer add: 640: 65000:3038097746
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 event timer del: 616: 3038097428
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 http keepalive handler
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 close http connection: 616
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 select del event fd:616 ev:0
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 reusable connection: 0
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 free: 00000000
> 2017/09/24 14:10:51 [debug] 10464#1520: *5 free: 006FCB10, unused: 28
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 event timer del: 340: 3038097430
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 http keepalive handler
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 close http connection: 340
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 select del event fd:340 ev:0
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 reusable connection: 0
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 free: 00000000
> 2017/09/24 14:10:51 [debug] 10464#1520: *1 free: 007B81E8, unused: 28
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 event timer del: 608: 3038097431
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 http keepalive handler
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 close http connection: 608
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 select del event fd:608 ev:0
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 reusable connection: 0
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 free: 00000000
> 2017/09/24 14:10:51 [debug] 10464#1520: *2 free: 006FC7F8, unused: 28
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 event timer del: 612: 3038097432
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 http keepalive handler
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 close http connection: 612
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 select del event fd:612 ev:0
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 reusable connection: 0
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 free: 00000000
> 2017/09/24 14:10:51 [debug] 10464#1520: *3 free: 006FC1C8, unused: 28
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 event timer del: 636: 3038097435
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 http keepalive handler
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 close http connection: 636
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 select del event fd:636 ev:0
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 reusable connection: 0
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 free: 00000000
> 2017/09/24 14:10:51 [debug] 10464#1520: *6 free: 006FCC18, unused: 28
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 event timer del: 640: 3038097746
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 http keepalive handler
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 close http connection: 640
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 select del event fd:640 ev:0
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 reusable connection: 0
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 free: 00000000
> 2017/09/24 14:10:51 [debug] 10464#1520: *7 free: 006FCD20, unused: 28
>
>
> 6) Bokeh server log output : not sure how i get this?
>
>
>
> 7) JavaScript console output in the browser

> <!DOCTYPE html>
> <html lang="en">
> <head>
> <meta charset="utf-8">
> <title>OTICS WHAT-IF ENGINE</title>
> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
> <script type="text/javascript">
> Bokeh.set_log_level("info");
> </script>
> <style>
> html {
> width: 100%;
> height: 100%;
> }
> body {
> width: 90%;
> height: 100%;
> margin: auto;
> }
> </style>
> </head>
> <body>
> <div class="bk-root">
> <div class="bk-plotdiv" id="a643fc91-292b-4f4c-94f7-241396b78b6f"></div>
> </div>
> <script type="text/javascript">
> (function() {
> var fn = function() {
> Bokeh.safely(function() {
> var docs_json = {};
> var render_items = [{"elementid":"a643fc91-292b-4f4c-94f7-241396b78b6f","sessionid":"wgG0RjNaB74AV5aVK8C4c7rB9BOHDRPSLIpFiwUzQERh","use_for_title":true}];
> Bokeh.embed.embed_items(docs_json, render_items);
> });
> };
> if (document.readyState != "loading") fn();
> else document.addEventListener("DOMContentLoaded", fn);
> })();
> </script>
> </body>
> </html>
>

On Sun, Sep 24, 2017 at 2:42 PM, <sebastian.maurice@gmail.com> wrote:

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/26123c83-04dd-43fd-b677-9a480f2b5007%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHg1JSLKb1ZRB0MS8sH91WM4LPXae-r-1vzTGsJAbbkcg%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Attached is the JS console logs:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

15:22:44.126 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

15:22:44.144 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

15:22:44.166 bridge.js:1 Connected: Port {}

15:22:44.170 bridge.js:1 Done.

15:22:44.171 detection.js:1 +content/detection.js

15:22:44.172 detection.js:1 -content/detection.js

15:22:57.944 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

15:22:58.081 smaurice_5007:8 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:58.103 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:58.104 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:58.105 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:58.107 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:58.133 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:58.228 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:58.229 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

15:22:58.231 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

15:22:58.249 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

15:22:58.280 bridge.js:1 Connected: Port {}

15:22:58.286 bridge.js:1 Done.

15:22:58.287 detection.js:1 +content/detection.js

15:22:58.288 detection.js:1 -content/detection.js

···

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
···

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Yes - Bokeh server was running at time of JS console output.

Attached is the proxy conf:

server {

listen 443;

server_name www.mysite.ai;

    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

	if ( $request_uri ~ ^/(\d+)/([^/]+)) {

		proxy_pass   http://192.168.0.101:$1/$2/;

		#proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

	}

proxy_http_version 1.1;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host www.analytix.ai;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection “upgrade”;

	sub_filter "192.168.0.101:5007" "www.analytix.ai:443";

sub_filter_once off;

proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

···

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

	if ( $request_uri ~ ^/(\d+)/([^/]+)) {

		proxy_pass   http://192.168.0.101:$1/$2/;

		#proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

	}

proxy_http_version 1.1;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host www.analytix.ai;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection “upgrade”;

	sub_filter "192.168.0.101:5007" "www.analytix.ai:443";

sub_filter_once off;

proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

···

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
⌁   Link to post
Bryan
Bryan

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

···

On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the proxy conf:

server {
    listen 443;
  server_name www.analytix.ai;
      charset utf-8;
    client_max_body_size 30M;
    access_log C:/CORE_FILES/nginxlog/access.log;
    error_log C:/CORE_FILES/nginxlog/error.log debug;
    
  #The internal IP of the VM that hosts your Apache config

     location /{
    if ( $request_uri ~ ^/(\d+)/([^/]+)) {
      proxy_pass http://192.168.0.101:$1/$2/;
      #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
      
    }
    
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host www.analytix.ai;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
        sub_filter_once off;
    
        proxy_buffering off;

    }

  location ~ ^/(\d+)/static/ {
  #location /static/ {
  autoindex on;
  alias /bokehstatic/static/;
     
  }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

if objcnt-1==0:

mainlayout=column(mainrow2)

curdoc().add_root(mainlayout)

else:

mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

···

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   http://192.168.0.101:$1/$2/;
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}
  location ~ ^/(\d+)/static/ {
  #location /static/ {
  autoindex on;
  alias /bokehstatic/static/;
  }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

···

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}
  location ~ ^/(\d+)/static/ {
  #location /static/ {
  autoindex on;
  alias /bokehstatic/static/;
  }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

···

On Sep 24, 2017, at 16:21, Bryan Van de ven <bryan@bokeh.org> wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?

    # Set up layouts and add to document
    inputs = widgetbox(myobjs)
    mainrow=column(plot,data_table)
    mainrow2=row(mainrow,inputs)

        if objcnt-1==0:
        mainlayout=column(mainrow2)
        curdoc().add_root(mainlayout)
    else:
        mainlayout.children[0]=column(mainrow2)
    curdoc().title = "OTICS WHAT-IF ENGINE"

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>
> Attached is the proxy conf:
>
> server {
> listen 443;
> server_name www.analytix.ai;
> charset utf-8;
> client_max_body_size 30M;
> access_log C:/CORE_FILES/nginxlog/access.log;
> error_log C:/CORE_FILES/nginxlog/error.log debug;
>
> #The internal IP of the VM that hosts your Apache config
>
> location /{
> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
> proxy_pass http://192.168.0.101:$1/$2/;
> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>
> }
>
> proxy_http_version 1.1;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host www.analytix.ai;
> proxy_set_header Upgrade $http_upgrade;
> proxy_set_header Connection "upgrade";
> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
> sub_filter_once off;
>
> proxy_buffering off;
>
> }
>
>
> location ~ ^/(\d+)/static/ {
> #location /static/ {
> autoindex on;
> alias /bokehstatic/static/;
>
>
> }
>
>
> }
>
> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
> Hi,
>
> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
>
> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
>
>
> <!DOCTYPE html>
> <html lang="en">
> <head>
> <meta charset="utf-8">
> <title>OTICS WHAT-IF ENGINE</title>
> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
> <script type="text/javascript">
> Bokeh.set_log_level("info");
> </script>
> <style>
> html {
> width: 100%;
> height: 100%;
> }
> body {
> width: 90%;
> height: 100%;
> margin: auto;
> }
> </style>
> </head>
> <body>
> <div class="bk-root">
> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
> </div>
> <script type="text/javascript">
> (function() {
> var fn = function() {
> Bokeh.safely(function() {
> var docs_json = {};
> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
> Bokeh.embed.embed_items(docs_json, render_items);
> });
> };
> if (document.readyState != "loading") fn();
> else document.addEventListener("DOMContentLoaded", fn);
> })();
> </script>
> </body>
> </html>
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Bryan
Bryan

Clarify: that *section* has the effect of bypassing the Bokeh server

Bryan

···

On Sep 24, 2017, at 16:52, Bryan Van de ven <bryan@bokeh.org> wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven <bryan@bokeh.org> wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?

   # Set up layouts and add to document
   inputs = widgetbox(myobjs)
   mainrow=column(plot,data_table)
   mainrow2=row(mainrow,inputs)

       if objcnt-1==0:
       mainlayout=column(mainrow2)
       curdoc().add_root(mainlayout)
   else:
       mainlayout.children[0]=column(mainrow2)
   curdoc().title = "OTICS WHAT-IF ENGINE"

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the proxy conf:

server {
   listen 443;
     server_name www.analytix.ai;
         charset utf-8;
   client_max_body_size 30M;
   access_log C:/CORE_FILES/nginxlog/access.log;
   error_log C:/CORE_FILES/nginxlog/error.log debug;

     #The internal IP of the VM that hosts your Apache config

    location /{
             if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                     proxy_pass http://192.168.0.101:$1/$2/;
                     #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

             }

       proxy_http_version 1.1;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host www.analytix.ai;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
             sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
       sub_filter_once off;

       proxy_buffering off;

   }

     location ~ ^/(\d+)/static/ {
     #location /static/ {
     autoindex on;
     alias /bokehstatic/static/;

     }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

···

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

···

On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
Clarify: that *section* has the effect of bypassing the Bokeh server

Bryan

> On Sep 24, 2017, at 16:52, Bryan Van de ven <bryan@bokeh.org> wrote:
>
> I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
>
> Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
>
> When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
>
> Bryan
>
>
>
>> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryan@bokeh.org> wrote:
>>
>> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
>>
>> Bryan
>>
>> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>
>>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
>>>
>>>
>>> # Set up layouts and add to document
>>> inputs = widgetbox(myobjs)
>>> mainrow=column(plot,data_table)
>>> mainrow2=row(mainrow,inputs)
>>>
>>> if objcnt-1==0:
>>> mainlayout=column(mainrow2)
>>> curdoc().add_root(mainlayout)
>>> else:
>>> mainlayout.children[0]=column(mainrow2)
>>> curdoc().title = "OTICS WHAT-IF ENGINE"
>>>
>>>
>>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
>>>
>>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
>>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
>>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
>>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
>>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
>>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
>>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
>>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>
>>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
>>>
>>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
>>>
>>> Bryan
>>>
>>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>
>>>> Attached is the proxy conf:
>>>>
>>>> server {
>>>> listen 443;
>>>> server_name www.analytix.ai;
>>>> charset utf-8;
>>>> client_max_body_size 30M;
>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>>
>>>> #The internal IP of the VM that hosts your Apache config
>>>>
>>>> location /{
>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>>
>>>> }
>>>>
>>>> proxy_http_version 1.1;
>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>> proxy_set_header Host www.analytix.ai;
>>>> proxy_set_header Upgrade $http_upgrade;
>>>> proxy_set_header Connection "upgrade";
>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>> sub_filter_once off;
>>>>
>>>> proxy_buffering off;
>>>>
>>>> }
>>>>
>>>>
>>>> location ~ ^/(\d+)/static/ {
>>>> #location /static/ {
>>>> autoindex on;
>>>> alias /bokehstatic/static/;
>>>>
>>>>
>>>> }
>>>>
>>>>
>>>> }
>>>>
>>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
>>>> Hi,
>>>>
>>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
>>>>
>>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
>>>>
>>>>
>>>> <!DOCTYPE html>
>>>> <html lang="en">
>>>> <head>
>>>> <meta charset="utf-8">
>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>> <script type="text/javascript">
>>>> Bokeh.set_log_level("info");
>>>> </script>
>>>> <style>
>>>> html {
>>>> width: 100%;
>>>> height: 100%;
>>>> }
>>>> body {
>>>> width: 90%;
>>>> height: 100%;
>>>> margin: auto;
>>>> }
>>>> </style>
>>>> </head>
>>>> <body>
>>>> <div class="bk-root">
>>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
>>>> </div>
>>>> <script type="text/javascript">
>>>> (function() {
>>>> var fn = function() {
>>>> Bokeh.safely(function() {
>>>> var docs_json = {};
>>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>> });
>>>> };
>>>> if (document.readyState != "loading") fn();
>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>> })();
>>>> </script>
>>>> </body>
>>>> </html>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> To post to this group, send email to bokeh@continuum.io.
>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>>
>>>
>>> --
>>> -----
>>> Sebastian Maurice, PhD
>>> Mobile: 403-612-5443
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

···

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

···

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

–

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

···

On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

> On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>
> Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
>
> On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
> Clarify: that *section* has the effect of bypassing the Bokeh server
>
> Bryan
>
>
> > On Sep 24, 2017, at 16:52, Bryan Van de ven <bryan@bokeh.org> wrote:
> >
> > I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
> >
> > Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
> >
> > When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
> >
> > Bryan
> >
> >
> >
> >> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryan@bokeh.org> wrote:
> >>
> >> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
> >>
> >> Bryan
> >>
> >> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> >>
> >>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
> >>>
> >>>
> >>> # Set up layouts and add to document
> >>> inputs = widgetbox(myobjs)
> >>> mainrow=column(plot,data_table)
> >>> mainrow2=row(mainrow,inputs)
> >>>
> >>> if objcnt-1==0:
> >>> mainlayout=column(mainrow2)
> >>> curdoc().add_root(mainlayout)
> >>> else:
> >>> mainlayout.children[0]=column(mainrow2)
> >>> curdoc().title = "OTICS WHAT-IF ENGINE"
> >>>
> >>>
> >>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
> >>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
> >>>
> >>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
> >>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
> >>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
> >>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
> >>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
> >>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
> >>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
> >>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
> >>>
> >>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
> >>>
> >>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
> >>>
> >>> Bryan
> >>>
> >>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> >>>>
> >>>> Attached is the proxy conf:
> >>>>
> >>>> server {
> >>>> listen 443;
> >>>> server_name www.analytix.ai;
> >>>> charset utf-8;
> >>>> client_max_body_size 30M;
> >>>> access_log C:/CORE_FILES/nginxlog/access.log;
> >>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
> >>>>
> >>>> #The internal IP of the VM that hosts your Apache config
> >>>>
> >>>> location /{
> >>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
> >>>> proxy_pass http://192.168.0.101:$1/$2/;
> >>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
> >>>>
> >>>> }
> >>>>
> >>>> proxy_http_version 1.1;
> >>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> >>>> proxy_set_header Host www.analytix.ai;
> >>>> proxy_set_header Upgrade $http_upgrade;
> >>>> proxy_set_header Connection "upgrade";
> >>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
> >>>> sub_filter_once off;
> >>>>
> >>>> proxy_buffering off;
> >>>>
> >>>> }
> >>>>
> >>>>
> >>>> location ~ ^/(\d+)/static/ {
> >>>> #location /static/ {
> >>>> autoindex on;
> >>>> alias /bokehstatic/static/;
> >>>>
> >>>>
> >>>> }
> >>>>
> >>>>
> >>>> }
> >>>>
> >>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
> >>>> Hi,
> >>>>
> >>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
> >>>>
> >>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
> >>>>
> >>>>
> >>>> <!DOCTYPE html>
> >>>> <html lang="en">
> >>>> <head>
> >>>> <meta charset="utf-8">
> >>>> <title>OTICS WHAT-IF ENGINE</title>
> >>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
> >>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
> >>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
> >>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
> >>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
> >>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
> >>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
> >>>> <script type="text/javascript">
> >>>> Bokeh.set_log_level("info");
> >>>> </script>
> >>>> <style>
> >>>> html {
> >>>> width: 100%;
> >>>> height: 100%;
> >>>> }
> >>>> body {
> >>>> width: 90%;
> >>>> height: 100%;
> >>>> margin: auto;
> >>>> }
> >>>> </style>
> >>>> </head>
> >>>> <body>
> >>>> <div class="bk-root">
> >>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
> >>>> </div>
> >>>> <script type="text/javascript">
> >>>> (function() {
> >>>> var fn = function() {
> >>>> Bokeh.safely(function() {
> >>>> var docs_json = {};
> >>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
> >>>> Bokeh.embed.embed_items(docs_json, render_items);
> >>>> });
> >>>> };
> >>>> if (document.readyState != "loading") fn();
> >>>> else document.addEventListener("DOMContentLoaded", fn);
> >>>> })();
> >>>> </script>
> >>>> </body>
> >>>> </html>
> >>>>
> >>>> --
> >>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> >>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> >>>> To post to this group, send email to bokeh@continuum.io.
> >>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
> >>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> >>> To post to this group, send email to bokeh@continuum.io.
> >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
> >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >>>
> >>>
> >>>
> >>> --
> >>> -----
> >>> Sebastian Maurice, PhD
> >>> Mobile: 403-612-5443
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> >>> To post to this group, send email to bokeh@continuum.io.
> >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
> >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
>
>
> --
> -----
> Sebastian Maurice, PhD
> Mobile: 403-612-5443
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);

    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

	if ( $request_uri ~ ^/(\d+)/([^/]+)) {

		proxy_pass   http://192.168.0.101:$1/$2/;

		#proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

	}

proxy_http_version 1.1;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host www.analytix.ai;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection “upgrade”;

	sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";

sub_filter_once off;

proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }
···

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  Tornado StaticFileHandler · GitHub

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

···

On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

No problem. I removed the static and re started nginx: (no luck)

server {
    listen 443;
  server_name www.analytix.ai;
      charset utf-8;
    client_max_body_size 30M;
    access_log C:/CORE_FILES/nginxlog/access.log;
    error_log C:/CORE_FILES/nginxlog/error.log debug;
    
  #The internal IP of the VM that hosts your Apache config

     location /{
    if ( $request_uri ~ ^/(\d+)/([^/]+)) {
      proxy_pass http://192.168.0.101:$1/$2/;
      #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
      
    }
    
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host www.analytix.ai;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
        sub_filter_once off;
    
        proxy_buffering off;

    }

}
//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
    at smaurice_5007:17
20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
    at HTMLDocument.fn (smaurice_5007:40)
20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
    at smaurice_5007:17
(anonymous) @ smaurice_5007:17
20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
    at HTMLDocument.fn (smaurice_5007:40)
fn @ smaurice_5007:40
20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
20:52:54.799 bridge.js:1 Connected: Port {}
20:52:54.805 bridge.js:1 Done.
20:52:54.806 detection.js:1 +content/detection.js
20:52:54.808 detection.js:1 -content/detection.js
//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
Server: nginx/1.12.1
Date: Mon, 25 Sep 2017 00:52:55 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

> On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>
> I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation
>
> So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.
>
> thanks
>
>
> On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.
>
> Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.
>
> Thank you again!
>
> On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
> If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.
>
> Thanks,
>
> Bryan
>
> > On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> >
> > Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
> >
> > On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
> > Clarify: that *section* has the effect of bypassing the Bokeh server
> >
> > Bryan
> >
> >
> > > On Sep 24, 2017, at 16:52, Bryan Van de ven <bryan@bokeh.org> wrote:
> > >
> > > I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
> > >
> > > Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
> > >
> > > When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
> > >
> > > Bryan
> > >
> > >
> > >
> > >> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryan@bokeh.org> wrote:
> > >>
> > >> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
> > >>
> > >> Bryan
> > >>
> > >> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> > >>
> > >>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
> > >>>
> > >>>
> > >>> # Set up layouts and add to document
> > >>> inputs = widgetbox(myobjs)
> > >>> mainrow=column(plot,data_table)
> > >>> mainrow2=row(mainrow,inputs)
> > >>>
> > >>> if objcnt-1==0:
> > >>> mainlayout=column(mainrow2)
> > >>> curdoc().add_root(mainlayout)
> > >>> else:
> > >>> mainlayout.children[0]=column(mainrow2)
> > >>> curdoc().title = "OTICS WHAT-IF ENGINE"
> > >>>
> > >>>
> > >>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
> > >>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
> > >>>
> > >>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
> > >>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
> > >>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
> > >>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
> > >>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
> > >>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
> > >>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
> > >>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
> > >>>
> > >>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
> > >>>
> > >>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
> > >>>
> > >>> Bryan
> > >>>
> > >>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> > >>>>
> > >>>> Attached is the proxy conf:
> > >>>>
> > >>>> server {
> > >>>> listen 443;
> > >>>> server_name www.analytix.ai;
> > >>>> charset utf-8;
> > >>>> client_max_body_size 30M;
> > >>>> access_log C:/CORE_FILES/nginxlog/access.log;
> > >>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
> > >>>>
> > >>>> #The internal IP of the VM that hosts your Apache config
> > >>>>
> > >>>> location /{
> > >>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
> > >>>> proxy_pass http://192.168.0.101:$1/$2/;
> > >>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
> > >>>>
> > >>>> }
> > >>>>
> > >>>> proxy_http_version 1.1;
> > >>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> > >>>> proxy_set_header Host www.analytix.ai;
> > >>>> proxy_set_header Upgrade $http_upgrade;
> > >>>> proxy_set_header Connection "upgrade";
> > >>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
> > >>>> sub_filter_once off;
> > >>>>
> > >>>> proxy_buffering off;
> > >>>>
> > >>>> }
> > >>>>
> > >>>>
> > >>>> location ~ ^/(\d+)/static/ {
> > >>>> #location /static/ {
> > >>>> autoindex on;
> > >>>> alias /bokehstatic/static/;
> > >>>>
> > >>>>
> > >>>> }
> > >>>>
> > >>>>
> > >>>> }
> > >>>>
> > >>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
> > >>>> Hi,
> > >>>>
> > >>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
> > >>>>
> > >>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
> > >>>>
> > >>>>
> > >>>> <!DOCTYPE html>
> > >>>> <html lang="en">
> > >>>> <head>
> > >>>> <meta charset="utf-8">
> > >>>> <title>OTICS WHAT-IF ENGINE</title>
> > >>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
> > >>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
> > >>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
> > >>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
> > >>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
> > >>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
> > >>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
> > >>>> <script type="text/javascript">
> > >>>> Bokeh.set_log_level("info");
> > >>>> </script>
> > >>>> <style>
> > >>>> html {
> > >>>> width: 100%;
> > >>>> height: 100%;
> > >>>> }
> > >>>> body {
> > >>>> width: 90%;
> > >>>> height: 100%;
> > >>>> margin: auto;
> > >>>> }
> > >>>> </style>
> > >>>> </head>
> > >>>> <body>
> > >>>> <div class="bk-root">
> > >>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
> > >>>> </div>
> > >>>> <script type="text/javascript">
> > >>>> (function() {
> > >>>> var fn = function() {
> > >>>> Bokeh.safely(function() {
> > >>>> var docs_json = {};
> > >>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
> > >>>> Bokeh.embed.embed_items(docs_json, render_items);
> > >>>> });
> > >>>> };
> > >>>> if (document.readyState != "loading") fn();
> > >>>> else document.addEventListener("DOMContentLoaded", fn);
> > >>>> })();
> > >>>> </script>
> > >>>> </body>
> > >>>> </html>
> > >>>>
> > >>>> --
> > >>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > >>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > >>>> To post to this group, send email to bokeh@continuum.io.
> > >>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
> > >>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > >>>
> > >>> --
> > >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > >>> To post to this group, send email to bokeh@continuum.io.
> > >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
> > >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > >>>
> > >>>
> > >>>
> > >>> --
> > >>> -----
> > >>> Sebastian Maurice, PhD
> > >>> Mobile: 403-612-5443
> > >>>
> > >>> --
> > >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > >>> To post to this group, send email to bokeh@continuum.io.
> > >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
> > >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > >
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > To post to this group, send email to bokeh@continuum.io.
> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
> > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >
> >
> >
> > --
> > -----
> > Sebastian Maurice, PhD
> > Mobile: 403-612-5443
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > To post to this group, send email to bokeh@continuum.io.
> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
> > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
>
>
> --
> -----
> Sebastian Maurice, PhD
> Mobile: 403-612-5443
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

···

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   http://192.168.0.101:$1/$2/;
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

···

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

···

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Great…thanks for giving me a little hope.

···

On Sun, Sep 24, 2017 at 11:15 PM, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/5BAB8B98-A088-4E3F-B4EC-DB2C84EDE7D7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryanv@anaconda.com wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

I ran this command:

bokeh.util.paths.bokehjsdir()

**Result: **

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

···

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryanv@anaconda.com wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

···

On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

I ran this command:

>>> bokeh.util.paths.bokehjsdir()

Result:
'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven <bryan@bokeh.org> wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

        Tornado StaticFileHandler · GitHub

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

> On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>
> No problem. I removed the static and re started nginx: (no luck)
>
> server {
> listen 443;
> server_name www.analytix.ai;
> charset utf-8;
> client_max_body_size 30M;
> access_log C:/CORE_FILES/nginxlog/access.log;
> error_log C:/CORE_FILES/nginxlog/error.log debug;
>
> #The internal IP of the VM that hosts your Apache config
>
> location /{
> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
> proxy_pass http://192.168.0.101:$1/$2/;
> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>
> }
>
> proxy_http_version 1.1;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host www.analytix.ai;
> proxy_set_header Upgrade $http_upgrade;
> proxy_set_header Connection "upgrade";
> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
> sub_filter_once off;
>
> proxy_buffering off;
>
> }
>
> }
> //////////////////////////////////////////////////////////JS console:
>
> Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
> at smaurice_5007:17
> 20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
> at HTMLDocument.fn (smaurice_5007:40)
> 20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
> 20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
> 20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
> 20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
> 20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
> 20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
> 20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
> 20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
> 20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
> 20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
> 20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
> 20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
> 20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
> 20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
> 20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
> 20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
> at smaurice_5007:17
> (anonymous) @ smaurice_5007:17
> 20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
> at HTMLDocument.fn (smaurice_5007:40)
> fn @ smaurice_5007:40
> 20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
> 20:52:54.799 bridge.js:1 Connected: Port {}
> 20:52:54.805 bridge.js:1 Done.
> 20:52:54.806 detection.js:1 +content/detection.js
> 20:52:54.808 detection.js:1 -content/detection.js
> //////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS
>
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
> Server: nginx/1.12.1
> Date: Mon, 25 Sep 2017 00:52:55 GMT
> Content-Type: text/html; charset=UTF-8
> Transfer-Encoding: chunked
> Connection: keep-alive
> Content-Encoding: gzip
>
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28
>
> /////////////////////////////////////////////////////////////// BOKEH JS Page source
> <!DOCTYPE html>
> <html lang="en">
> <head>
> <meta charset="utf-8">
> <title>OTICS WHAT-IF ENGINE</title>
> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
> <script type="text/javascript">
> Bokeh.set_log_level("info");
> </script>
> <style>
> html {
> width: 100%;
> height: 100%;
> }
> body {
> width: 90%;
> height: 100%;
> margin: auto;
> }
> </style>
> </head>
> <body>
> <div class="bk-root">
> <div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
> </div>
> <script type="text/javascript">
> (function() {
> var fn = function() {
> Bokeh.safely(function() {
> var docs_json = {};
> var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
> Bokeh.embed.embed_items(docs_json, render_items);
> });
> };
> if (document.readyState != "loading") fn();
> else document.addEventListener("DOMContentLoaded", fn);
> })();
> </script>
> </body>
> </html>
>
>
>
>
>
> On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
> Two quick comments:
>
> The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.
>
> I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.
>
> Thanks,
>
> Bryan
>
> > On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> >
> > I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation
> >
> > So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.
> >
> > thanks
> >
> >
> > On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> > Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.
> >
> > Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.
> >
> > Thank you again!
> >
> > On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
> > If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.
> >
> > Thanks,
> >
> > Bryan
> >
> > > On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> > >
> > > Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
> > >
> > > On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
> > > Clarify: that *section* has the effect of bypassing the Bokeh server
> > >
> > > Bryan
> > >
> > >
> > > > On Sep 24, 2017, at 16:52, Bryan Van de ven <bryanv@anaconda.com> wrote:
> > > >
> > > > I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
> > > >
> > > > Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
> > > >
> > > > When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
> > > >
> > > > Bryan
> > > >
> > > >
> > > >
> > > >> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryanv@anaconda.com> wrote:
> > > >>
> > > >> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
> > > >>
> > > >> Bryan
> > > >>
> > > >> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> > > >>
> > > >>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
> > > >>>
> > > >>>
> > > >>> # Set up layouts and add to document
> > > >>> inputs = widgetbox(myobjs)
> > > >>> mainrow=column(plot,data_table)
> > > >>> mainrow2=row(mainrow,inputs)
> > > >>>
> > > >>> if objcnt-1==0:
> > > >>> mainlayout=column(mainrow2)
> > > >>> curdoc().add_root(mainlayout)
> > > >>> else:
> > > >>> mainlayout.children[0]=column(mainrow2)
> > > >>> curdoc().title = "OTICS WHAT-IF ENGINE"
> > > >>>
> > > >>>
> > > >>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
> > > >>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
> > > >>>
> > > >>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
> > > >>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
> > > >>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
> > > >>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
> > > >>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
> > > >>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
> > > >>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
> > > >>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
> > > >>>
> > > >>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
> > > >>>
> > > >>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
> > > >>>
> > > >>> Bryan
> > > >>>
> > > >>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
> > > >>>>
> > > >>>> Attached is the proxy conf:
> > > >>>>
> > > >>>> server {
> > > >>>> listen 443;
> > > >>>> server_name www.analytix.ai;
> > > >>>> charset utf-8;
> > > >>>> client_max_body_size 30M;
> > > >>>> access_log C:/CORE_FILES/nginxlog/access.log;
> > > >>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
> > > >>>>
> > > >>>> #The internal IP of the VM that hosts your Apache config
> > > >>>>
> > > >>>> location /{
> > > >>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
> > > >>>> proxy_pass http://192.168.0.101:$1/$2/;
> > > >>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
> > > >>>>
> > > >>>> }
> > > >>>>
> > > >>>> proxy_http_version 1.1;
> > > >>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> > > >>>> proxy_set_header Host www.analytix.ai;
> > > >>>> proxy_set_header Upgrade $http_upgrade;
> > > >>>> proxy_set_header Connection "upgrade";
> > > >>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
> > > >>>> sub_filter_once off;
> > > >>>>
> > > >>>> proxy_buffering off;
> > > >>>>
> > > >>>> }
> > > >>>>
> > > >>>>
> > > >>>> location ~ ^/(\d+)/static/ {
> > > >>>> #location /static/ {
> > > >>>> autoindex on;
> > > >>>> alias /bokehstatic/static/;
> > > >>>>
> > > >>>>
> > > >>>> }
> > > >>>>
> > > >>>>
> > > >>>> }
> > > >>>>
> > > >>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
> > > >>>> Hi,
> > > >>>>
> > > >>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
> > > >>>>
> > > >>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
> > > >>>>
> > > >>>>
> > > >>>> <!DOCTYPE html>
> > > >>>> <html lang="en">
> > > >>>> <head>
> > > >>>> <meta charset="utf-8">
> > > >>>> <title>OTICS WHAT-IF ENGINE</title>
> > > >>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
> > > >>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
> > > >>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
> > > >>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
> > > >>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
> > > >>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
> > > >>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
> > > >>>> <script type="text/javascript">
> > > >>>> Bokeh.set_log_level("info");
> > > >>>> </script>
> > > >>>> <style>
> > > >>>> html {
> > > >>>> width: 100%;
> > > >>>> height: 100%;
> > > >>>> }
> > > >>>> body {
> > > >>>> width: 90%;
> > > >>>> height: 100%;
> > > >>>> margin: auto;
> > > >>>> }
> > > >>>> </style>
> > > >>>> </head>
> > > >>>> <body>
> > > >>>> <div class="bk-root">
> > > >>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
> > > >>>> </div>
> > > >>>> <script type="text/javascript">
> > > >>>> (function() {
> > > >>>> var fn = function() {
> > > >>>> Bokeh.safely(function() {
> > > >>>> var docs_json = {};
> > > >>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
> > > >>>> Bokeh.embed.embed_items(docs_json, render_items);
> > > >>>> });
> > > >>>> };
> > > >>>> if (document.readyState != "loading") fn();
> > > >>>> else document.addEventListener("DOMContentLoaded", fn);
> > > >>>> })();
> > > >>>> </script>
> > > >>>> </body>
> > > >>>> </html>
> > > >>>>
> > > >>>> --
> > > >>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > > >>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > > >>>> To post to this group, send email to bokeh@continuum.io.
> > > >>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
> > > >>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > > >>>
> > > >>> --
> > > >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > > >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > > >>> To post to this group, send email to bokeh@continuum.io.
> > > >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
> > > >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > > >>>
> > > >>>
> > > >>>
> > > >>> --
> > > >>> -----
> > > >>> Sebastian Maurice, PhD
> > > >>> Mobile: 403-612-5443
> > > >>>
> > > >>> --
> > > >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > > >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > > >>> To post to this group, send email to bokeh@continuum.io.
> > > >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
> > > >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > > >
> > >
> > > --
> > > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > > To post to this group, send email to bokeh@continuum.io.
> > > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
> > > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > >
> > >
> > >
> > > --
> > > -----
> > > Sebastian Maurice, PhD
> > > Mobile: 403-612-5443
> > >
> > > --
> > > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > > To post to this group, send email to bokeh@continuum.io.
> > > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
> > > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > To post to this group, send email to bokeh@continuum.io.
> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
> > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >
> >
> >
> > --
> > -----
> > Sebastian Maurice, PhD
> > Mobile: 403-612-5443
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> > To post to this group, send email to bokeh@continuum.io.
> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
> > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
>
>
> --
> -----
> Sebastian Maurice, PhD
> Mobile: 403-612-5443
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.

For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403…

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

···

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryan@bokeh.org wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   http://192.168.0.101:$1/$2/;
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryanv@anaconda.com wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Static 403 error in Bokeh attached.

···

On Mon, Sep 25, 2017 at 9:01 AM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

OTICS WHAT-IF ENGINE html { width: 100%; height: 100%; } body { width: 90%; height: 100%; margin: auto; }

–

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryan@bokeh.org wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

    [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;
  server_name [www.analytix.ai](http://www.analytix.ai);
      charset     utf-8;
client_max_body_size 30M;
access_log  C:/CORE_FILES/nginxlog/access.log;
error_log  C:/CORE_FILES/nginxlog/error.log debug;
  #The internal IP of the VM that hosts your Apache config
 location /{
          if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                  proxy_pass   http://192.168.0.101:$1/$2/;
                  #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
          }
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
          sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
    sub_filter_once off;
    proxy_buffering off;
}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryanv@anaconda.com wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryanv@anaconda.com wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryanv@anaconda.com wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

   if objcnt-1==0:
   mainlayout=column(mainrow2)
   curdoc().add_root(mainlayout)

else:

   mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

 location ~ ^/(\d+)/static/ {
 #location /static/ {
 autoindex on;
 alias /bokehstatic/static/;
 }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and "access" one and and "error" one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

···

On Sep 25, 2017, at 08:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="5f39c29f-5c27-432b-8872-bbc21a5123da"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"5f39c29f-5c27-432b-8872-bbc21a5123da","sessionid":"Rh0VcsYTTwbiZHzneNlQs5It9pRq2LJYrG1nchvcQdRd","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

> On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>
> I ran this command:
>
> >>> bokeh.util.paths.bokehjsdir()
>
> Result:
> 'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'
>
>
>
> On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
> We do use join, etc here
>
> https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py
>
> So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?
>
> On Sep 24, 2017, at 22:15, Bryan Van de ven <bryan@bokeh.org> wrote:
>
>> Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.
>>
>> Bryan
>>
>> On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>
>>> Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?
>>>
>>> thanks for the additional information. Will look at it.
>>>
>>>
>>> On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:
>>>
>>> Tornado StaticFileHandler · GitHub
>>>
>>> Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?
>>>
>>> Thanks,
>>>
>>> Bryan
>>>
>>> > On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>> >
>>> > No problem. I removed the static and re started nginx: (no luck)
>>> >
>>> > server {
>>> > listen 443;
>>> > server_name www.analytix.ai;
>>> > charset utf-8;
>>> > client_max_body_size 30M;
>>> > access_log C:/CORE_FILES/nginxlog/access.log;
>>> > error_log C:/CORE_FILES/nginxlog/error.log debug;
>>> >
>>> > #The internal IP of the VM that hosts your Apache config
>>> >
>>> > location /{
>>> > if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>> > proxy_pass http://192.168.0.101:$1/$2/;
>>> > #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>> >
>>> > }
>>> >
>>> > proxy_http_version 1.1;
>>> > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>> > proxy_set_header Host www.analytix.ai;
>>> > proxy_set_header Upgrade $http_upgrade;
>>> > proxy_set_header Connection "upgrade";
>>> > sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>> > sub_filter_once off;
>>> >
>>> > proxy_buffering off;
>>> >
>>> > }
>>> >
>>> > }
>>> > //////////////////////////////////////////////////////////JS console:
>>> >
>>> > Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>> > at smaurice_5007:17
>>> > 20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>> > at HTMLDocument.fn (smaurice_5007:40)
>>> > 20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>> > 20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
>>> > 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
>>> > 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
>>> > 20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
>>> > 20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>> > 20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
>>> > 20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
>>> > 20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
>>> > 20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>> > 20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>> > 20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
>>> > 20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
>>> > 20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
>>> > 20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>> > 20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>> > 20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
>>> > 20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>> > at smaurice_5007:17
>>> > (anonymous) @ smaurice_5007:17
>>> > 20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>> > at HTMLDocument.fn (smaurice_5007:40)
>>> > fn @ smaurice_5007:40
>>> > 20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>> > 20:52:54.799 bridge.js:1 Connected: Port {}
>>> > 20:52:54.805 bridge.js:1 Done.
>>> > 20:52:54.806 detection.js:1 +content/detection.js
>>> > 20:52:54.808 detection.js:1 -content/detection.js
>>> > //////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS
>>> >
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
>>> > Server: nginx/1.12.1
>>> > Date: Mon, 25 Sep 2017 00:52:55 GMT
>>> > Content-Type: text/html; charset=UTF-8
>>> > Transfer-Encoding: chunked
>>> > Connection: keep-alive
>>> > Content-Encoding: gzip
>>> >
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
>>> > 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
>>> > 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
>>> > 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28
>>> >
>>> > /////////////////////////////////////////////////////////////// BOKEH JS Page source
>>> > <!DOCTYPE html>
>>> > <html lang="en">
>>> > <head>
>>> > <meta charset="utf-8">
>>> > <title>OTICS WHAT-IF ENGINE</title>
>>> > <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>> > <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>> > <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>> > <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>> > <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>> > <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>> > <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>> > <script type="text/javascript">
>>> > Bokeh.set_log_level("info");
>>> > </script>
>>> > <style>
>>> > html {
>>> > width: 100%;
>>> > height: 100%;
>>> > }
>>> > body {
>>> > width: 90%;
>>> > height: 100%;
>>> > margin: auto;
>>> > }
>>> > </style>
>>> > </head>
>>> > <body>
>>> > <div class="bk-root">
>>> > <div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
>>> > </div>
>>> > <script type="text/javascript">
>>> > (function() {
>>> > var fn = function() {
>>> > Bokeh.safely(function() {
>>> > var docs_json = {};
>>> > var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
>>> > Bokeh.embed.embed_items(docs_json, render_items);
>>> > });
>>> > };
>>> > if (document.readyState != "loading") fn();
>>> > else document.addEventListener("DOMContentLoaded", fn);
>>> > })();
>>> > </script>
>>> > </body>
>>> > </html>
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> > Two quick comments:
>>> >
>>> > The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.
>>> >
>>> > I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.
>>> >
>>> > Thanks,
>>> >
>>> > Bryan
>>> >
>>> > > On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>> > >
>>> > > I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation
>>> > >
>>> > > So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.
>>> > >
>>> > > thanks
>>> > >
>>> > >
>>> > > On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>> > > Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.
>>> > >
>>> > > Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.
>>> > >
>>> > > Thank you again!
>>> > >
>>> > > On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
>>> > > If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.
>>> > >
>>> > > Thanks,
>>> > >
>>> > > Bryan
>>> > >
>>> > > > On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>> > > >
>>> > > > Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
>>> > > >
>>> > > > On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> > > > Clarify: that *section* has the effect of bypassing the Bokeh server
>>> > > >
>>> > > > Bryan
>>> > > >
>>> > > >
>>> > > > > On Sep 24, 2017, at 16:52, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> > > > >
>>> > > > > I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
>>> > > > >
>>> > > > > Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
>>> > > > >
>>> > > > > When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
>>> > > > >
>>> > > > > Bryan
>>> > > > >
>>> > > > >
>>> > > > >
>>> > > > >> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> > > > >>
>>> > > > >> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
>>> > > > >>
>>> > > > >> Bryan
>>> > > > >>
>>> > > > >> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>> > > > >>
>>> > > > >>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
>>> > > > >>>
>>> > > > >>>
>>> > > > >>> # Set up layouts and add to document
>>> > > > >>> inputs = widgetbox(myobjs)
>>> > > > >>> mainrow=column(plot,data_table)
>>> > > > >>> mainrow2=row(mainrow,inputs)
>>> > > > >>>
>>> > > > >>> if objcnt-1==0:
>>> > > > >>> mainlayout=column(mainrow2)
>>> > > > >>> curdoc().add_root(mainlayout)
>>> > > > >>> else:
>>> > > > >>> mainlayout.children[0]=column(mainrow2)
>>> > > > >>> curdoc().title = "OTICS WHAT-IF ENGINE"
>>> > > > >>>
>>> > > > >>>
>>> > > > >>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> > > > >>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
>>> > > > >>>
>>> > > > >>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
>>> > > > >>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
>>> > > > >>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
>>> > > > >>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
>>> > > > >>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
>>> > > > >>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
>>> > > > >>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
>>> > > > >>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>> > > > >>>
>>> > > > >>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
>>> > > > >>>
>>> > > > >>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
>>> > > > >>>
>>> > > > >>> Bryan
>>> > > > >>>
>>> > > > >>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>> > > > >>>>
>>> > > > >>>> Attached is the proxy conf:
>>> > > > >>>>
>>> > > > >>>> server {
>>> > > > >>>> listen 443;
>>> > > > >>>> server_name www.analytix.ai;
>>> > > > >>>> charset utf-8;
>>> > > > >>>> client_max_body_size 30M;
>>> > > > >>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>> > > > >>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>> > > > >>>>
>>> > > > >>>> #The internal IP of the VM that hosts your Apache config
>>> > > > >>>>
>>> > > > >>>> location /{
>>> > > > >>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>> > > > >>>> proxy_pass http://192.168.0.101:$1/$2/;
>>> > > > >>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>> > > > >>>>
>>> > > > >>>> }
>>> > > > >>>>
>>> > > > >>>> proxy_http_version 1.1;
>>> > > > >>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>> > > > >>>> proxy_set_header Host www.analytix.ai;
>>> > > > >>>> proxy_set_header Upgrade $http_upgrade;
>>> > > > >>>> proxy_set_header Connection "upgrade";
>>> > > > >>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>> > > > >>>> sub_filter_once off;
>>> > > > >>>>
>>> > > > >>>> proxy_buffering off;
>>> > > > >>>>
>>> > > > >>>> }
>>> > > > >>>>
>>> > > > >>>>
>>> > > > >>>> location ~ ^/(\d+)/static/ {
>>> > > > >>>> #location /static/ {
>>> > > > >>>> autoindex on;
>>> > > > >>>> alias /bokehstatic/static/;
>>> > > > >>>>
>>> > > > >>>>
>>> > > > >>>> }
>>> > > > >>>>
>>> > > > >>>>
>>> > > > >>>> }
>>> > > > >>>>
>>> > > > >>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
>>> > > > >>>> Hi,
>>> > > > >>>>
>>> > > > >>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
>>> > > > >>>>
>>> > > > >>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
>>> > > > >>>>
>>> > > > >>>>
>>> > > > >>>> <!DOCTYPE html>
>>> > > > >>>> <html lang="en">
>>> > > > >>>> <head>
>>> > > > >>>> <meta charset="utf-8">
>>> > > > >>>> <title>OTICS WHAT-IF ENGINE</title>
>>> > > > >>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>> > > > >>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>> > > > >>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>> > > > >>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>> > > > >>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>> > > > >>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>> > > > >>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>> > > > >>>> <script type="text/javascript">
>>> > > > >>>> Bokeh.set_log_level("info");
>>> > > > >>>> </script>
>>> > > > >>>> <style>
>>> > > > >>>> html {
>>> > > > >>>> width: 100%;
>>> > > > >>>> height: 100%;
>>> > > > >>>> }
>>> > > > >>>> body {
>>> > > > >>>> width: 90%;
>>> > > > >>>> height: 100%;
>>> > > > >>>> margin: auto;
>>> > > > >>>> }
>>> > > > >>>> </style>
>>> > > > >>>> </head>
>>> > > > >>>> <body>
>>> > > > >>>> <div class="bk-root">
>>> > > > >>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
>>> > > > >>>> </div>
>>> > > > >>>> <script type="text/javascript">
>>> > > > >>>> (function() {
>>> > > > >>>> var fn = function() {
>>> > > > >>>> Bokeh.safely(function() {
>>> > > > >>>> var docs_json = {};
>>> > > > >>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
>>> > > > >>>> Bokeh.embed.embed_items(docs_json, render_items);
>>> > > > >>>> });
>>> > > > >>>> };
>>> > > > >>>> if (document.readyState != "loading") fn();
>>> > > > >>>> else document.addEventListener("DOMContentLoaded", fn);
>>> > > > >>>> })();
>>> > > > >>>> </script>
>>> > > > >>>> </body>
>>> > > > >>>> </html>
>>> > > > >>>>
>>> > > > >>>> --
>>> > > > >>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > > >>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > > >>>> To post to this group, send email to bokeh@continuum.io.
>>> > > > >>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
>>> > > > >>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> > > > >>>
>>> > > > >>> --
>>> > > > >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > > >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > > >>> To post to this group, send email to bokeh@continuum.io.
>>> > > > >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
>>> > > > >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> > > > >>>
>>> > > > >>>
>>> > > > >>>
>>> > > > >>> --
>>> > > > >>> -----
>>> > > > >>> Sebastian Maurice, PhD
>>> > > > >>> Mobile: 403-612-5443
>>> > > > >>>
>>> > > > >>> --
>>> > > > >>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > > >>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > > >>> To post to this group, send email to bokeh@continuum.io.
>>> > > > >>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
>>> > > > >>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> > > > >
>>> > > >
>>> > > > --
>>> > > > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > > To post to this group, send email to bokeh@continuum.io.
>>> > > > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
>>> > > > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> > > >
>>> > > >
>>> > > >
>>> > > > --
>>> > > > -----
>>> > > > Sebastian Maurice, PhD
>>> > > > Mobile: 403-612-5443
>>> > > >
>>> > > > --
>>> > > > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > > To post to this group, send email to bokeh@continuum.io.
>>> > > > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
>>> > > > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> > >
>>> > > --
>>> > > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > To post to this group, send email to bokeh@continuum.io.
>>> > > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
>>> > > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> > >
>>> > >
>>> > >
>>> > > --
>>> > > -----
>>> > > Sebastian Maurice, PhD
>>> > > Mobile: 403-612-5443
>>> > >
>>> > > --
>>> > > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > > To post to this group, send email to bokeh@continuum.io.
>>> > > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
>>> > > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > To post to this group, send email to bokeh@continuum.io.
>>> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
>>> > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> >
>>> >
>>> >
>>> > --
>>> > -----
>>> > Sebastian Maurice, PhD
>>> > Mobile: 403-612-5443
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> > To post to this group, send email to bokeh@continuum.io.
>>> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
>>> > For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
>>> To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>>
>>>
>>> --
>>> -----
>>> Sebastian Maurice, PhD
>>> Mobile: 403-612-5443
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.
>
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
>
>
> --
> -----
> Sebastian Maurice, PhD
> Mobile: 403-612-5443
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
<bokehscreen.png>

⌁   Link to post
Bryan
Bryan

Since it's the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

    if ( $request_uri ~ ^/(\d+)/([^/]+)) {
      proxy_pass http://192.168.0.101:$1/$2/;
      #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
      
    }

Thanks,

Bryan

···

On Sep 25, 2017, at 08:09, Bryan Van de ven <bryan@bokeh.org> wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and "access" one and and "error" one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="5f39c29f-5c27-432b-8872-bbc21a5123da"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"5f39c29f-5c27-432b-8872-bbc21a5123da","sessionid":"Rh0VcsYTTwbiZHzneNlQs5It9pRq2LJYrG1nchvcQdRd","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:
'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven <bryan@bokeh.org> wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

       Tornado StaticFileHandler · GitHub

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

No problem. I removed the static and re started nginx: (no luck)

server {
   listen 443;
     server_name www.analytix.ai;
         charset utf-8;
   client_max_body_size 30M;
   access_log C:/CORE_FILES/nginxlog/access.log;
   error_log C:/CORE_FILES/nginxlog/error.log debug;

     #The internal IP of the VM that hosts your Apache config

    location /{
             if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                     proxy_pass http://192.168.0.101:$1/$2/;
                     #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

             }

       proxy_http_version 1.1;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host www.analytix.ai;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
             sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
       sub_filter_once off;

       proxy_buffering off;

   }

}
//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
   at smaurice_5007:17
20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
   at HTMLDocument.fn (smaurice_5007:40)
20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
   at smaurice_5007:17
(anonymous) @ smaurice_5007:17
20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
   at HTMLDocument.fn (smaurice_5007:40)
fn @ smaurice_5007:40
20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
20:52:54.799 bridge.js:1 Connected: Port {}
20:52:54.805 bridge.js:1 Done.
20:52:54.806 detection.js:1 +content/detection.js
20:52:54.808 detection.js:1 -content/detection.js
//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
Server: nginx/1.12.1
Date: Mon, 25 Sep 2017 00:52:55 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
Clarify: that *section* has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven <bryan@bokeh.org> wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven <bryan@bokeh.org> wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?

  # Set up layouts and add to document
  inputs = widgetbox(myobjs)
  mainrow=column(plot,data_table)
  mainrow2=row(mainrow,inputs)

      if objcnt-1==0:
      mainlayout=column(mainrow2)
      curdoc().add_root(mainlayout)
  else:
      mainlayout.children[0]=column(mainrow2)
  curdoc().title = "OTICS WHAT-IF ENGINE"

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the proxy conf:

server {
  listen 443;
    server_name www.analytix.ai;
        charset utf-8;
  client_max_body_size 30M;
  access_log C:/CORE_FILES/nginxlog/access.log;
  error_log C:/CORE_FILES/nginxlog/error.log debug;

    #The internal IP of the VM that hosts your Apache config

   location /{
            if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                    proxy_pass http://192.168.0.101:$1/$2/;
                    #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

            }

      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host www.analytix.ai;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
            sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
      sub_filter_once off;

      proxy_buffering off;

  }

    location ~ ^/(\d+)/static/ {
    #location /static/ {
    autoindex on;
    alias /bokehstatic/static/;

    }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.

For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
<bokehscreen.png>

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server…the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

···

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

            if ( $request_uri ~ ^/(\d+)/([^/]+)) {

                    proxy_pass   http://192.168.0.101:$1/$2/;

                    #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;



            }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403…

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryan@bokeh.org wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

   [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

 server_name [www.analytix.ai](http://www.analytix.ai);
     charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

 #The internal IP of the VM that hosts your Apache config
location /{
         if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                 proxy_pass   http://192.168.0.101:$1/$2/;
                 #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
         }
   proxy_http_version 1.1;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
         sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
   sub_filter_once off;
   proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

  if objcnt-1==0:
  mainlayout=column(mainrow2)
  curdoc().add_root(mainlayout)

else:

  mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryanv@anaconda.com wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   http://192.168.0.101:$1/$2/;
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

location ~ ^/(\d+)/static/ {
#location /static/ {
autoindex on;
alias /bokehstatic/static/;
}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

I don't think that can be the case. Here is some output from when Bokeh server gets a request but can't satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2
~/work/bokeh/examples/app bryanv/canonical_embed*
❯ bokeh serve --show --log-level=debug image_blur.py
2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)
2017-09-25 08:26:54,867 These host origins can connect to the websocket: ['localhost:5006']
2017-09-25 08:26:54,868 Patterns are:
2017-09-25 08:26:54,868 [('/image_blur/?',
2017-09-25 08:26:54,868 <class 'bokeh.server.views.doc_handler.DocHandler'>,
2017-09-25 08:26:54,868 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,868 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,868 ('/image_blur/ws',
2017-09-25 08:26:54,868 <class 'bokeh.server.views.ws.WSHandler'>,
2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,869 ('/image_blur/metadata',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.metadata_handler.MetadataHandler'>,
2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,869 ('/image_blur/autoload.js',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.autoload_js_handler.AutoloadJsHandler'>,
2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,869 ('/?',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.root_handler.RootHandler'>,
2017-09-25 08:26:54,869 {'applications': {'/image_blur': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},
2017-09-25 08:26:54,869 'prefix': '',
2017-09-25 08:26:54,869 'use_redirect': True}),
2017-09-25 08:26:54,869 ('/static/(.*)',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.static_handler.StaticHandler'>)]
2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur
2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589
2017-09-25 08:26:55,552 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js'
2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js'
2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js'
2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js'
2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css'
2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css'
2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css'
2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms
2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms
2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms
2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms
2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms
2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms
2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms
2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403's, they would show up here, just like these 404's do

Bryan

···

On Sep 25, 2017, at 08:19, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Thanks...i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
Since it's the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

                if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                        proxy_pass http://192.168.0.101:$1/$2/;
                        #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

                }

Thanks,

Bryan

> On Sep 25, 2017, at 08:09, Bryan Van de ven <bryan@bokeh.org> wrote:
>
> OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and "access" one and and "error" one. you might try looking in both for more information about why nginx is doing this.
>
> Thanks,
>
> Bryan
>
>> On Sep 25, 2017, at 08:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>
>> Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..
>>
>> <!DOCTYPE html>
>> <html lang="en">
>> <head>
>> <meta charset="utf-8">
>> <title>OTICS WHAT-IF ENGINE</title>
>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>> <script type="text/javascript">
>> Bokeh.set_log_level("info");
>> </script>
>> <style>
>> html {
>> width: 100%;
>> height: 100%;
>> }
>> body {
>> width: 90%;
>> height: 100%;
>> margin: auto;
>> }
>> </style>
>> </head>
>> <body>
>> <div class="bk-root">
>> <div class="bk-plotdiv" id="5f39c29f-5c27-432b-8872-bbc21a5123da"></div>
>> </div>
>> <script type="text/javascript">
>> (function() {
>> var fn = function() {
>> Bokeh.safely(function() {
>> var docs_json = {};
>> var render_items = [{"elementid":"5f39c29f-5c27-432b-8872-bbc21a5123da","sessionid":"Rh0VcsYTTwbiZHzneNlQs5It9pRq2LJYrG1nchvcQdRd","use_for_title":true}];
>> Bokeh.embed.embed_items(docs_json, render_items);
>> });
>> };
>> if (document.readyState != "loading") fn();
>> else document.addEventListener("DOMContentLoaded", fn);
>> })();
>> </script>
>> </body>
>> </html>
>>
>> On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
>> That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.
>>
>> Bryan
>>
>>> On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>
>>> I ran this command:
>>>
>>>>>> bokeh.util.paths.bokehjsdir()
>>>
>>> Result:
>>> 'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'
>>>
>>>
>>>
>>> On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> We do use join, etc here
>>>
>>> https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py
>>>
>>> So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?
>>>
>>> On Sep 24, 2017, at 22:15, Bryan Van de ven <bryan@bokeh.org> wrote:
>>>
>>>> Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.
>>>>
>>>> Bryan
>>>>
>>>> On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>
>>>>> Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?
>>>>>
>>>>> thanks for the additional information. Will look at it.
>>>>>
>>>>>
>>>>> On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>> OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:
>>>>>
>>>>> Tornado StaticFileHandler · GitHub
>>>>>
>>>>> Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Bryan
>>>>>
>>>>>> On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>
>>>>>> No problem. I removed the static and re started nginx: (no luck)
>>>>>>
>>>>>> server {
>>>>>> listen 443;
>>>>>> server_name www.analytix.ai;
>>>>>> charset utf-8;
>>>>>> client_max_body_size 30M;
>>>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>>>>
>>>>>> #The internal IP of the VM that hosts your Apache config
>>>>>>
>>>>>> location /{
>>>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>>>>
>>>>>> }
>>>>>>
>>>>>> proxy_http_version 1.1;
>>>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>>>> proxy_set_header Host www.analytix.ai;
>>>>>> proxy_set_header Upgrade $http_upgrade;
>>>>>> proxy_set_header Connection "upgrade";
>>>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>>>> sub_filter_once off;
>>>>>>
>>>>>> proxy_buffering off;
>>>>>>
>>>>>> }
>>>>>>
>>>>>> }
>>>>>> //////////////////////////////////////////////////////////JS console:
>>>>>>
>>>>>> Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>>>> at smaurice_5007:17
>>>>>> 20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>>>>> at HTMLDocument.fn (smaurice_5007:40)
>>>>>> 20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>>>>> 20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
>>>>>> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
>>>>>> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
>>>>>> 20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
>>>>>> 20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>> 20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
>>>>>> 20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
>>>>>> 20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
>>>>>> 20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>>>>> 20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>>>>> 20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
>>>>>> 20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
>>>>>> 20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
>>>>>> 20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>>>>> 20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>>>>> 20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
>>>>>> 20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>>>> at smaurice_5007:17
>>>>>> (anonymous) @ smaurice_5007:17
>>>>>> 20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>>>>> at HTMLDocument.fn (smaurice_5007:40)
>>>>>> fn @ smaurice_5007:40
>>>>>> 20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>>>>> 20:52:54.799 bridge.js:1 Connected: Port {}
>>>>>> 20:52:54.805 bridge.js:1 Done.
>>>>>> 20:52:54.806 detection.js:1 +content/detection.js
>>>>>> 20:52:54.808 detection.js:1 -content/detection.js
>>>>>> //////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS
>>>>>>
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
>>>>>> Server: nginx/1.12.1
>>>>>> Date: Mon, 25 Sep 2017 00:52:55 GMT
>>>>>> Content-Type: text/html; charset=UTF-8
>>>>>> Transfer-Encoding: chunked
>>>>>> Connection: keep-alive
>>>>>> Content-Encoding: gzip
>>>>>>
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28
>>>>>>
>>>>>> /////////////////////////////////////////////////////////////// BOKEH JS Page source
>>>>>> <!DOCTYPE html>
>>>>>> <html lang="en">
>>>>>> <head>
>>>>>> <meta charset="utf-8">
>>>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>>>> <script type="text/javascript">
>>>>>> Bokeh.set_log_level("info");
>>>>>> </script>
>>>>>> <style>
>>>>>> html {
>>>>>> width: 100%;
>>>>>> height: 100%;
>>>>>> }
>>>>>> body {
>>>>>> width: 90%;
>>>>>> height: 100%;
>>>>>> margin: auto;
>>>>>> }
>>>>>> </style>
>>>>>> </head>
>>>>>> <body>
>>>>>> <div class="bk-root">
>>>>>> <div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
>>>>>> </div>
>>>>>> <script type="text/javascript">
>>>>>> (function() {
>>>>>> var fn = function() {
>>>>>> Bokeh.safely(function() {
>>>>>> var docs_json = {};
>>>>>> var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
>>>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>>>> });
>>>>>> };
>>>>>> if (document.readyState != "loading") fn();
>>>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>>>> })();
>>>>>> </script>
>>>>>> </body>
>>>>>> </html>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>> Two quick comments:
>>>>>>
>>>>>> The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.
>>>>>>
>>>>>> I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Bryan
>>>>>>
>>>>>>> On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>
>>>>>>> I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation
>>>>>>>
>>>>>>> So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.
>>>>>>>
>>>>>>> thanks
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>> Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.
>>>>>>>
>>>>>>> Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.
>>>>>>>
>>>>>>> Thank you again!
>>>>>>>
>>>>>>> On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
>>>>>>> If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Bryan
>>>>>>>
>>>>>>>> On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>
>>>>>>>> Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
>>>>>>>>
>>>>>>>> On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>> Clarify: that *section* has the effect of bypassing the Bokeh server
>>>>>>>>
>>>>>>>> Bryan
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Sep 24, 2017, at 16:52, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>
>>>>>>>>> I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
>>>>>>>>>
>>>>>>>>> Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
>>>>>>>>>
>>>>>>>>> When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
>>>>>>>>>
>>>>>>>>> Bryan
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>>
>>>>>>>>>> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
>>>>>>>>>>
>>>>>>>>>> Bryan
>>>>>>>>>>
>>>>>>>>>> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Set up layouts and add to document
>>>>>>>>>>> inputs = widgetbox(myobjs)
>>>>>>>>>>> mainrow=column(plot,data_table)
>>>>>>>>>>> mainrow2=row(mainrow,inputs)
>>>>>>>>>>>
>>>>>>>>>>> if objcnt-1==0:
>>>>>>>>>>> mainlayout=column(mainrow2)
>>>>>>>>>>> curdoc().add_root(mainlayout)
>>>>>>>>>>> else:
>>>>>>>>>>> mainlayout.children[0]=column(mainrow2)
>>>>>>>>>>> curdoc().title = "OTICS WHAT-IF ENGINE"
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
>>>>>>>>>>>
>>>>>>>>>>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
>>>>>>>>>>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
>>>>>>>>>>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
>>>>>>>>>>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>>>>>>>>>
>>>>>>>>>>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
>>>>>>>>>>>
>>>>>>>>>>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
>>>>>>>>>>>
>>>>>>>>>>> Bryan
>>>>>>>>>>>
>>>>>>>>>>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Attached is the proxy conf:
>>>>>>>>>>>>
>>>>>>>>>>>> server {
>>>>>>>>>>>> listen 443;
>>>>>>>>>>>> server_name www.analytix.ai;
>>>>>>>>>>>> charset utf-8;
>>>>>>>>>>>> client_max_body_size 30M;
>>>>>>>>>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>>>>>>>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>>>>>>>>>>
>>>>>>>>>>>> #The internal IP of the VM that hosts your Apache config
>>>>>>>>>>>>
>>>>>>>>>>>> location /{
>>>>>>>>>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>>>>>>>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>>>>>>>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>>>>>>>>>>
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> proxy_http_version 1.1;
>>>>>>>>>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>>>>>>>>>> proxy_set_header Host www.analytix.ai;
>>>>>>>>>>>> proxy_set_header Upgrade $http_upgrade;
>>>>>>>>>>>> proxy_set_header Connection "upgrade";
>>>>>>>>>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>>>>>>>>>> sub_filter_once off;
>>>>>>>>>>>>
>>>>>>>>>>>> proxy_buffering off;
>>>>>>>>>>>>
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> location ~ ^/(\d+)/static/ {
>>>>>>>>>>>> #location /static/ {
>>>>>>>>>>>> autoindex on;
>>>>>>>>>>>> alias /bokehstatic/static/;
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
>>>>>>>>>>>>
>>>>>>>>>>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <!DOCTYPE html>
>>>>>>>>>>>> <html lang="en">
>>>>>>>>>>>> <head>
>>>>>>>>>>>> <meta charset="utf-8">
>>>>>>>>>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>>>>>>>>>> <script type="text/javascript">
>>>>>>>>>>>> Bokeh.set_log_level("info");
>>>>>>>>>>>> </script>
>>>>>>>>>>>> <style>
>>>>>>>>>>>> html {
>>>>>>>>>>>> width: 100%;
>>>>>>>>>>>> height: 100%;
>>>>>>>>>>>> }
>>>>>>>>>>>> body {
>>>>>>>>>>>> width: 90%;
>>>>>>>>>>>> height: 100%;
>>>>>>>>>>>> margin: auto;
>>>>>>>>>>>> }
>>>>>>>>>>>> </style>
>>>>>>>>>>>> </head>
>>>>>>>>>>>> <body>
>>>>>>>>>>>> <div class="bk-root">
>>>>>>>>>>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
>>>>>>>>>>>> </div>
>>>>>>>>>>>> <script type="text/javascript">
>>>>>>>>>>>> (function() {
>>>>>>>>>>>> var fn = function() {
>>>>>>>>>>>> Bokeh.safely(function() {
>>>>>>>>>>>> var docs_json = {};
>>>>>>>>>>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
>>>>>>>>>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>>>>>>>>>> });
>>>>>>>>>>>> };
>>>>>>>>>>>> if (document.readyState != "loading") fn();
>>>>>>>>>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>>>>>>>>>> })();
>>>>>>>>>>>> </script>
>>>>>>>>>>>> </body>
>>>>>>>>>>>> </html>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> -----
>>>>>>>>>>> Sebastian Maurice, PhD
>>>>>>>>>>> Mobile: 403-612-5443
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> -----
>>>>>>>> Sebastian Maurice, PhD
>>>>>>>> Mobile: 403-612-5443
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> -----
>>>>>>> Sebastian Maurice, PhD
>>>>>>> Mobile: 403-612-5443
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> -----
>>>>>> Sebastian Maurice, PhD
>>>>>> Mobile: 403-612-5443
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
>>>>> To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> -----
>>>>> Sebastian Maurice, PhD
>>>>> Mobile: 403-612-5443
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.
>>>
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>>
>>>
>>> --
>>> -----
>>> Sebastian Maurice, PhD
>>> Mobile: 403-612-5443
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>> To post to this group, send email to bokeh@continuum.io.
>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com\.
>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>
>>
>>
>> --
>> -----
>> Sebastian Maurice, PhD
>> Mobile: 403-612-5443
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>> To post to this group, send email to bokeh@continuum.io.
>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com\.
>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>> <bokehscreen.png>
>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Bryan
Bryan

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

  http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5

In my browsers the bokeh server log reports:

  2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren't seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan

···

On Sep 25, 2017, at 08:28, Bryan Van de ven <bryan@bokeh.org> wrote:

I don't think that can be the case. Here is some output from when Bokeh server gets a request but can't satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2
~/work/bokeh/examples/app bryanv/canonical_embed*
❯ bokeh serve --show --log-level=debug image_blur.py
2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)
2017-09-25 08:26:54,867 These host origins can connect to the websocket: ['localhost:5006']
2017-09-25 08:26:54,868 Patterns are:
2017-09-25 08:26:54,868 [('/image_blur/?',
2017-09-25 08:26:54,868 <class 'bokeh.server.views.doc_handler.DocHandler'>,
2017-09-25 08:26:54,868 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,868 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,868 ('/image_blur/ws',
2017-09-25 08:26:54,868 <class 'bokeh.server.views.ws.WSHandler'>,
2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,869 ('/image_blur/metadata',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.metadata_handler.MetadataHandler'>,
2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,869 ('/image_blur/autoload.js',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.autoload_js_handler.AutoloadJsHandler'>,
2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
2017-09-25 08:26:54,869 ('/?',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.root_handler.RootHandler'>,
2017-09-25 08:26:54,869 {'applications': {'/image_blur': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},
2017-09-25 08:26:54,869 'prefix': '',
2017-09-25 08:26:54,869 'use_redirect': True}),
2017-09-25 08:26:54,869 ('/static/(.*)',
2017-09-25 08:26:54,869 <class 'bokeh.server.views.static_handler.StaticHandler'>)]
2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur
2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589
2017-09-25 08:26:55,552 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js'
2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js'
2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js'
2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js'
2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css'
2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css'
2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css'
2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms
2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms
2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms
2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms
2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms
2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms
2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms
2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403's, they would show up here, just like these 404's do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Thanks...i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
Since it's the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

               if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                       proxy_pass http://192.168.0.101:$1/$2/;
                       #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

               }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven <bryan@bokeh.org> wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and "access" one and and "error" one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="5f39c29f-5c27-432b-8872-bbc21a5123da"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"5f39c29f-5c27-432b-8872-bbc21a5123da","sessionid":"Rh0VcsYTTwbiZHzneNlQs5It9pRq2LJYrG1nchvcQdRd","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:
'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven <bryan@bokeh.org> wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

      Tornado StaticFileHandler · GitHub

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

No problem. I removed the static and re started nginx: (no luck)

server {
  listen 443;
    server_name www.analytix.ai;
        charset utf-8;
  client_max_body_size 30M;
  access_log C:/CORE_FILES/nginxlog/access.log;
  error_log C:/CORE_FILES/nginxlog/error.log debug;

    #The internal IP of the VM that hosts your Apache config

   location /{
            if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                    proxy_pass http://192.168.0.101:$1/$2/;
                    #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

            }

      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host www.analytix.ai;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
            sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
      sub_filter_once off;

      proxy_buffering off;

  }

}
//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
  at smaurice_5007:17
20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
  at HTMLDocument.fn (smaurice_5007:40)
20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
  at smaurice_5007:17
(anonymous) @ smaurice_5007:17
20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
  at HTMLDocument.fn (smaurice_5007:40)
fn @ smaurice_5007:40
20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
20:52:54.799 bridge.js:1 Connected: Port {}
20:52:54.805 bridge.js:1 Done.
20:52:54.806 detection.js:1 +content/detection.js
20:52:54.808 detection.js:1 -content/detection.js
//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
Server: nginx/1.12.1
Date: Mon, 25 Sep 2017 00:52:55 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryan@bokeh.org> wrote:
If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
Clarify: that *section* has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven <bryanv@anaconda.com> wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven <bryanv@anaconda.com> wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?

# Set up layouts and add to document
inputs = widgetbox(myobjs)
mainrow=column(plot,data_table)
mainrow2=row(mainrow,inputs)

     if objcnt-1==0:
     mainlayout=column(mainrow2)
     curdoc().add_root(mainlayout)
else:
     mainlayout.children[0]=column(mainrow2)
curdoc().title = "OTICS WHAT-IF ENGINE"

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Attached is the proxy conf:

server {
listen 443;
   server_name www.analytix.ai;
       charset utf-8;
client_max_body_size 30M;
access_log C:/CORE_FILES/nginxlog/access.log;
error_log C:/CORE_FILES/nginxlog/error.log debug;

   #The internal IP of the VM that hosts your Apache config

  location /{
           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass http://192.168.0.101:$1/$2/;
                   #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;

           }

     proxy_http_version 1.1;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Host www.analytix.ai;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
           sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
     sub_filter_once off;

     proxy_buffering off;

}

   location ~ ^/(\d+)/static/ {
   #location /static/ {
   autoindex on;
   alias /bokehstatic/static/;

   }

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OTICS WHAT-IF ENGINE</title>
<link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
<link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
<script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
<script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
<script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
<script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
<script type="text/javascript">
Bokeh.set_log_level("info");
</script>
<style>
html {
width: 100%;
height: 100%;
}
body {
width: 90%;
height: 100%;
margin: auto;
}
</style>
</head>
<body>
<div class="bk-root">
<div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
</div>
<script type="text/javascript">
(function() {
var fn = function() {
Bokeh.safely(function() {
var docs_json = {};
var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
</script>
</body>
</html>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.

For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
<bokehscreen.png>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

···

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server…the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   http://192.168.0.101:$1/$2/;
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403…

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryan@bokeh.org wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   http://192.168.0.101:$1/$2/;
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryanv@anaconda.com wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryanv@anaconda.com wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryanv@anaconda.com wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryanv@anaconda.com wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   http://192.168.0.101:$1/$2/;
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

···

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server…the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403…

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryan@bokeh.org wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryan@bokeh.org wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryan@bokeh.org wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryanv@anaconda.com wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryanv@anaconda.com wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryanv@anaconda.com wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Hi, not sure what you mean..locally it all works.

···

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven bryan@bokeh.org wrote:

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehexp1.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

I mean you need to try and load the static resources by going through the nginx proxy, not by connecting directly to localhost. Something like

http:////static/…

Ie add the relative urls that start with “static” to your real address for the app from the proxy. The point is to see how the proxy is behaving.

Bryan

···

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven bryan@bokeh.org wrote:

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehexp1.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryanv@anaconda.com wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryanv@anaconda.com wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

Trying to debug over email does not seem to be being very effective. As I mentioned I am occupied from now through the rest of this week. If you can put a compete reproducing example with everything needed to run and duplicate the issue in a GH repo or similar then I can try to run things myself next week.

Thanks,

Bryan

···

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven bryanv@anaconda.com wrote:

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehexp1.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryanv@anaconda.com wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Hi

i put all the files in the repo: https://github.com/smaurice101/bokehnginxpub

Good luck - I just cannot get it to work.

···

On Mon, Sep 25, 2017 at 11:35 AM, Bryan Van de ven bryan@bokeh.org wrote:

Trying to debug over email does not seem to be being very effective. As I mentioned I am occupied from now through the rest of this week. If you can put a compete reproducing example with everything needed to run and duplicate the issue in a GH repo or similar then I can try to run things myself next week.

Thanks,

Bryan

On Sep 25, 2017, at 10:29, Bryan Van de ven bryan@bokeh.org wrote:

I mean you need to try and load the static resources by going through the nginx proxy, not by connecting directly to localhost. Something like

http:////static/…

Ie add the relative urls that start with “static” to your real address for the app from the proxy. The point is to see how the proxy is behaving.

Bryan

On Sep 25, 2017, at 09:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Hi, not sure what you mean..locally it all works.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rG-Hnm_B%3DsX6KmLtEh6UAXxEb26h0W47%3D43Uu_9jKuKoA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehplot.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/03CCE490-C414-42CD-BD01-F4A095BC76AE%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven bryan@bokeh.org wrote:

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehexp1.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   [http://192.168.0.101:$1/$2/](http://192.168.0.101:%241/%242/);
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

–

Sebastian Maurice, PhD

Mobile: 403-612-5443


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

Thanks, I'll take a look first thing next week when I return.

Bryan

···

On Sep 25, 2017, at 18:17, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Hi

i put all the files in the repo: GitHub - smaurice101/bokehnginxpub: bokehnginx

Good luck - I just cannot get it to work.

On Mon, Sep 25, 2017 at 11:35 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
Trying to debug over email does not seem to be being very effective. As I mentioned I am occupied from now through the rest of this week. If you can put a compete reproducing example with everything needed to run and duplicate the issue in a GH repo or similar then I can try to run things myself next week.

Thanks,

Bryan

On Sep 25, 2017, at 10:29, Bryan Van de ven <bryan@bokeh.org> wrote:

I mean you need to try and load the static resources by going through the nginx proxy, not by connecting directly to localhost. Something like

    http://<real ip or hostname>/<app path>/static/...

Ie add the relative urls that start with “static” to your real address for the app from the proxy. The point is to see how the proxy is behaving.

Bryan

On Sep 25, 2017, at 09:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Hi, not sure what you mean..locally it all works.

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

        http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5

In my browsers the bokeh server log reports:

        2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren't seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan

> On Sep 25, 2017, at 08:28, Bryan Van de ven <bryan@bokeh.org> wrote:
>
> I don't think that can be the case. Here is some output from when Bokeh server gets a request but can't satisfy it (in this case I moved the static folder, so there are 404s seen):
>
> ❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2
> ~/work/bokeh/examples/app bryanv/canonical_embed*
> ❯ bokeh serve --show --log-level=debug image_blur.py
> 2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)
> 2017-09-25 08:26:54,867 These host origins can connect to the websocket: ['localhost:5006']
> 2017-09-25 08:26:54,868 Patterns are:
> 2017-09-25 08:26:54,868 [('/image_blur/?',
> 2017-09-25 08:26:54,868 <class 'bokeh.server.views.doc_handler.DocHandler'>,
> 2017-09-25 08:26:54,868 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
> 2017-09-25 08:26:54,868 'bokeh_websocket_path': '/image_blur/ws'}),
> 2017-09-25 08:26:54,868 ('/image_blur/ws',
> 2017-09-25 08:26:54,868 <class 'bokeh.server.views.ws.WSHandler'>,
> 2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
> 2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
> 2017-09-25 08:26:54,869 ('/image_blur/metadata',
> 2017-09-25 08:26:54,869 <class 'bokeh.server.views.metadata_handler.MetadataHandler'>,
> 2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
> 2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
> 2017-09-25 08:26:54,869 ('/image_blur/autoload.js',
> 2017-09-25 08:26:54,869 <class 'bokeh.server.views.autoload_js_handler.AutoloadJsHandler'>,
> 2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
> 2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
> 2017-09-25 08:26:54,869 ('/?',
> 2017-09-25 08:26:54,869 <class 'bokeh.server.views.root_handler.RootHandler'>,
> 2017-09-25 08:26:54,869 {'applications': {'/image_blur': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},
> 2017-09-25 08:26:54,869 'prefix': '',
> 2017-09-25 08:26:54,869 'use_redirect': True}),
> 2017-09-25 08:26:54,869 ('/static/(.*)',
> 2017-09-25 08:26:54,869 <class 'bokeh.server.views.static_handler.StaticHandler'>)]
> 2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur
> 2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589
> 2017-09-25 08:26:55,552 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js'
> 2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js'
> 2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js'
> 2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js'
> 2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css'
> 2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css'
> 2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css'
> 2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms
> 2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms
> 2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms
> 2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms
> 2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms
> 2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms
> 2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms
> 2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms
>
>
> If Bokeh was issuing the 403's, they would show up here, just like these 404's do
>
> Bryan
>
>> On Sep 25, 2017, at 08:19, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>
>> Thanks...i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.
>>
>> On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>> Since it's the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:
>>
>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>> proxy_pass http://192.168.0.101:$1/$2/;
>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>
>> }
>>
>> Thanks,
>>
>> Bryan
>>
>>> On Sep 25, 2017, at 08:09, Bryan Van de ven <bryan@bokeh.org> wrote:
>>>
>>> OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and "access" one and and "error" one. you might try looking in both for more information about why nginx is doing this.
>>>
>>> Thanks,
>>>
>>> Bryan
>>>
>>>> On Sep 25, 2017, at 08:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>
>>>> Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..
>>>>
>>>> <!DOCTYPE html>
>>>> <html lang="en">
>>>> <head>
>>>> <meta charset="utf-8">
>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>> <script type="text/javascript">
>>>> Bokeh.set_log_level("info");
>>>> </script>
>>>> <style>
>>>> html {
>>>> width: 100%;
>>>> height: 100%;
>>>> }
>>>> body {
>>>> width: 90%;
>>>> height: 100%;
>>>> margin: auto;
>>>> }
>>>> </style>
>>>> </head>
>>>> <body>
>>>> <div class="bk-root">
>>>> <div class="bk-plotdiv" id="5f39c29f-5c27-432b-8872-bbc21a5123da"></div>
>>>> </div>
>>>> <script type="text/javascript">
>>>> (function() {
>>>> var fn = function() {
>>>> Bokeh.safely(function() {
>>>> var docs_json = {};
>>>> var render_items = [{"elementid":"5f39c29f-5c27-432b-8872-bbc21a5123da","sessionid":"Rh0VcsYTTwbiZHzneNlQs5It9pRq2LJYrG1nchvcQdRd","use_for_title":true}];
>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>> });
>>>> };
>>>> if (document.readyState != "loading") fn();
>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>> })();
>>>> </script>
>>>> </body>
>>>> </html>
>>>>
>>>> On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.
>>>>
>>>> Bryan
>>>>
>>>>> On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>
>>>>> I ran this command:
>>>>>
>>>>>>>> bokeh.util.paths.bokehjsdir()
>>>>>
>>>>> Result:
>>>>> 'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>> We do use join, etc here
>>>>>
>>>>> https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py
>>>>>
>>>>> So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?
>>>>>
>>>>> On Sep 24, 2017, at 22:15, Bryan Van de ven <bryan@bokeh.org> wrote:
>>>>>
>>>>>> Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.
>>>>>>
>>>>>> Bryan
>>>>>>
>>>>>> On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>
>>>>>>> Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?
>>>>>>>
>>>>>>> thanks for the additional information. Will look at it.
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>> OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:
>>>>>>>
>>>>>>> Tornado StaticFileHandler · GitHub
>>>>>>>
>>>>>>> Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Bryan
>>>>>>>
>>>>>>>> On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>
>>>>>>>> No problem. I removed the static and re started nginx: (no luck)
>>>>>>>>
>>>>>>>> server {
>>>>>>>> listen 443;
>>>>>>>> server_name www.analytix.ai;
>>>>>>>> charset utf-8;
>>>>>>>> client_max_body_size 30M;
>>>>>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>>>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>>>>>>
>>>>>>>> #The internal IP of the VM that hosts your Apache config
>>>>>>>>
>>>>>>>> location /{
>>>>>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>>>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>>>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>>>>>>
>>>>>>>> }
>>>>>>>>
>>>>>>>> proxy_http_version 1.1;
>>>>>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>>>>>> proxy_set_header Host www.analytix.ai;
>>>>>>>> proxy_set_header Upgrade $http_upgrade;
>>>>>>>> proxy_set_header Connection "upgrade";
>>>>>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>>>>>> sub_filter_once off;
>>>>>>>>
>>>>>>>> proxy_buffering off;
>>>>>>>>
>>>>>>>> }
>>>>>>>>
>>>>>>>> }
>>>>>>>> //////////////////////////////////////////////////////////JS console:
>>>>>>>>
>>>>>>>> Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>>>>>> at smaurice_5007:17
>>>>>>>> 20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>>>>>>> at HTMLDocument.fn (smaurice_5007:40)
>>>>>>>> 20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>>>>>>> 20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
>>>>>>>> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
>>>>>>>> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
>>>>>>>> 20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
>>>>>>>> 20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>>>>>> 20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
>>>>>>>> 20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
>>>>>>>> 20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
>>>>>>>> 20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>>>>>>> 20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>>>>>>> 20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
>>>>>>>> 20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
>>>>>>>> 20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
>>>>>>>> 20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>>>>>>> 20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>>>>>>> 20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
>>>>>>>> 20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>>>>>> at smaurice_5007:17
>>>>>>>> (anonymous) @ smaurice_5007:17
>>>>>>>> 20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>>>>>>> at HTMLDocument.fn (smaurice_5007:40)
>>>>>>>> fn @ smaurice_5007:40
>>>>>>>> 20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>>>>>>> 20:52:54.799 bridge.js:1 Connected: Port {}
>>>>>>>> 20:52:54.805 bridge.js:1 Done.
>>>>>>>> 20:52:54.806 detection.js:1 +content/detection.js
>>>>>>>> 20:52:54.808 detection.js:1 -content/detection.js
>>>>>>>> //////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS
>>>>>>>>
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
>>>>>>>> Server: nginx/1.12.1
>>>>>>>> Date: Mon, 25 Sep 2017 00:52:55 GMT
>>>>>>>> Content-Type: text/html; charset=UTF-8
>>>>>>>> Transfer-Encoding: chunked
>>>>>>>> Connection: keep-alive
>>>>>>>> Content-Encoding: gzip
>>>>>>>>
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
>>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
>>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
>>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28
>>>>>>>>
>>>>>>>> /////////////////////////////////////////////////////////////// BOKEH JS Page source
>>>>>>>> <!DOCTYPE html>
>>>>>>>> <html lang="en">
>>>>>>>> <head>
>>>>>>>> <meta charset="utf-8">
>>>>>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>>>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>>>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>>>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>>>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>>>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>>>>>> <script type="text/javascript">
>>>>>>>> Bokeh.set_log_level("info");
>>>>>>>> </script>
>>>>>>>> <style>
>>>>>>>> html {
>>>>>>>> width: 100%;
>>>>>>>> height: 100%;
>>>>>>>> }
>>>>>>>> body {
>>>>>>>> width: 90%;
>>>>>>>> height: 100%;
>>>>>>>> margin: auto;
>>>>>>>> }
>>>>>>>> </style>
>>>>>>>> </head>
>>>>>>>> <body>
>>>>>>>> <div class="bk-root">
>>>>>>>> <div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
>>>>>>>> </div>
>>>>>>>> <script type="text/javascript">
>>>>>>>> (function() {
>>>>>>>> var fn = function() {
>>>>>>>> Bokeh.safely(function() {
>>>>>>>> var docs_json = {};
>>>>>>>> var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
>>>>>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>>>>>> });
>>>>>>>> };
>>>>>>>> if (document.readyState != "loading") fn();
>>>>>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>>>>>> })();
>>>>>>>> </script>
>>>>>>>> </body>
>>>>>>>> </html>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>> Two quick comments:
>>>>>>>>
>>>>>>>> The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.
>>>>>>>>
>>>>>>>> I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> Bryan
>>>>>>>>
>>>>>>>>> On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation
>>>>>>>>>
>>>>>>>>> So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.
>>>>>>>>>
>>>>>>>>> thanks
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>> Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.
>>>>>>>>>
>>>>>>>>> Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.
>>>>>>>>>
>>>>>>>>> Thank you again!
>>>>>>>>>
>>>>>>>>> On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryanv@anaconda.com> wrote:
>>>>>>>>> If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>
>>>>>>>>> Bryan
>>>>>>>>>
>>>>>>>>>> On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
>>>>>>>>>>
>>>>>>>>>> On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>> Clarify: that *section* has the effect of bypassing the Bokeh server
>>>>>>>>>>
>>>>>>>>>> Bryan
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> On Sep 24, 2017, at 16:52, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
>>>>>>>>>>>
>>>>>>>>>>> Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
>>>>>>>>>>>
>>>>>>>>>>> When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
>>>>>>>>>>>
>>>>>>>>>>> Bryan
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
>>>>>>>>>>>>
>>>>>>>>>>>> Bryan
>>>>>>>>>>>>
>>>>>>>>>>>> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> # Set up layouts and add to document
>>>>>>>>>>>>> inputs = widgetbox(myobjs)
>>>>>>>>>>>>> mainrow=column(plot,data_table)
>>>>>>>>>>>>> mainrow2=row(mainrow,inputs)
>>>>>>>>>>>>>
>>>>>>>>>>>>> if objcnt-1==0:
>>>>>>>>>>>>> mainlayout=column(mainrow2)
>>>>>>>>>>>>> curdoc().add_root(mainlayout)
>>>>>>>>>>>>> else:
>>>>>>>>>>>>> mainlayout.children[0]=column(mainrow2)
>>>>>>>>>>>>> curdoc().title = "OTICS WHAT-IF ENGINE"
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>>>>>>>>>>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
>>>>>>>>>>>>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
>>>>>>>>>>>>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
>>>>>>>>>>>>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>>>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>>>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>>>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
>>>>>>>>>>>>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>>>>>>>>>>>
>>>>>>>>>>>>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Bryan
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Attached is the proxy conf:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> server {
>>>>>>>>>>>>>> listen 443;
>>>>>>>>>>>>>> server_name www.analytix.ai;
>>>>>>>>>>>>>> charset utf-8;
>>>>>>>>>>>>>> client_max_body_size 30M;
>>>>>>>>>>>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>>>>>>>>>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> #The internal IP of the VM that hosts your Apache config
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> location /{
>>>>>>>>>>>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>>>>>>>>>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>>>>>>>>>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> proxy_http_version 1.1;
>>>>>>>>>>>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>>>>>>>>>>>> proxy_set_header Host www.analytix.ai;
>>>>>>>>>>>>>> proxy_set_header Upgrade $http_upgrade;
>>>>>>>>>>>>>> proxy_set_header Connection "upgrade";
>>>>>>>>>>>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>>>>>>>>>>>> sub_filter_once off;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> proxy_buffering off;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> location ~ ^/(\d+)/static/ {
>>>>>>>>>>>>>> #location /static/ {
>>>>>>>>>>>>>> autoindex on;
>>>>>>>>>>>>>> alias /bokehstatic/static/;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <!DOCTYPE html>
>>>>>>>>>>>>>> <html lang="en">
>>>>>>>>>>>>>> <head>
>>>>>>>>>>>>>> <meta charset="utf-8">
>>>>>>>>>>>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>>>>>>>>>>>> <script type="text/javascript">
>>>>>>>>>>>>>> Bokeh.set_log_level("info");
>>>>>>>>>>>>>> </script>
>>>>>>>>>>>>>> <style>
>>>>>>>>>>>>>> html {
>>>>>>>>>>>>>> width: 100%;
>>>>>>>>>>>>>> height: 100%;
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>> body {
>>>>>>>>>>>>>> width: 90%;
>>>>>>>>>>>>>> height: 100%;
>>>>>>>>>>>>>> margin: auto;
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>> </style>
>>>>>>>>>>>>>> </head>
>>>>>>>>>>>>>> <body>
>>>>>>>>>>>>>> <div class="bk-root">
>>>>>>>>>>>>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
>>>>>>>>>>>>>> </div>
>>>>>>>>>>>>>> <script type="text/javascript">
>>>>>>>>>>>>>> (function() {
>>>>>>>>>>>>>> var fn = function() {
>>>>>>>>>>>>>> Bokeh.safely(function() {
>>>>>>>>>>>>>> var docs_json = {};
>>>>>>>>>>>>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
>>>>>>>>>>>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>>>>>>>>>>>> });
>>>>>>>>>>>>>> };
>>>>>>>>>>>>>> if (document.readyState != "loading") fn();
>>>>>>>>>>>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>>>>>>>>>>>> })();
>>>>>>>>>>>>>> </script>
>>>>>>>>>>>>>> </body>
>>>>>>>>>>>>>> </html>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
>>>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
>>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> -----
>>>>>>>>>>>>> Sebastian Maurice, PhD
>>>>>>>>>>>>> Mobile: 403-612-5443
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
>>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> -----
>>>>>>>>>> Sebastian Maurice, PhD
>>>>>>>>>> Mobile: 403-612-5443
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> -----
>>>>>>>>> Sebastian Maurice, PhD
>>>>>>>>> Mobile: 403-612-5443
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> -----
>>>>>>>> Sebastian Maurice, PhD
>>>>>>>> Mobile: 403-612-5443
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
>>>>>>> To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> -----
>>>>>>> Sebastian Maurice, PhD
>>>>>>> Mobile: 403-612-5443
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.
>>>>>
>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> -----
>>>>> Sebastian Maurice, PhD
>>>>> Mobile: 403-612-5443
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>>> To post to this group, send email to bokeh@continuum.io.
>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> To post to this group, send email to bokeh@continuum.io.
>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com\.
>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>
>>>>
>>>>
>>>> --
>>>> -----
>>>> Sebastian Maurice, PhD
>>>> Mobile: 403-612-5443
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> To post to this group, send email to bokeh@continuum.io.
>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com\.
>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> <bokehscreen.png>
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>> To post to this group, send email to bokeh@continuum.io.
>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com\.
>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>
>>
>>
>> --
>> -----
>> Sebastian Maurice, PhD
>> Mobile: 403-612-5443
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>> To post to this group, send email to bokeh@continuum.io.
>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com\.
>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
<bokehexp1.png>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com\.

For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rG-Hnm_B%3DsX6KmLtEh6UAXxEb26h0W47%3D43Uu_9jKuKoA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
<bokehplot.png>

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/03CCE490-C414-42CD-BD01-F4A095BC76AE%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rE9aWkxrRQ7wHO5T9HJMm9sMALEygOJWubhuiRSOMSmNw%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Hi Bryan - let me know if you need anything more. I tried over the weekend again and no luck getting it to work. i am getting a 403 forbidden from NGINX. NGINX has access to the Bokeh server directory - so i just don’t get it. Really getting frustrating…it almost seems i am the only one on the planet experiencing this issue, very lonely out here :slight_smile: Look forward to an update.

···

On Mon, Sep 25, 2017 at 7:07 PM, Bryan Van de ven bryan@bokeh.org wrote:

Thanks, I’ll take a look first thing next week when I return.

Bryan

On Sep 25, 2017, at 18:17, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Hi

i put all the files in the repo: https://github.com/smaurice101/bokehnginxpub

Good luck - I just cannot get it to work.

On Mon, Sep 25, 2017 at 11:35 AM, Bryan Van de ven bryan@bokeh.org wrote:

Trying to debug over email does not seem to be being very effective. As I mentioned I am occupied from now through the rest of this week. If you can put a compete reproducing example with everything needed to run and duplicate the issue in a GH repo or similar then I can try to run things myself next week.

Thanks,

Bryan

On Sep 25, 2017, at 10:29, Bryan Van de ven bryan@bokeh.org wrote:

I mean you need to try and load the static resources by going through the nginx proxy, not by connecting directly to localhost. Something like

http://<real ip or hostname>/<app path>/static/...

Ie add the relative urls that start with “static” to your real address for the app from the proxy. The point is to see how the proxy is behaving.

Bryan

On Sep 25, 2017, at 09:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Hi, not sure what you mean…locally it all works.

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven bryan@bokeh.org wrote:

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server…the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   http://192.168.0.101:$1/$2/;
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403…

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryan@bokeh.org wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   http://192.168.0.101:$1/$2/;
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryanv@anaconda.com wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   http://192.168.0.101:$1/$2/;
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehexp1.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rG-Hnm_B%3DsX6KmLtEh6UAXxEb26h0W47%3D43Uu_9jKuKoA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehplot.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/03CCE490-C414-42CD-BD01-F4A095BC76AE%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rE9aWkxrRQ7wHO5T9HJMm9sMALEygOJWubhuiRSOMSmNw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2698A794-EAD9-4011-8517-069054DB7799%40anaconda.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

I am going to try and get a windows vm stood up tomorrow.

Bryan

···

On Oct 2, 2017, at 17:27, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:

Hi Bryan - let me know if you need anything more. I tried over the weekend again and no luck getting it to work. i am getting a 403 forbidden from NGINX. NGINX has access to the Bokeh server directory - so i just don't get it. Really getting frustrating...it almost seems i am the only one on the planet experiencing this issue, very lonely out here :slight_smile: Look forward to an update.

On Mon, Sep 25, 2017 at 7:07 PM, Bryan Van de ven <bryan@bokeh.org> wrote:
Thanks, I'll take a look first thing next week when I return.

Bryan

> On Sep 25, 2017, at 18:17, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>
> Hi
>
> i put all the files in the repo: GitHub - smaurice101/bokehnginxpub: bokehnginx
>
> Good luck - I just cannot get it to work.
>
> On Mon, Sep 25, 2017 at 11:35 AM, Bryan Van de ven <bryan@bokeh.org> wrote:
> Trying to debug over email does not seem to be being very effective. As I mentioned I am occupied from now through the rest of this week. If you can put a compete reproducing example with everything needed to run and duplicate the issue in a GH repo or similar then I can try to run things myself next week.
>
> Thanks,
>
> Bryan
>
> On Sep 25, 2017, at 10:29, Bryan Van de ven <bryan@bokeh.org> wrote:
>
>> I mean you need to try and load the static resources by going through the nginx proxy, not by connecting directly to localhost. Something like
>>
>> http://<real ip or hostname>/<app path>/static/...
>>
>> Ie add the relative urls that start with “static” to your real address for the app from the proxy. The point is to see how the proxy is behaving.
>>
>> Bryan
>>
>> On Sep 25, 2017, at 09:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>
>>> Hi, not sure what you mean..locally it all works.
>>>
>>> On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>> Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.
>>>
>>> Bryan
>>>
>>> On Sep 25, 2017, at 08:50, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>
>>>> Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.
>>>>
>>>> On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.
>>>>
>>>> http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5
>>>>
>>>> In my browsers the bokeh server log reports:
>>>>
>>>> 2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms
>>>>
>>>> If you aren't seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.
>>>>
>>>> Bryan
>>>>
>>>> > On Sep 25, 2017, at 08:28, Bryan Van de ven <bryan@bokeh.org> wrote:
>>>> >
>>>> > I don't think that can be the case. Here is some output from when Bokeh server gets a request but can't satisfy it (in this case I moved the static folder, so there are 404s seen):
>>>> >
>>>> > ❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2
>>>> > ~/work/bokeh/examples/app bryanv/canonical_embed*
>>>> > ❯ bokeh serve --show --log-level=debug image_blur.py
>>>> > 2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)
>>>> > 2017-09-25 08:26:54,867 These host origins can connect to the websocket: ['localhost:5006']
>>>> > 2017-09-25 08:26:54,868 Patterns are:
>>>> > 2017-09-25 08:26:54,868 [('/image_blur/?',
>>>> > 2017-09-25 08:26:54,868 <class 'bokeh.server.views.doc_handler.DocHandler'>,
>>>> > 2017-09-25 08:26:54,868 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
>>>> > 2017-09-25 08:26:54,868 'bokeh_websocket_path': '/image_blur/ws'}),
>>>> > 2017-09-25 08:26:54,868 ('/image_blur/ws',
>>>> > 2017-09-25 08:26:54,868 <class 'bokeh.server.views.ws.WSHandler'>,
>>>> > 2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
>>>> > 2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
>>>> > 2017-09-25 08:26:54,869 ('/image_blur/metadata',
>>>> > 2017-09-25 08:26:54,869 <class 'bokeh.server.views.metadata_handler.MetadataHandler'>,
>>>> > 2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
>>>> > 2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
>>>> > 2017-09-25 08:26:54,869 ('/image_blur/autoload.js',
>>>> > 2017-09-25 08:26:54,869 <class 'bokeh.server.views.autoload_js_handler.AutoloadJsHandler'>,
>>>> > 2017-09-25 08:26:54,869 {'application_context': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,
>>>> > 2017-09-25 08:26:54,869 'bokeh_websocket_path': '/image_blur/ws'}),
>>>> > 2017-09-25 08:26:54,869 ('/?',
>>>> > 2017-09-25 08:26:54,869 <class 'bokeh.server.views.root_handler.RootHandler'>,
>>>> > 2017-09-25 08:26:54,869 {'applications': {'/image_blur': <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},
>>>> > 2017-09-25 08:26:54,869 'prefix': '',
>>>> > 2017-09-25 08:26:54,869 'use_redirect': True}),
>>>> > 2017-09-25 08:26:54,869 ('/static/(.*)',
>>>> > 2017-09-25 08:26:54,869 <class 'bokeh.server.views.static_handler.StaticHandler'>)]
>>>> > 2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur
>>>> > 2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589
>>>> > 2017-09-25 08:26:55,552 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js'
>>>> > 2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js'
>>>> > 2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js'
>>>> > 2017-09-25 08:26:55,553 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js'
>>>> > 2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css'
>>>> > 2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css'
>>>> > 2017-09-25 08:26:55,554 Could not open static file '/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css'
>>>> > 2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms
>>>> > 2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms
>>>> > 2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms
>>>> > 2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms
>>>> > 2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms
>>>> > 2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms
>>>> > 2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms
>>>> > 2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms
>>>> >
>>>> >
>>>> > If Bokeh was issuing the 403's, they would show up here, just like these 404's do
>>>> >
>>>> > Bryan
>>>> >
>>>> >> On Sep 25, 2017, at 08:19, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>
>>>> >> Thanks...i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server..the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.
>>>> >>
>>>> >> On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >> Since it's the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:
>>>> >>
>>>> >> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>> >> proxy_pass http://192.168.0.101:$1/$2/;
>>>> >> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>> >>
>>>> >> }
>>>> >>
>>>> >> Thanks,
>>>> >>
>>>> >> Bryan
>>>> >>
>>>> >>> On Sep 25, 2017, at 08:09, Bryan Van de ven <bryan@bokeh.org> wrote:
>>>> >>>
>>>> >>> OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and "access" one and and "error" one. you might try looking in both for more information about why nginx is doing this.
>>>> >>>
>>>> >>> Thanks,
>>>> >>>
>>>> >>> Bryan
>>>> >>>
>>>> >>>> On Sep 25, 2017, at 08:01, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>
>>>> >>>> Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403..
>>>> >>>>
>>>> >>>> <!DOCTYPE html>
>>>> >>>> <html lang="en">
>>>> >>>> <head>
>>>> >>>> <meta charset="utf-8">
>>>> >>>> <title>OTICS WHAT-IF ENGINE</title>
>>>> >>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>> >>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>> >>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>> >>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>> >>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>> >>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>> >>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>> >>>> <script type="text/javascript">
>>>> >>>> Bokeh.set_log_level("info");
>>>> >>>> </script>
>>>> >>>> <style>
>>>> >>>> html {
>>>> >>>> width: 100%;
>>>> >>>> height: 100%;
>>>> >>>> }
>>>> >>>> body {
>>>> >>>> width: 90%;
>>>> >>>> height: 100%;
>>>> >>>> margin: auto;
>>>> >>>> }
>>>> >>>> </style>
>>>> >>>> </head>
>>>> >>>> <body>
>>>> >>>> <div class="bk-root">
>>>> >>>> <div class="bk-plotdiv" id="5f39c29f-5c27-432b-8872-bbc21a5123da"></div>
>>>> >>>> </div>
>>>> >>>> <script type="text/javascript">
>>>> >>>> (function() {
>>>> >>>> var fn = function() {
>>>> >>>> Bokeh.safely(function() {
>>>> >>>> var docs_json = {};
>>>> >>>> var render_items = [{"elementid":"5f39c29f-5c27-432b-8872-bbc21a5123da","sessionid":"Rh0VcsYTTwbiZHzneNlQs5It9pRq2LJYrG1nchvcQdRd","use_for_title":true}];
>>>> >>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>> >>>> });
>>>> >>>> };
>>>> >>>> if (document.readyState != "loading") fn();
>>>> >>>> else document.addEventListener("DOMContentLoaded", fn);
>>>> >>>> })();
>>>> >>>> </script>
>>>> >>>> </body>
>>>> >>>> </html>
>>>> >>>>
>>>> >>>> On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>> That's what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.
>>>> >>>>
>>>> >>>> Bryan
>>>> >>>>
>>>> >>>>> On Sep 24, 2017, at 22:38, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>
>>>> >>>>> I ran this command:
>>>> >>>>>
>>>> >>>>>>>> bokeh.util.paths.bokehjsdir()
>>>> >>>>>
>>>> >>>>> Result:
>>>> >>>>> 'C:\\Users\\smaurice\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages\\bokeh\\server\\static'
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>> We do use join, etc here
>>>> >>>>>
>>>> >>>>> https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py
>>>> >>>>>
>>>> >>>>> So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?
>>>> >>>>>
>>>> >>>>> On Sep 24, 2017, at 22:15, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>
>>>> >>>>>> Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.
>>>> >>>>>>
>>>> >>>>>> Bryan
>>>> >>>>>>
>>>> >>>>>> On Sep 24, 2017, at 22:06, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>
>>>> >>>>>>> Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?
>>>> >>>>>>>
>>>> >>>>>>> thanks for the additional information. Will look at it.
>>>> >>>>>>>
>>>> >>>>>>>
>>>> >>>>>>> On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>>> OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:
>>>> >>>>>>>
>>>> >>>>>>> Tornado StaticFileHandler · GitHub
>>>> >>>>>>>
>>>> >>>>>>> Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?
>>>> >>>>>>>
>>>> >>>>>>> Thanks,
>>>> >>>>>>>
>>>> >>>>>>> Bryan
>>>> >>>>>>>
>>>> >>>>>>>> On Sep 24, 2017, at 19:56, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>>>
>>>> >>>>>>>> No problem. I removed the static and re started nginx: (no luck)
>>>> >>>>>>>>
>>>> >>>>>>>> server {
>>>> >>>>>>>> listen 443;
>>>> >>>>>>>> server_name www.analytix.ai;
>>>> >>>>>>>> charset utf-8;
>>>> >>>>>>>> client_max_body_size 30M;
>>>> >>>>>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>> >>>>>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>> >>>>>>>>
>>>> >>>>>>>> #The internal IP of the VM that hosts your Apache config
>>>> >>>>>>>>
>>>> >>>>>>>> location /{
>>>> >>>>>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>> >>>>>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>> >>>>>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>> >>>>>>>>
>>>> >>>>>>>> }
>>>> >>>>>>>>
>>>> >>>>>>>> proxy_http_version 1.1;
>>>> >>>>>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>> >>>>>>>> proxy_set_header Host www.analytix.ai;
>>>> >>>>>>>> proxy_set_header Upgrade $http_upgrade;
>>>> >>>>>>>> proxy_set_header Connection "upgrade";
>>>> >>>>>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>> >>>>>>>> sub_filter_once off;
>>>> >>>>>>>>
>>>> >>>>>>>> proxy_buffering off;
>>>> >>>>>>>>
>>>> >>>>>>>> }
>>>> >>>>>>>>
>>>> >>>>>>>> }
>>>> >>>>>>>> //////////////////////////////////////////////////////////JS console:
>>>> >>>>>>>>
>>>> >>>>>>>> Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>> >>>>>>>> at smaurice_5007:17
>>>> >>>>>>>> 20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>>> >>>>>>>> at HTMLDocument.fn (smaurice_5007:40)
>>>> >>>>>>>> 20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>>> >>>>>>>> 20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port
>>>> >>>>>>>> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.
>>>> >>>>>>>> 20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js
>>>> >>>>>>>> 20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js
>>>> >>>>>>>> 20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)
>>>> >>>>>>>> 20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007
>>>> >>>>>>>> 20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d
>>>> >>>>>>>> 20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604
>>>> >>>>>>>> 20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>>> >>>>>>>> 20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>>> >>>>>>>> 20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e
>>>> >>>>>>>> 20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2
>>>> >>>>>>>> 20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36
>>>> >>>>>>>> 20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)
>>>> >>>>>>>> 20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833
>>>> >>>>>>>> 20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)
>>>> >>>>>>>> 20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>> >>>>>>>> at smaurice_5007:17
>>>> >>>>>>>> (anonymous) @ smaurice_5007:17
>>>> >>>>>>>> 20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined
>>>> >>>>>>>> at HTMLDocument.fn (smaurice_5007:40)
>>>> >>>>>>>> fn @ smaurice_5007:40
>>>> >>>>>>>> 20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND...
>>>> >>>>>>>> 20:52:54.799 bridge.js:1 Connected: Port {}
>>>> >>>>>>>> 20:52:54.805 bridge.js:1 Done.
>>>> >>>>>>>> 20:52:54.806 detection.js:1 +content/detection.js
>>>> >>>>>>>> 20:52:54.808 detection.js:1 -content/detection.js
>>>> >>>>>>>> //////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS
>>>> >>>>>>>>
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:2
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 "403 Forbidden"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Server: TornadoServer/4.5.2"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Type: text/html; charset=UTF-8"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Content-Length: 69"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: "Date: Mon, 25 Sep 2017 00:52:55 GMT"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden
>>>> >>>>>>>> Server: nginx/1.12.1
>>>> >>>>>>>> Date: Mon, 25 Sep 2017 00:52:55 GMT
>>>> >>>>>>>> Content-Type: text/html; charset=UTF-8
>>>> >>>>>>>> Transfer-Encoding: chunked
>>>> >>>>>>>> Connection: keep-alive
>>>> >>>>>>>> Content-Encoding: gzip
>>>> >>>>>>>>
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: "" 0348D730-0348D775
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter "/5007/static/js/bokeh-gl.min.js"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" 0342BD70
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, "/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36" a:1, c:1
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1
>>>> >>>>>>>> 2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000
>>>> >>>>>>>> 2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000
>>>> >>>>>>>> 2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28
>>>> >>>>>>>>
>>>> >>>>>>>> /////////////////////////////////////////////////////////////// BOKEH JS Page source
>>>> >>>>>>>> <!DOCTYPE html>
>>>> >>>>>>>> <html lang="en">
>>>> >>>>>>>> <head>
>>>> >>>>>>>> <meta charset="utf-8">
>>>> >>>>>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>> >>>>>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>> >>>>>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>> >>>>>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>> >>>>>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>> >>>>>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>> >>>>>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>> >>>>>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>> >>>>>>>> <script type="text/javascript">
>>>> >>>>>>>> Bokeh.set_log_level("info");
>>>> >>>>>>>> </script>
>>>> >>>>>>>> <style>
>>>> >>>>>>>> html {
>>>> >>>>>>>> width: 100%;
>>>> >>>>>>>> height: 100%;
>>>> >>>>>>>> }
>>>> >>>>>>>> body {
>>>> >>>>>>>> width: 90%;
>>>> >>>>>>>> height: 100%;
>>>> >>>>>>>> margin: auto;
>>>> >>>>>>>> }
>>>> >>>>>>>> </style>
>>>> >>>>>>>> </head>
>>>> >>>>>>>> <body>
>>>> >>>>>>>> <div class="bk-root">
>>>> >>>>>>>> <div class="bk-plotdiv" id="8574b8f6-feeb-43a4-a38c-12b4978410d3"></div>
>>>> >>>>>>>> </div>
>>>> >>>>>>>> <script type="text/javascript">
>>>> >>>>>>>> (function() {
>>>> >>>>>>>> var fn = function() {
>>>> >>>>>>>> Bokeh.safely(function() {
>>>> >>>>>>>> var docs_json = {};
>>>> >>>>>>>> var render_items = [{"elementid":"8574b8f6-feeb-43a4-a38c-12b4978410d3","sessionid":"hPzTNq1ZsqpocOldjmReQJRb5rMcgHslJn1dca45kGuY","use_for_title":true}];
>>>> >>>>>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>> >>>>>>>> });
>>>> >>>>>>>> };
>>>> >>>>>>>> if (document.readyState != "loading") fn();
>>>> >>>>>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>> >>>>>>>> })();
>>>> >>>>>>>> </script>
>>>> >>>>>>>> </body>
>>>> >>>>>>>> </html>
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>> On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>>>> Two quick comments:
>>>> >>>>>>>>
>>>> >>>>>>>> The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does *not* have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to "bokehstatic", and reporting back.
>>>> >>>>>>>>
>>>> >>>>>>>> I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don't know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.
>>>> >>>>>>>>
>>>> >>>>>>>> Thanks,
>>>> >>>>>>>>
>>>> >>>>>>>> Bryan
>>>> >>>>>>>>
>>>> >>>>>>>>> On Sep 24, 2017, at 19:21, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>>>>
>>>> >>>>>>>>> I should note that this should not be complicated because i literally followed the nginx instructions here: Bokeh server — Bokeh 3.3.2 Documentation
>>>> >>>>>>>>>
>>>> >>>>>>>>> So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.
>>>> >>>>>>>>>
>>>> >>>>>>>>> thanks
>>>> >>>>>>>>>
>>>> >>>>>>>>>
>>>> >>>>>>>>> On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>>>> Thats great. I will continue to bang my head trying to solve this...if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis..and still no luck.
>>>> >>>>>>>>>
>>>> >>>>>>>>> Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.
>>>> >>>>>>>>>
>>>> >>>>>>>>> Thank you again!
>>>> >>>>>>>>>
>>>> >>>>>>>>> On Sep 24, 2017 7:08 PM, "Bryan Van de ven" <bryanv@anaconda.com> wrote:
>>>> >>>>>>>>> If it's possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.
>>>> >>>>>>>>>
>>>> >>>>>>>>> Thanks,
>>>> >>>>>>>>>
>>>> >>>>>>>>> Bryan
>>>> >>>>>>>>>
>>>> >>>>>>>>>> On Sep 24, 2017, at 17:46, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> Thanks Bryan..i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>>>>>> Clarify: that *section* has the effect of bypassing the Bokeh server
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> Bryan
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>> On Sep 24, 2017, at 16:52, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user's guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> Tho again, the quickest thing to try that I can suggest is to remove that second location block for "static" entirely.
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> Bryan
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>> On Sep 24, 2017, at 16:21, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> Bryan
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> On Sep 24, 2017, at 15:37, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>> Interesting...i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS.. This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)... ithere an easy way out from this maze?
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> # Set up layouts and add to document
>>>> >>>>>>>>>>>>> inputs = widgetbox(myobjs)
>>>> >>>>>>>>>>>>> mainrow=column(plot,data_table)
>>>> >>>>>>>>>>>>> mainrow2=row(mainrow,inputs)
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> if objcnt-1==0:
>>>> >>>>>>>>>>>>> mainlayout=column(mainrow2)
>>>> >>>>>>>>>>>>> curdoc().add_root(mainlayout)
>>>> >>>>>>>>>>>>> else:
>>>> >>>>>>>>>>>>> mainlayout.children[0]=column(mainrow2)
>>>> >>>>>>>>>>>>> curdoc().title = "OTICS WHAT-IF ENGINE"
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven <bryanv@anaconda.com> wrote:
>>>> >>>>>>>>>>>>> A proximate cause of the problem (one of, there are possibly more) is certainly this:
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604&quot;\.
>>>> >>>>>>>>>>>>> 15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e&quot;\.
>>>> >>>>>>>>>>>>> 15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d&quot;\.
>>>> >>>>>>>>>>>>> 15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <
>>>> >>>>>>>>>>>>> 15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <
>>>> >>>>>>>>>>>>> 15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <
>>>> >>>>>>>>>>>>> 15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <
>>>> >>>>>>>>>>>>> 15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can't offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> Bryan
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> On Sep 24, 2017, at 14:31, Sebastian Maurice <sebastian.maurice@gmail.com> wrote:
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> Attached is the proxy conf:
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> server {
>>>> >>>>>>>>>>>>>> listen 443;
>>>> >>>>>>>>>>>>>> server_name www.analytix.ai;
>>>> >>>>>>>>>>>>>> charset utf-8;
>>>> >>>>>>>>>>>>>> client_max_body_size 30M;
>>>> >>>>>>>>>>>>>> access_log C:/CORE_FILES/nginxlog/access.log;
>>>> >>>>>>>>>>>>>> error_log C:/CORE_FILES/nginxlog/error.log debug;
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> #The internal IP of the VM that hosts your Apache config
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> location /{
>>>> >>>>>>>>>>>>>> if ( $request_uri ~ ^/(\d+)/([^/]+)) {
>>>> >>>>>>>>>>>>>> proxy_pass http://192.168.0.101:$1/$2/;
>>>> >>>>>>>>>>>>>> #proxy_pass /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> }
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> proxy_http_version 1.1;
>>>> >>>>>>>>>>>>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>>> >>>>>>>>>>>>>> proxy_set_header Host www.analytix.ai;
>>>> >>>>>>>>>>>>>> proxy_set_header Upgrade $http_upgrade;
>>>> >>>>>>>>>>>>>> proxy_set_header Connection "upgrade";
>>>> >>>>>>>>>>>>>> sub_filter "192.168.0.101:5007" "www.analytix.ai:443";
>>>> >>>>>>>>>>>>>> sub_filter_once off;
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> proxy_buffering off;
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> }
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> location ~ ^/(\d+)/static/ {
>>>> >>>>>>>>>>>>>> #location /static/ {
>>>> >>>>>>>>>>>>>> autoindex on;
>>>> >>>>>>>>>>>>>> alias /bokehstatic/static/;
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> }
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> }
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:
>>>> >>>>>>>>>>>>>> Hi,
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> I have bee struggling with this problem for a few weeks, the problem is detailed here: Bokeh Sever with NGINX gives Blank white screen - Stack Overflow
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> <!DOCTYPE html>
>>>> >>>>>>>>>>>>>> <html lang="en">
>>>> >>>>>>>>>>>>>> <head>
>>>> >>>>>>>>>>>>>> <meta charset="utf-8">
>>>> >>>>>>>>>>>>>> <title>OTICS WHAT-IF ENGINE</title>
>>>> >>>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604" type="text/css" />
>>>> >>>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e" type="text/css" />
>>>> >>>>>>>>>>>>>> <link rel="stylesheet" href="static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d" type="text/css" />
>>>> >>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2"></script>
>>>> >>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e"></script>
>>>> >>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833"></script>
>>>> >>>>>>>>>>>>>> <script type="text/javascript" src="static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36"></script>
>>>> >>>>>>>>>>>>>> <script type="text/javascript">
>>>> >>>>>>>>>>>>>> Bokeh.set_log_level("info");
>>>> >>>>>>>>>>>>>> </script>
>>>> >>>>>>>>>>>>>> <style>
>>>> >>>>>>>>>>>>>> html {
>>>> >>>>>>>>>>>>>> width: 100%;
>>>> >>>>>>>>>>>>>> height: 100%;
>>>> >>>>>>>>>>>>>> }
>>>> >>>>>>>>>>>>>> body {
>>>> >>>>>>>>>>>>>> width: 90%;
>>>> >>>>>>>>>>>>>> height: 100%;
>>>> >>>>>>>>>>>>>> margin: auto;
>>>> >>>>>>>>>>>>>> }
>>>> >>>>>>>>>>>>>> </style>
>>>> >>>>>>>>>>>>>> </head>
>>>> >>>>>>>>>>>>>> <body>
>>>> >>>>>>>>>>>>>> <div class="bk-root">
>>>> >>>>>>>>>>>>>> <div class="bk-plotdiv" id="86ae7a18-5b00-42ee-aa6e-00fa70c36285"></div>
>>>> >>>>>>>>>>>>>> </div>
>>>> >>>>>>>>>>>>>> <script type="text/javascript">
>>>> >>>>>>>>>>>>>> (function() {
>>>> >>>>>>>>>>>>>> var fn = function() {
>>>> >>>>>>>>>>>>>> Bokeh.safely(function() {
>>>> >>>>>>>>>>>>>> var docs_json = {};
>>>> >>>>>>>>>>>>>> var render_items = [{"elementid":"86ae7a18-5b00-42ee-aa6e-00fa70c36285","sessionid":"My2OwaLPOMm839scpen1U8yFWM2TLjIvAijBJ2DTSsBP","use_for_title":true}];
>>>> >>>>>>>>>>>>>> Bokeh.embed.embed_items(docs_json, render_items);
>>>> >>>>>>>>>>>>>> });
>>>> >>>>>>>>>>>>>> };
>>>> >>>>>>>>>>>>>> if (document.readyState != "loading") fn();
>>>> >>>>>>>>>>>>>> else document.addEventListener("DOMContentLoaded", fn);
>>>> >>>>>>>>>>>>>> })();
>>>> >>>>>>>>>>>>>> </script>
>>>> >>>>>>>>>>>>>> </body>
>>>> >>>>>>>>>>>>>> </html>
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> --
>>>> >>>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io\.
>>>> >>>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> --
>>>> >>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com\.
>>>> >>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> --
>>>> >>>>>>>>>>>>> -----
>>>> >>>>>>>>>>>>> Sebastian Maurice, PhD
>>>> >>>>>>>>>>>>> Mobile: 403-612-5443
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> --
>>>> >>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com\.
>>>> >>>>>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> --
>>>> >>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com\.
>>>> >>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> --
>>>> >>>>>>>>>> -----
>>>> >>>>>>>>>> Sebastian Maurice, PhD
>>>> >>>>>>>>>> Mobile: 403-612-5443
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> --
>>>> >>>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com\.
>>>> >>>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>>
>>>> >>>>>>>>> --
>>>> >>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com\.
>>>> >>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>>
>>>> >>>>>>>>>
>>>> >>>>>>>>>
>>>> >>>>>>>>> --
>>>> >>>>>>>>> -----
>>>> >>>>>>>>> Sebastian Maurice, PhD
>>>> >>>>>>>>> Mobile: 403-612-5443
>>>> >>>>>>>>>
>>>> >>>>>>>>> --
>>>> >>>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com\.
>>>> >>>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>
>>>> >>>>>>>> --
>>>> >>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com\.
>>>> >>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>> --
>>>> >>>>>>>> -----
>>>> >>>>>>>> Sebastian Maurice, PhD
>>>> >>>>>>>> Mobile: 403-612-5443
>>>> >>>>>>>>
>>>> >>>>>>>> --
>>>> >>>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com\.
>>>> >>>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>
>>>> >>>>>>> --
>>>> >>>>>>> You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>> To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
>>>> >>>>>>> To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com\.
>>>> >>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>>>
>>>> >>>>>>>
>>>> >>>>>>>
>>>> >>>>>>> --
>>>> >>>>>>> -----
>>>> >>>>>>> Sebastian Maurice, PhD
>>>> >>>>>>> Mobile: 403-612-5443
>>>> >>>>>>>
>>>> >>>>>>> --
>>>> >>>>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com\.
>>>> >>>>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>
>>>> >>>>> --
>>>> >>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com\.
>>>> >>>>>
>>>> >>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> --
>>>> >>>>> -----
>>>> >>>>> Sebastian Maurice, PhD
>>>> >>>>> Mobile: 403-612-5443
>>>> >>>>>
>>>> >>>>> --
>>>> >>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com\.
>>>> >>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>
>>>> >>>> --
>>>> >>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com\.
>>>> >>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> --
>>>> >>>> -----
>>>> >>>> Sebastian Maurice, PhD
>>>> >>>> Mobile: 403-612-5443
>>>> >>>>
>>>> >>>> --
>>>> >>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >>>> To post to this group, send email to bokeh@continuum.io.
>>>> >>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com\.
>>>> >>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>>> <bokehscreen.png>
>>>> >>>
>>>> >>
>>>> >> --
>>>> >> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >> To post to this group, send email to bokeh@continuum.io.
>>>> >> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com\.
>>>> >> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >>
>>>> >>
>>>> >>
>>>> >> --
>>>> >> -----
>>>> >> Sebastian Maurice, PhD
>>>> >> Mobile: 403-612-5443
>>>> >>
>>>> >> --
>>>> >> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> >> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> >> To post to this group, send email to bokeh@continuum.io.
>>>> >> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com\.
>>>> >> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> >
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> To post to this group, send email to bokeh@continuum.io.
>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com\.
>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>>
>>>>
>>>>
>>>> --
>>>> -----
>>>> Sebastian Maurice, PhD
>>>> Mobile: 403-612-5443
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>>> To post to this group, send email to bokeh@continuum.io.
>>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com\.
>>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>> <bokehexp1.png>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com\.
>>>
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>>
>>>
>>>
>>> --
>>> -----
>>> Sebastian Maurice, PhD
>>> Mobile: 403-612-5443
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
>>> To post to this group, send email to bokeh@continuum.io.
>>> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rG-Hnm_B%3DsX6KmLtEh6UAXxEb26h0W47%3D43Uu_9jKuKoA%40mail.gmail.com\.
>>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>>> <bokehplot.png>
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/03CCE490-C414-42CD-BD01-F4A095BC76AE%40anaconda.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
>
>
> --
> -----
> Sebastian Maurice, PhD
> Mobile: 403-612-5443
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rE9aWkxrRQ7wHO5T9HJMm9sMALEygOJWubhuiRSOMSmNw%40mail.gmail.com\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe\.
To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2698A794-EAD9-4011-8517-069054DB7799%40anaconda.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
-----
Sebastian Maurice, PhD
Mobile: 403-612-5443

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEHoEv90FjQ_6%2BDGUDsgzz0fNXDWvP1_5RmfneV78n-Rg%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Sebastian_Maurice
Sebastian_Maurice

Great. Let me know if you need any additional information from me. if you can figure this out…you are my new hero :slight_smile:

thanks again!

···

On Mon, Oct 2, 2017 at 8:21 PM, Bryan Van de ven bryan@bokeh.org wrote:

I am going to try and get a windows vm stood up tomorrow.

Bryan

On Oct 2, 2017, at 17:27, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Hi Bryan - let me know if you need anything more. I tried over the weekend again and no luck getting it to work. i am getting a 403 forbidden from NGINX. NGINX has access to the Bokeh server directory - so i just don’t get it. Really getting frustrating…it almost seems i am the only one on the planet experiencing this issue, very lonely out here :slight_smile: Look forward to an update.

On Mon, Sep 25, 2017 at 7:07 PM, Bryan Van de ven bryan@bokeh.org wrote:

Thanks, I’ll take a look first thing next week when I return.

Bryan

On Sep 25, 2017, at 18:17, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Hi

i put all the files in the repo: https://github.com/smaurice101/bokehnginxpub

Good luck - I just cannot get it to work.

On Mon, Sep 25, 2017 at 11:35 AM, Bryan Van de ven bryan@bokeh.org wrote:

Trying to debug over email does not seem to be being very effective. As I mentioned I am occupied from now through the rest of this week. If you can put a compete reproducing example with everything needed to run and duplicate the issue in a GH repo or similar then I can try to run things myself next week.

Thanks,

Bryan

On Sep 25, 2017, at 10:29, Bryan Van de ven bryan@bokeh.org wrote:

I mean you need to try and load the static resources by going through the nginx proxy, not by connecting directly to localhost. Something like

http://<real ip or hostname>/<app path>/static/...

Ie add the relative urls that start with “static” to your real address for the app from the proxy. The point is to see how the proxy is behaving.

Bryan

On Sep 25, 2017, at 09:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Hi, not sure what you mean…locally it all works.

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven bryan@bokeh.org wrote:

Sorry, you need to put the real location for your situation in front of the relative url in the page source, not localhost. That was only meant to be demonstrative.

Bryan

On Sep 25, 2017, at 08:50, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes that works manually. I put http://localhost:5007/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 in my brower and get 200 result below from Bokeh.

On Mon, Sep 25, 2017 at 9:31 AM, Bryan Van de ven bryan@bokeh.org wrote:

Here is another experiment: navigate to the static resource link directly (i.e put it in your browser bar manually). When I put, e.g.

    [http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5](http://localhost:5006/static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5)

In my browsers the bokeh server log reports:

    2017-09-25 08:30:04,241 200 GET /static/css/bokeh.min.css?v=40d5c9a6441908ce9b812db9e82be4d5 (::1) 1.02ms

If you aren’t seeing these kinds of log messages then Bokeh server is not seeing the requests in the first place.

Bryan

On Sep 25, 2017, at 08:28, Bryan Van de ven bryan@bokeh.org wrote:

I don’t think that can be the case. Here is some output from when Bokeh server gets a request but can’t satisfy it (in this case I moved the static folder, so there are 404s seen):

❯ mv ~/work/bokeh/bokeh/server/static ~/work/bokeh/bokeh/server/static2

~/work/bokeh/examples/app bryanv/canonical_embed*

❯ bokeh serve --show --log-level=debug image_blur.py

2017-09-25 08:26:54,864 Starting Bokeh server version 0.12.10dev1-11-ga0d4cc84c-dirty (running on Tornado 4.5.1)

2017-09-25 08:26:54,867 These host origins can connect to the websocket: [‘localhost:5006’]

2017-09-25 08:26:54,868 Patterns are:

2017-09-25 08:26:54,868 [(‘/image_blur/?’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.doc_handler.DocHandler’>,

2017-09-25 08:26:54,868 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,868 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,868 (‘/image_blur/ws’,

2017-09-25 08:26:54,868 <class ‘bokeh.server.views.ws.WSHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/metadata’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.metadata_handler.MetadataHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/image_blur/autoload.js’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.autoload_js_handler.AutoloadJsHandler’>,

2017-09-25 08:26:54,869 {‘application_context’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>,

2017-09-25 08:26:54,869 ‘bokeh_websocket_path’: ‘/image_blur/ws’}),

2017-09-25 08:26:54,869 (‘/?’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.root_handler.RootHandler’>,

2017-09-25 08:26:54,869 {‘applications’: {‘/image_blur’: <bokeh.server.application_context.ApplicationContext object at 0x1043b4cf8>},

2017-09-25 08:26:54,869 ‘prefix’: ‘’,

2017-09-25 08:26:54,869 ‘use_redirect’: True}),

2017-09-25 08:26:54,869 (‘/static/(.*)’,

2017-09-25 08:26:54,869 <class ‘bokeh.server.views.static_handler.StaticHandler’>)]

2017-09-25 08:26:54,870 Bokeh app running at: http://localhost:5006/image_blur

2017-09-25 08:26:54,870 Starting Bokeh server with process id: 18589

2017-09-25 08:26:55,552 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-widgets.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-tables.min.js’

2017-09-25 08:26:55,553 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/js/bokeh-gl.min.js’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-widgets.min.css’

2017-09-25 08:26:55,554 Could not open static file ‘/Users/bryan/work/bokeh/bokeh/server/static/css/bokeh-tables.min.css’

2017-09-25 08:26:55,555 200 GET /image_blur (::1) 644.81ms

2017-09-25 08:26:55,561 404 GET /static/css/bokeh.min.css?v=None (::1) 0.78ms

2017-09-25 08:26:55,564 404 GET /static/css/bokeh-tables.min.css?v=None (::1) 0.44ms

2017-09-25 08:26:55,565 404 GET /static/js/bokeh-gl.min.js?v=None (::1) 0.50ms

2017-09-25 08:26:55,566 404 GET /static/js/bokeh-widgets.min.js?v=None (::1) 0.34ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh-tables.min.js?v=None (::1) 0.38ms

2017-09-25 08:26:55,567 404 GET /static/js/bokeh.min.js?v=None (::1) 0.51ms

2017-09-25 08:26:55,568 404 GET /static/css/bokeh-widgets.min.css?v=None (::1) 0.45ms

If Bokeh was issuing the 403’s, they would show up here, just like these 404’s do

Bryan

On Sep 25, 2017, at 08:19, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks…i checked the nginx logs (error/access) no issues out of the ordinary. The bokeh debug screen is reporting a 403 as well so requests seem to be getting to bokeh. The proxy pass statements work as i am able to connect to bokeh server…the regex is fine. It seems from the bokeh 403 it maybe confused on whether /static/ is a file or folder? i will keep checking.

On Mon, Sep 25, 2017 at 9:12 AM, Bryan Van de ven bryan@bokeh.org wrote:

Since it’s the only thing noticeably different from the sample in the docs, I might next suggest investigating if this part is the problem:

           if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                   proxy_pass   http://192.168.0.101:$1/$2/;
                   #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
           }

Thanks,

Bryan

On Sep 25, 2017, at 08:09, Bryan Van de ven bryan@bokeh.org wrote:

OK if the Bokeh server itself was denying (or even seeing) these requests then it would show up there, so I can only conclude nginx is blocking the requests for some reason. The requests are not even making it to the Bokeh server at all as far as I can tell. There are often two nginx logs, and “access” one and and “error” one. you might try looking in both for more information about why nginx is doing this.

Thanks,

Bryan

On Sep 25, 2017, at 08:01, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the bokeh screenshot and the webscreen with 403. When i click any of the links in the page source i get 403…

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Mon, Sep 25, 2017 at 7:59 AM, Bryan Van de ven bryanv@anaconda.com wrote:

That’s what I would expect, and what I would expect to be correct. Thinking abut it, if that were wrong things would not work in the non-proxied case either, but you have stated they do. What is the Bokeh server console output when you get those 403s in the JS console? That will inform definitively whether they are coming from the bokeh server or from nginx.

Bryan

On Sep 24, 2017, at 22:38, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I ran this command:

bokeh.util.paths.bokehjsdir()

Result:

‘C:\Users\smaurice\AppData\Local\Programs\Python\Python35\lib\site-packages\bokeh\server\static’

On Sun, Sep 24, 2017 at 11:20 PM, Bryan Van de ven bryanv@anaconda.com wrote:

We do use join, etc here

https://github.com/bokeh/bokeh/blob/master/bokeh/util/paths.py

So I’d expect the underlying paths to be platform correct. What is the result of bokeh.utils.psths.bokehjsdir() on your system?

On Sep 24, 2017, at 22:15, Bryan Van de ven bryan@bokeh.org wrote:

Not sure offhand. I would always expect urls yo be expressed with forward slashes regardless of platform (as they are here) But maybe we are configuring some internal path for the base class incorrectly for Windows. I’ll take a look when I can.

Bryan

On Sep 24, 2017, at 22:06, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Yes this error is a file path issue for static folder. Unfortunately I do not have linux access. Is this potential a issue/bug somewhere specifical to windows filesystem?

thanks for the additional information. Will look at it.

On Sun, Sep 24, 2017 at 10:45 PM, Bryan Van de ven bryanv@anaconda.com wrote:

OK well this is different result. This shows that the browser is getting a 403 (Forbidden) response when trying to load BokehJS Javascript and CSS files. But Bokeh server itself only returns a 403 in a couple of specific situations, and none of them are in its StaticHandler subclass code. This 403 must be coming from the Tornado static file handler base class, the only relevant place seems to be this:

  [https://gist.github.com/didip/902931#file-tornado-static-file-py-L33](https://gist.github.com/didip/902931#file-tornado-static-file-py-L33)

Offhand I wonder if there is some path separator issue that only affects windows. Do you have the ability to try this on exact configuration on Linux or OSX?

Thanks,

Bryan

On Sep 24, 2017, at 19:56, Sebastian Maurice sebastian.maurice@gmail.com wrote:

No problem. I removed the static and re started nginx: (no luck)

server {

listen 443;

server_name [www.analytix.ai](http://www.analytix.ai);
    charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

        if ( $request_uri ~ ^/(\d+)/([^/]+)) {
                proxy_pass   http://192.168.0.101:$1/$2/;
                #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
        }
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
  sub_filter_once off;
  proxy_buffering off;

}

}

//////////////////////////////////////////////////////////JS console:

Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.833 static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.844 static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.845 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.846 static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604 Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.849 bokeh.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.975 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:23.996 bokeh-widgets.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.162 bokeh-tables.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 bokeh-gl.min.js Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:24.310 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

20:52:24.312 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

20:52:24.352 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:24.355 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Connected: Port

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/bridge.js:1 Done.

20:52:24.357 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 +content/detection.js

20:52:24.359 chrome-extension://ahgdclgdhfeingghldkedleghekbfhef/content/detection.js:1 -content/detection.js

20:52:36.881 bokeh-widgets.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.884 bokeh.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:36.908 bokeh-tables.min.css Failed to load resource: the server responded with a status of 403 (Forbidden)

20:52:54.147 Navigated to http://www.analytix.ai:443/5007/smaurice_5007

20:52:54.272 smaurice_5007:10 GET http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css?v=aa783ffa4e290813a295a99cce2f8b5d

20:52:54.273 smaurice_5007:8 GET http://www.analytix.ai:443/5007/static/css/bokeh.min.css?v=aff472d598b101a4d4a4c214f39d9604

20:52:54.275 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.276 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.277 smaurice_5007:9 GET http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css?v=509e292d9a7ef7e9eb8382fcde7b4a6e

20:52:54.288 smaurice_5007:12 GET http://www.analytix.ai:443/5007/static/js/bokeh.min.js?v=109998b11e3a484f5edd1d191d6338a2

20:52:54.428 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36

20:52:54.437 smaurice_5007:13 GET http://www.analytix.ai:443/5007/static/js/bokeh-widgets.min.js?v=1e7d9b3a9277b5d7b436fc82ac20197e 403 (Forbidden)

20:52:54.585 smaurice_5007:14 GET http://www.analytix.ai:443/5007/static/js/bokeh-tables.min.js?v=a167e11218858d6d2bcbcfdc21a84833

20:52:54.729 smaurice_5007:15 GET http://www.analytix.ai:443/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36 403 (Forbidden)

20:52:54.730 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

at smaurice_5007:17

(anonymous) @ smaurice_5007:17

20:52:54.734 smaurice_5007:40 Uncaught ReferenceError: Bokeh is not defined

at HTMLDocument.fn (smaurice_5007:40)

fn @ smaurice_5007:40

20:52:54.774 bridge.js:1 Connecting to PORT_NAME_SYMANTEC_PKI_CLIENT_CONTENT_TO_BACKGROUND…

20:52:54.799 bridge.js:1 Connected: Port {}

20:52:54.805 bridge.js:1 Done.

20:52:54.806 detection.js:1 +content/detection.js

20:52:54.808 detection.js:1 -content/detection.js

//////////////////////////////////////////////////////////////////////////////////////////////NGINX LOGS

2017/09/24 20:52:55 [debug] 12152#1712: *1 http cleanup add: 0342B894

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342B8B8:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 get rr peer, try: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 stream socket 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 connect to 192.168.0.101:5007, fd:620 #41

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 select add event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream connect: -2

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0342D410:128

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: -4, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:2

2017/09/24 20:52:55 [debug] 12152#1712: *1 http request count:2 blk:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03478908

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream send request body

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer buf fl:1 s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer in: 0342B8A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:620, s:512

2017/09/24 20:52:55 [debug] 12152#1712: *1 chain writer out: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281799

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 620: 60000:3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 post event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 delete posted event 03464900

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream request: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process header

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348D698:4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSARecv: fd:620 rc:0 221 of 4096

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy status 403 “403 Forbidden”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Server: TornadoServer/4.5.2”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Type: text/html; charset=UTF-8”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Content-Length: 69”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header: “Date: Mon, 25 Sep 2017 00:52:55 GMT”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy header done

2017/09/24 20:52:55 [debug] 12152#1712: *1 HTTP/1.1 403 Forbidden

Server: nginx/1.12.1

Date: Mon, 25 Sep 2017 00:52:55 GMT

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Content-Encoding: gzip

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:0 s:201

2017/09/24 20:52:55 [debug] 12152#1712: *1 http proxy filter init s:403 h:0 c:0 l:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 http upstream process non buffered downstream

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 parse: -2, looked: “” 0348D730-0348D775

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 0348E6A0:270336

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:1 s:5828 a:8192 p:0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034906A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034A06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:32768 s:2 a:65536 p:034B06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip alloc: n:16384 s:4 a:65536 p:034C06A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BDB8

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:0348D730 ai:69

2017/09/24 20:52:55 [debug] 12152#1712: *1 malloc: 034D06A8:32768

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:0348D730 no:034D06A8 ai:69 ao:32768 fl:2 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:0348D775 no:034D06DA ai:0 ao:32718 rc:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:0348D730

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 50

2017/09/24 20:52:55 [debug] 12152#1712: *1 write old buf t:1 f:0 0342BC1C, pos 0342BC1C, size: 201 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BE90, pos 0342BE90, size: 4 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 01615F2C, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 50 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 00000000, pos 0159AA98, size: 2 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:0 f:1 s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:267

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http upstream request: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 finalize http proxy request

2017/09/24 20:52:55 [debug] 12152#1712: *1 free rr peer 1 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 close http upstream connection: 620

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342D410, unused: 88

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer del: 620: 3062281800

2017/09/24 20:52:55 [debug] 12152#1712: *1 select del event fd:620 ev:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http output filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http sub filter “/5007/static/js/bokeh-gl.min.js”

2017/09/24 20:52:55 [debug] 12152#1712: *1 sub out: 0342BD78 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http postpone filter “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” 0342BD70

2017/09/24 20:52:55 [debug] 12152#1712: *1 http gzip filter

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in: 0342BE48

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 ni:00000000 ai:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate in: ni:00000000 no:034D06A8 ai:0 ao:32768 fl:4 redo:0

2017/09/24 20:52:55 [debug] 12152#1712: *1 deflate out: ni:00000000 no:034D06AA ai:0 ao:32766 rc:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 gzip in_buf:0342BD78 pos:00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348E6A0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http chunk: 10

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 0342BF3C, pos 0342BF3C, size: 3 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:1 f:0 034D06A8, pos 034D06A8, size: 10 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 write new buf t:0 f:0 0342BE90, pos 015A6848, size: 7 file: 0, size: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter: l:1 f:1 s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter limit 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 WSASend: fd:608, s:20

2017/09/24 20:52:55 [debug] 12152#1712: *1 http write filter 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 http copy filter: 0 “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36”

2017/09/24 20:52:55 [debug] 12152#1712: *1 http finalize request: 0, “/5007/static/js/bokeh-gl.min.js?v=bd3543fa9b2c283463abffbdfcc78e36” a:1, c:1

2017/09/24 20:52:55 [debug] 12152#1712: *1 set http keepalive handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 http close request

2017/09/24 20:52:55 [debug] 12152#1712: *1 http log handler

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034D06A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0348D698

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342A8B0, unused: 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 0342B8B8, unused: 2080

2017/09/24 20:52:55 [debug] 12152#1712: *1 free: 034298A8

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc free: 00000000

2017/09/24 20:52:55 [debug] 12152#1712: *1 hc busy: 00000000 0

2017/09/24 20:52:55 [debug] 12152#1712: *1 reusable connection: 1

2017/09/24 20:52:55 [debug] 12152#1712: *1 event timer add: 608: 65000:3062286802

2017/09/24 20:53:59 [debug] 12152#1712: *6 event timer del: 628: 3062286335

2017/09/24 20:53:59 [debug] 12152#1712: *6 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *6 close http connection: 628

2017/09/24 20:53:59 [debug] 12152#1712: *6 select del event fd:628 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *6 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *6 free: 0348D528, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *5 event timer del: 624: 3062286342

2017/09/24 20:53:59 [debug] 12152#1712: *5 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *5 close http connection: 624

2017/09/24 20:53:59 [debug] 12152#1712: *5 select del event fd:624 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *5 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *5 free: 0348D210, unused: 28

2017/09/24 20:53:59 [debug] 12152#1712: *2 event timer del: 612: 3062286343

2017/09/24 20:53:59 [debug] 12152#1712: *2 http keepalive handler

2017/09/24 20:53:59 [debug] 12152#1712: *2 close http connection: 612

2017/09/24 20:53:59 [debug] 12152#1712: *2 select del event fd:612 ev:0

2017/09/24 20:53:59 [debug] 12152#1712: *2 reusable connection: 0

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 00000000

2017/09/24 20:53:59 [debug] 12152#1712: *2 free: 0348D000, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *3 event timer del: 616: 3062286493

2017/09/24 20:54:00 [debug] 12152#1712: *3 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *3 close http connection: 616

2017/09/24 20:54:00 [debug] 12152#1712: *3 select del event fd:616 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *3 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *3 free: 0348D318, unused: 28

2017/09/24 20:54:00 [debug] 12152#1712: *1 event timer del: 608: 3062286802

2017/09/24 20:54:00 [debug] 12152#1712: *1 http keepalive handler

2017/09/24 20:54:00 [debug] 12152#1712: *1 close http connection: 608

2017/09/24 20:54:00 [debug] 12152#1712: *1 select del event fd:608 ev:0

2017/09/24 20:54:00 [debug] 12152#1712: *1 reusable connection: 0

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 00000000

2017/09/24 20:54:00 [debug] 12152#1712: *1 free: 033A81F8, unused: 28

/////////////////////////////////////////////////////////////// BOKEH JS Page source

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

On Sun, Sep 24, 2017 at 8:34 PM, Bryan Van de ven bryanv@anaconda.com wrote:

Two quick comments:

The extra location block is mentioned in passing in that doc, but not elaborated on. The basic config file there does not have a location block to intercept static resource URLS. Again, I would strongly suggest removing that second block that refers to “bokehstatic”, and reporting back.

I also somehow missed this is on Windows. None of the core devs happen to be windows users. The project sorely needs a windows maintainer but so far my occasional public calls to attract one have not proved fruitful. We do the best we can to test on windows but at present I definitely don’t know one way or the other if there are any special or different considerations for nginx+bokeh on windows specifically.

Thanks,

Bryan

On Sep 24, 2017, at 19:21, Sebastian Maurice sebastian.maurice@gmail.com wrote:

I should note that this should not be complicated because i literally followed the nginx instructions here: https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

So if someone can prove they can create interactive plots in Chrome or IE etc using nginx reverse proxy with bokeh server on windows 10 (64bit) with similar proxy details (over port 80 or 443) i would be a believer Bokeh actually works with nginx.

thanks

On Sun, Sep 24, 2017 at 8:07 PM, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thats great. I will continue to bang my head trying to solve this…if i just cannot do it i will take you up on your suggestion. It is important i solve this. I even tried proxy through iis…and still no luck.

Bokeh is a probably the best integrated (with python) visualuzation i seen in data science.i would hate to give up on it because of this silly css/ js error.

Thank you again!

On Sep 24, 2017 7:08 PM, “Bryan Van de ven” bryan@bokeh.org wrote:

If it’s possible for you to put things up in a public GH repo, I could try to actually run things to see if that sheds more light. However, I fly out early to a conference tomorrow and will be occupied every day all week, so it would not be until the week after that I could take a look.

Thanks,

Bryan

On Sep 24, 2017, at 17:46, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Thanks Bryan…i will play with this again tonight. i am not too confident it will work but will let the group know. if i need specifc Nginx group support will seek that group out.

On Sun, Sep 24, 2017 at 5:55 PM, Bryan Van de ven bryan@bokeh.org wrote:

Clarify: that section has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven bryan@bokeh.org wrote:

I guess I should add: I am not an nginx expert, far from it. The sum total of what I know is pretty much contained in the user’s guide section I linked earlier. You may have better luck asking for help in some place that specifically has more people with nginx expertise.

Tho again, the quickest thing to try that I can suggest is to remove that second location block for “static” entirely.

When you run outside the proxy, the page is loading BokehJS static resources directly from the Bokeh server. That line has the effect of bypassing the Bokeh server. Removing that block should let the Bokeh server take care of providing BokehJS for page loads.

Bryan

On Sep 24, 2017, at 16:21, Bryan Van de ven bryan@bokeh.org wrote:

I’m not suggesting not using a proxy in general, I am specifically referring to the “bokehstatic” redirects

Bryan

On Sep 24, 2017, at 15:37, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Interesting…i thought those were strange. Note i do go directly yo Bokeh server (without going through NGINX in the middle) and that works fine. i really do need the reverse proxy to work because several different users interact with the plot at the same time with different data. I have not looked at BokehJS… This is how the bokeh document is created (part of my code): I have it all working (without nginx - but with nginx i get the white screen)… ithere an easy way out from this maze?

Set up layouts and add to document

inputs = widgetbox(myobjs)

mainrow=column(plot,data_table)

mainrow2=row(mainrow,inputs)

 if objcnt-1==0:
 mainlayout=column(mainrow2)
 curdoc().add_root(mainlayout)

else:

 mainlayout.children[0]=column(mainrow2)

curdoc().title = “OTICS WHAT-IF ENGINE”

On Sun, Sep 24, 2017 at 4:12 PM, Bryan Van de ven bryan@bokeh.org wrote:

A proximate cause of the problem (one of, there are possibly more) is certainly this:

Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh.min.css/?v=aff472d598b101a4d4a4c214f39d9604”.

15:22:43.694 smaurice_5007:9 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-widgets.min.css/?v=509e292d9a7ef7e9eb8382fcde7b4a6e”.

15:22:43.698 smaurice_5007:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: “http://www.analytix.ai:443/5007/static/css/bokeh-tables.min.css/?v=aa783ffa4e290813a295a99cce2f8b5d”.

15:22:44.112 ?v=109998b11e3a484f5edd1d191d6338a2:1 Uncaught SyntaxError: Unexpected token <

15:22:44.122 ?v=1e7d9b3a9277b5d7b436fc82ac20197e:1 Uncaught SyntaxError: Unexpected token <

15:22:44.123 ?v=a167e11218858d6d2bcbcfdc21a84833:1 Uncaught SyntaxError: Unexpected token <

15:22:44.124 ?v=bd3543fa9b2c283463abffbdfcc78e36:1 Uncaught SyntaxError: Unexpected token <

15:22:44.125 smaurice_5007:17 Uncaught ReferenceError: Bokeh is not defined

The browser is not successfully loading BokehJS resources at all, so that would certainly explain nothing getting displayed.

I note that you are trying to have nginx load the static BokehJS resources instead of letting the Bokeh server itself server them. My guess is the is something amiss in this: either nginx is serving the wrong mime type, or the files you have copied to the nginx static location are missing or corrupt somehow, or something else entirely. Unfortunately, I am not an nginx expert so I can’t offer much more advice than to simply let Bokeh server serve the BokehJS resources, at least as a first experiment.

Bryan

On Sep 24, 2017, at 14:31, Sebastian Maurice sebastian.maurice@gmail.com wrote:

Attached is the proxy conf:

server {

listen 443;

server_name www.analytix.ai;

   charset     utf-8;

client_max_body_size 30M;

access_log C:/CORE_FILES/nginxlog/access.log;

error_log C:/CORE_FILES/nginxlog/error.log debug;

#The internal IP of the VM that hosts your Apache config

location /{

       if ( $request_uri ~ ^/(\d+)/([^/]+)) {
               proxy_pass   http://192.168.0.101:$1/$2/;
               #proxy_pass   /inetpub/wwwroot/T2A_WEBSITE/stocks/otics/oticslanding/test.php;
       }
 proxy_http_version 1.1;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host [www.analytix.ai](http://www.analytix.ai);
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
       sub_filter "[192.168.0.101:5007](http://192.168.0.101:5007)" "[www.analytix.ai:443](http://www.analytix.ai:443)";
 sub_filter_once off;
 proxy_buffering off;

}

location ~ ^/(\d+)/static/ {

#location /static/ {

autoindex on;

alias /bokehstatic/static/;

}

}

On Saturday, September 23, 2017 at 6:44:44 PM UTC-4, Sebastian Maurice wrote:

Hi,

I have bee struggling with this problem for a few weeks, the problem is detailed here: https://stackoverflow.com/questions/46290307/bokeh-sever-with-nginx-gives-blank-white-screen

Anycase if i connect to Bokeh server directly over port 80 or 443, it is fine, it is when i connect via NGINX (using proxy_pass) to interval server, i connect to Bokeh but what i see on the website is a blanl white screen - this is page source from NGINX/BOKEH:

OTICS WHAT-IF ENGINE

html {

width: 100%;

height: 100%;

}

body {

width: 90%;

height: 100%;

margin: auto;

}

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/7cb6944e-21e4-46a3-bc70-5bfc8442f884%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/A0570586-BB1F-451D-BE09-E8A2FB504D76%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFUD4_i_Q-5_XK6N0kFyOyhmnxAonwdmebc6QejwzfRgw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/EA086083-72A8-4747-9D53-D7D4321C82E7%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEizVhvyuXLieHCGoCm3WcmFA9nemhajJn6RAWjYq7ZEw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3746B56F-B754-4E41-B64D-77B8A0AAE736%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGTAF_cJS-%2B%2BAzy48pXu661DSJ2LVO%3DdQvSw6YdJrJ3YA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/AFFFF2F5-D197-49A4-80E5-5025F023491F%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rFNQ8Yp6U%2BfvjJMR8p5RYjCMHUo-T5k7r0nHp7PeLGBHQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/098E9681-D9EC-420F-AAF3-AAA19B09113A%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rHY9AGHx8nE1dFEBrtuX-tRKps4e44YjQMCHOCtGq6WtA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/113652B0-60B2-404A-83AB-482FFDFDE1C8%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGiFZM67XCt866TF7c_9pYHHj01%2BbzELgomoP2C9NWo%3DQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/11552BF6-96C9-4A81-824B-A7E55955D416%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGRCUf_imtiKvv9s-bfJm%3Dpi_hWs_QT4MHonv2SR80XwA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehscreen.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/0B0F39CB-D416-41AC-99F3-BB2FFFA908A9%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEAKOFmWFuvZyCjNjkR_jas5wsBaLC0Wx1rgZQYXYr_Qw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/C3873E0D-8885-4C08-93E1-76E18BD41113%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rGdcyYV6QV-HGwwO3qXHm4sNdKTGTXkyYo99tv%2B86KAKw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehexp1.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/31988AFE-D273-4842-AC59-867D7E0CEA7B%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rG-Hnm_B%3DsX6KmLtEh6UAXxEb26h0W47%3D43Uu_9jKuKoA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

<bokehplot.png>

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/03CCE490-C414-42CD-BD01-F4A095BC76AE%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rE9aWkxrRQ7wHO5T9HJMm9sMALEygOJWubhuiRSOMSmNw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/F2r24O-qob4/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/2698A794-EAD9-4011-8517-069054DB7799%40anaconda.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CADZk7rEHoEv90FjQ_6%2BDGUDsgzz0fNXDWvP1_5RmfneV78n-Rg%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/66D79A1B-FCAA-4603-A356-6FF0761847AE%40anaconda.com.

–


Sebastian Maurice, PhD

Mobile: 403-612-5443

⌁   Link to post
Bryan
Bryan

Hi,

So there are things about your Nginx config I simply don't know enough about to really adapt. So I went back to the guidance in the users docs, and found a configuration that is working. I hope that it will prove useful enough as a comparison to get you going and adapt to your setup. For reference, I used Nginx 1.13.5 on Win 10 with Bokeh 0.12.9.

After the two steps below, I navigated to http://192.168.155.129/bokehwhatif in a browser outside the VM and could see and interact with the app as expected.

1) Start bokeh server with this command:

  bokeh serve bokehwhatif.py --allow-websocket-origin 192.168.155.129 --port 5100

2) Start Nginx wit this config:

#user nobody;

worker_processes 4;

events {
    worker_connections 1024;
}

http {
  sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#include C:/Users/smaurice/AppData/Local/Programs/Python/Python35/Lib/site-packages/bokeh/server/static/;

default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css application/json;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

server {
    listen 192.168.155.129;
    server_name _;

    access_log C:/Users/builder/nginxlog/access.log;
    error_log C:/Users/builder/nginxlog/error.log debug;

    location / {
        proxy_pass http://127.0.0.1:5100;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host:$server_port;
        proxy_buffering off;
    }

}

}

⌁   Link to post
Bryan
Bryan

It occurs to me you might be trying to run with bokeh server on two different machines. I am simply not set up to run both bokeh and nginx on two different windows machines. But I used this config to run bokeh on a windows VM and Nginx on my bare mac laptop:

After the two steps below, I navigated to http://127.0.0.1:8080/bokehwhatif in a browser outside the VM and could see and interact with the app as expected.

1) start Bokeh server with this command:

  bokeh serve bokehwhatif.py --allow-websocket-origin 127.0.0.1:8080 --port 5100

2) start nginx outside VM with this config:

#user nobody;

worker_processes 4;

events {
   worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#include C:/Users/smaurice/AppData/Local/Programs/Python/Python35/Lib/site-packages/bokeh/server/static/;

default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css application/json;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

server {
   listen 8080 default_server;
   server_name _;

   access_log /tmp/access.log;
   error_log /tmp/error.log debug;

   location / {
       proxy_pass http://192.168.155.129:5100;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_http_version 1.1;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $host:$server_port;
       proxy_buffering off;
   }

}

}

···

On Oct 3, 2017, at 21:13, Bryan Van de ven <bryan@bokeh.org> wrote:

Hi,

So there are things about your Nginx config I simply don't know enough about to really adapt. So I went back to the guidance in the users docs, and found a configuration that is working. I hope that it will prove useful enough as a comparison to get you going and adapt to your setup. For reference, I used Nginx 1.13.5 on Win 10 with Bokeh 0.12.9.

After the two steps below, I navigated to http://192.168.155.129/bokehwhatif in a browser outside the VM and could see and interact with the app as expected.

1) Start bokeh server with this command:

  bokeh serve bokehwhatif.py --allow-websocket-origin 192.168.155.129 --port 5100

2) Start Nginx wit this config:

#user nobody;

worker_processes 4;

events {
   worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#include C:/Users/smaurice/AppData/Local/Programs/Python/Python35/Lib/site-packages/bokeh/server/static/;

default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css application/json;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

server {
   listen 192.168.155.129;
   server_name _;

   access_log C:/Users/builder/nginxlog/access.log;
   error_log C:/Users/builder/nginxlog/error.log debug;

   location / {
       proxy_pass http://127.0.0.1:5100;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_http_version 1.1;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $host:$server_port;
       proxy_buffering off;
   }

}

}

⌁   Link to post
Bryan
Bryan

More comments:

With these configurations Bokeh server itself is serving BokehJS. I'd just staring with that until there is a proven need not to. At that point, it will probably be good to engage with someone who has much more nginx experience. If there were 403s (I think at some point?) that's most likely because --allow-websocket-origins was set incorrectly (reminder: it needs to be whatever the user will put *in their navigation bar* That is the "origin" and what bokeh needs to be told to OK) If there are 404s that has to do with your static file differences (I'm guessing) and I can't really help with that remotely.

Thanks,

Bryan

···

On Oct 3, 2017, at 21:27, Bryan Van de ven <bryan@bokeh.org> wrote:

It occurs to me you might be trying to run with bokeh server on two different machines. I am simply not set up to run both bokeh and nginx on two different windows machines. But I used this config to run bokeh on a windows VM and Nginx on my bare mac laptop:

After the two steps below, I navigated to http://127.0.0.1:8080/bokehwhatif in a browser outside the VM and could see and interact with the app as expected.

1) start Bokeh server with this command:

  bokeh serve bokehwhatif.py --allow-websocket-origin 127.0.0.1:8080 --port 5100

2) start nginx outside VM with this config:

#user nobody;

worker_processes 4;

events {
  worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#include C:/Users/smaurice/AppData/Local/Programs/Python/Python35/Lib/site-packages/bokeh/server/static/;

default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css application/json;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

server {
  listen 8080 default_server;
  server_name _;

  access_log /tmp/access.log;
  error_log /tmp/error.log debug;

  location / {
      proxy_pass http://192.168.155.129:5100;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host:$server_port;
      proxy_buffering off;
  }

}

}

On Oct 3, 2017, at 21:13, Bryan Van de ven <bryan@bokeh.org> wrote:

Hi,

So there are things about your Nginx config I simply don't know enough about to really adapt. So I went back to the guidance in the users docs, and found a configuration that is working. I hope that it will prove useful enough as a comparison to get you going and adapt to your setup. For reference, I used Nginx 1.13.5 on Win 10 with Bokeh 0.12.9.

After the two steps below, I navigated to http://192.168.155.129/bokehwhatif in a browser outside the VM and could see and interact with the app as expected.

1) Start bokeh server with this command:

  bokeh serve bokehwhatif.py --allow-websocket-origin 192.168.155.129 --port 5100

2) Start Nginx wit this config:

#user nobody;

worker_processes 4;

events {
  worker_connections 1024;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#include C:/Users/smaurice/AppData/Local/Programs/Python/Python35/Lib/site-packages/bokeh/server/static/;

default_type application/octet-stream;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css application/json;
open_file_cache max=10000 inactive=10m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
ignore_invalid_headers on;
client_max_body_size 8m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;

server {
  listen 192.168.155.129;
  server_name _;

  access_log C:/Users/builder/nginxlog/access.log;
  error_log C:/Users/builder/nginxlog/error.log debug;

  location / {
      proxy_pass http://127.0.0.1:5100;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host:$server_port;
      proxy_buffering off;
  }

}

}

⌁   Link to post

Discussion continues on the next page