我正在尝试设置 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
。