Bokeh with NGINX reverse proxy gives a Blank White Screen

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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
> Clarify: that *section* has the effect of bypassing the Bokeh server
>
> Bryan
>
>
> > On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
> >>>> To post to this group, send email to [email protected].
> >>>> 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 [email protected].
> >>> To post to this group, send email to [email protected].
> >>> 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 [email protected].
> >>> To post to this group, send email to [email protected].
> >>> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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\.

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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
> > Clarify: that *section* has the effect of bypassing the Bokeh server
> >
> > Bryan
> >
> >
> > > On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
> > >>>> To post to this group, send email to [email protected].
> > >>>> 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 [email protected].
> > >>> To post to this group, send email to [email protected].
> > >>> 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 [email protected].
> > >>> To post to this group, send email to [email protected].
> > >>> 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 [email protected].
> > To post to this group, send email to [email protected].
> > 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 [email protected].
> > To post to this group, send email to [email protected].
> > 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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\.

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

Great…thanks for giving me a little hope.

···

On Sun, Sep 24, 2017 at 11:15 PM, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
> > > Clarify: that *section* has the effect of bypassing the Bokeh server
> > >
> > > Bryan
> > >
> > >
> > > > On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
> > > >>>> To post to this group, send email to [email protected].
> > > >>>> 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 [email protected].
> > > >>> To post to this group, send email to [email protected].
> > > >>> 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 [email protected].
> > > >>> To post to this group, send email to [email protected].
> > > >>> 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 [email protected].
> > > To post to this group, send email to [email protected].
> > > 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 [email protected].
> > > To post to this group, send email to [email protected].
> > > 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 [email protected].
> > To post to this group, send email to [email protected].
> > 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 [email protected].
> > To post to this group, send email to [email protected].
> > 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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\.

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

Static 403 error in Bokeh attached.

···

On Mon, Sep 25, 2017 at 9:01 AM, Sebastian Maurice [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
>>> > > > Clarify: that *section* has the effect of bypassing the Bokeh server
>>> > > >
>>> > > > Bryan
>>> > > >
>>> > > >
>>> > > > > On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
>>> > > > >>>> To post to this group, send email to [email protected].
>>> > > > >>>> 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 [email protected].
>>> > > > >>> To post to this group, send email to [email protected].
>>> > > > >>> 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 [email protected].
>>> > > > >>> To post to this group, send email to [email protected].
>>> > > > >>> 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 [email protected].
>>> > > > To post to this group, send email to [email protected].
>>> > > > 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 [email protected].
>>> > > > To post to this group, send email to [email protected].
>>> > > > 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 [email protected].
>>> > > To post to this group, send email to [email protected].
>>> > > 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 [email protected].
>>> > > To post to this group, send email to [email protected].
>>> > > 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 [email protected].
>>> > To post to this group, send email to [email protected].
>>> > 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 [email protected].
>>> > To post to this group, send email to [email protected].
>>> > 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 [email protected].
>>> To post to this group, send email to [email protected].
>>> 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 [email protected].
>>> To post to this group, send email to [email protected].
>>> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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>

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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
Clarify: that *section* has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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>

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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
>>>>>>>> Clarify: that *section* has the effect of bypassing the Bokeh server
>>>>>>>>
>>>>>>>> Bryan
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
>>>>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>>>>> 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 [email protected].
>>>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>>>> 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 [email protected].
>>>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>>>> 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 [email protected].
>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>> 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 [email protected].
>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>> 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 [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> 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 [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> 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 [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> 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 [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> 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 [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> 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 [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> 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 [email protected].
>>> To post to this group, send email to [email protected].
>>> 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 [email protected].
>>> To post to this group, send email to [email protected].
>>> 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 [email protected].
>> To post to this group, send email to [email protected].
>> 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 [email protected].
>> To post to this group, send email to [email protected].
>> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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\.

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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
Clarify: that *section* has the effect of bypassing the Bokeh server

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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 [email protected].
To post to this group, send email to [email protected].
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\.

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 [email protected] wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

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 [email protected] wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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

Hi, not sure what you mean…locally it all works.

···

On Mon, Sep 25, 2017 at 9:55 AM, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected] wrote:

On Sep 25, 2017, at 08:28, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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” [email protected] 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 [email protected] 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 [email protected] wrote:

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

Bryan

On Sep 24, 2017, at 16:52, Bryan Van de ven [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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 [email protected].

To post to this group, send email to [email protected].

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