nginx 同时运行Django和 flask

wvyml7n5  于 2023-03-01  发布在  Nginx
关注(0)|答案(1)|浏览(185)

我想同时运行Django和Flask。Django应用程序将在“hello.com”运行,而Flask应用程序将在“hello.com/flaskapp”运行。我该怎么做?

rt4zxlrg

rt4zxlrg1#

如果你不需要flask中的django-y内容或django中的flak-y内容(即它们完全是独立的应用程序),那么只需设置Web服务器,将对/flaskapp的请求代理到运行Flask的进程,并将/下的其他内容代理到运行Django的进程。
我从来没有在生产环境中这样做过,也从来没有特别地将Django和Flask放在一起,但我经常使用NodeJS开发服务器和Django(或Flask)后端API来代理所有对/api/的请求到我运行Django开发服务器的本地主机上的任何端口。
实现此目的的nginx配置示例:

upstream django {
    # your usual django config using e.g. uwsgi or gunicorn
}

upstream flask {
    # your usual flask config
}

server {
    location / {
        proxy_pass http://django;
    }

    location /flaskapp {
        proxy_pass http://flask;
    }
}

@davidism在评论中提出了一个很好的观点,让Flask知道它并不“拥有”网站根目录。将script_root设置为/flaskapp应该可以做到这一点(参见相关的Flask文档)。

相关问题