为什么 Nginx 反向代理到 Bokeh 服务器不起作用?

为什么 Nginx 反向代理到 Bokeh 服务器不起作用?

我正在尝试设置 Nginx 反向代理到由 Python bokeh 服务器提供服务的 Web 应用程序,按照此处的说明进行操作:

https://bokeh.pydata.org/en/latest/docs/user_guide/server.html

为了进行测试,我使用了来自同一链接的简单 myapp.py。我使用 bokeh serve myapp.py --port 5100 来启动应用程序。

我的 Nginx 服务器已启动并正在运行。我已修改 Nginx 设置以允许反向代理到端口 5100,如下所示:

server {
listen 80 default_server;
server_name _;

access_log  /tmp/bokeh.access.log;
error_log   /tmp/bokeh.error.log debug;

location / {
    proxy_pass http://127.0.0.1:5100;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host:$server_port;
    proxy_buffering off;
}

}

然而当我访问http://本地主机,我被发送到 localhost/myapp 并出现页面 404 错误。该应用程序仍在 localhost:5100/myapp 上正常运行。

我做错了什么?任何帮助或建议都将不胜感激。

答案1

我可以通过--prefix在命令中指定选项来设置 NGINX 以将代理请求反向发送到端口 5006 bokeh serve

Bokeh serve 命令示例:

bokeh serve myapp.py --port=5006 --prefix=/apps

NGINX 配置:

location /apps {
    proxy_pass http://127.0.0.1:5006;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host:$server_port;
    proxy_buffering off;
}

您应该能够使用以下 URL 访问您的 Bokeh 应用程序:http://localhost/apps/myapp

相关内容