如何配置Nginx在Docker Django应用中提供静态文件

时间:2019-07-13 09:25:32

标签: docker nginx docker-run

我正在设置新服务器并通过docker run -p 8000:8000 --name=somename等运行Django应用程序。 所以现在我需要配置NGINX以提供Django应用程序的静态文件

1 个答案:

答案 0 :(得分:0)

Nginx是代理服务器,因此您必须将其放在Django应用程序之前。对Django应用程序的所有请求都将通过nginx服务器。因此,如果您的Django应用程序在端口8000上运行,则您将运行nginx,该代理将proxy_pass(意味着重定向)所有到DjangoAppIPAddress:8000的非静态资产路由。这是用于执行此操作的示例nginx conf文件:

server {
    ...
    location /uri/for/static/content {
       root /path/to/your/static/files
    }
    location /uri/for/dynamic/content {
       proxy_pass DjangoAppIPAddress:8000
    }
}

如果您在云环境中执行此操作,那么我建议您创建两个不同的Pod。一个用于django应用程序,另一个用于nginx,仅在群集外部公开nginx pod。