gpt4 book ai didi

docker - CloudFoundry:nginx用于在Gunicorn(Docker)之上提供静态内容

转载 作者:行者123 更新时间:2023-12-02 19:30:16 24 4
gpt4 key购买 nike

我目前正在Docker容器中运行Gunicorn服务器,该容器同时提供Flask应用程序和静态内容(在Swisscom CloudFoundry上)。

将nginx设置为提供静态内容的反向代理的正确方法是什么?我认为Staticfile buildpack不是要走的路吗?

有人可以指出我正确的方向吗?

最佳答案

如果您使用的是Cloud Foundry,则增加一个或两个额外的实例来扩展您的应用程序并处理更多负载是非常容易的。我建议您这样做,因为它非常简单,并且实际上适用于任何应用程序类型。那,看看客户端缓存。您只需将文件缓存在客户端,就可以减少对静态文件的请求所产生的服务器负载。

如果您确实要提供大量的静态文件,并且扩展应用程序的其他实例的成本效益不高,则可以执行以下操作:

1.)使用Python buildpack推送Flask应用。这将为您的应用提供主要途径。

2.)使用静态文件buildpack使用单独的主机名或上下文路径推送您的应用程序文件。例如:static.example.com或www.example.com/static。

这样,您会将所有请求路由到static.example.com路由或www.example.com/static路由,并路由到由Nginx托管的静态文件(由静态文件buildpack提供)。对您的主要路由或非静态路径的请求最终将转到您的Python应用程序。平台会处理此问题,并确保根据您为每个应用程序定义的路由将路由转到正确的应用程序。

唯一的缺点是,这取决于您要分离出静态内容,以便可以为静态内容映射自定义路由或自定义路由和路径。就是说,我认为这不是问题,因为您正在运行Flask。如果有问题,您可以随时映射多个路线和路径。根据文件的结构,这可能需要映射许多路由和路径。

正如我上面提到的,这具有依赖平台将静态请求路由到一个应用程序并将所有其他请求路由到另一应用程序的优势。如果要尝试将Nginx设置为代理,则会为请求添加更多层的代理和更多的延迟。

关于docker - CloudFoundry:nginx用于在Gunicorn(Docker)之上提供静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com