Hosting on Windows IIS server

Any Ideas how to host windows panel app on windows IIS server. I did the basic setup with making panel app servable and works. But users aren’t authenticated with active directory and I believe that is why i cant get user-info inside my panel code. Believe it is just a default user. Need to have a panel object inside my code return user-info.

found this post, was wondering if i get a reverse proxy up an open the inbound port 8080, if panel would then be able to access user info with pn.state.curdoc.session_context.request.cookies[“user”]

The goal is to use IIS as a reverse proxy. IIS is not a reverse proxy by default, so we have to add some modules and then start the configuration. These are all the steps I took:

  1. Install the URL Rewrite package from the Downloads section on the IIS website.
  2. Install the ARR (application request routing) module from the Downloads section on the IIS website.
  3. In IIS, under sites, add a new website and set the Host Name to your FQDN. Also, Choose a Site Name and a Physical Path (I think it doesn’t matter what.) and click OK.
  4. In the left pane, double-click on the website you created. In the modules, double-click on URL Rewrite, then click on Add Rule(s), choose Reverse Proxy and click OK. Then in the new window type 127.0.0.1:my_bokeh_port and hit OK.
  5. From the left pane, double-click on the main tree node with your server name on it, and from the modules, double-click on Application Request Routing Cache. In the right pane, choose Enable proxy, and set HTTP version to Pass through.
  6. Use this guide to set Server Farms. Honestly, I’m not really sure if this step is necessary, but since I had done it before some of the former steps I just mentioned, I thought it might be.
  7. Close and restart IIS.
  8. Now, if you go to your website in your browser, you will probably see your address (for example x.y.‘com’) change to x.y.‘com’/app_myapp. If you can also see your dashboard, then that’s all. If not, however, it means that your firewall is blocking the WebSocket connection. You can use this guide to allow a TCP connection to your Bokeh port.
  9. Hopefully, now you can refresh and see your dashboard.
1 Like

Little confused on best practice to host panel apps on webserver. Seems silly to use reverse proxy on IIS server when I can implement adauth with this bartbroere/bokeh-active-directory: Active Directory authentication for Bokeh servers (github.com) .
then
from tornado.web import decode_signed_value
secure_cookie = pn.state.curdoc.session_context.request.cookies[“user”]
user = decode_signed_value(cookie_secret, “user”, secure_cookie).decode(“utf-8”)
print(“user”)

Any thoughts guys ???

Hi Andre, I just found your post and i’m facing problem to deploy panel app on windows IIS server. I’m not sure that you have found a way to solve this? Can you share with me?

Setup nginx reverse proxy and host range of ports, and round robin. Panel would be better on linux to make most use of tornando webserver.

1 Like