docker应用栈实践-nginx处理静态文件
在我的djangoweb应用在docker搭建好之后,发现一些css静态文件返回没有content-type属性,导致浏览器log一堆警告,强迫症的我受不了这一情况
目前的应用栈结构图:
一共四个容器,内部连接,其中APP1 APP2里面有两个应用 一个uWSGI的web服务器 一个django应用程序,其他两个容器都是内部一个应用
经过查阅很多资料,发现我使用的uwsgi貌似对mime.types支持的不太好,并没有找到解决方法,于是我决定在nginx上做静态文件的处理,
在nginx的配置文件
location /static/ { proxy_pass http://xxxxxx; alias /app/dockerweb/superpigeons/static; }
因为nginx的alias都会在本机上找文件,所以需要将请求指向到其他的docker容器上,但是我发现这样行不通,因为对应的容器上并没有对文件系统提供服务,如果这样 那就还需要在对应的容器里另起一个服务,实在麻烦,于是我决定在每个app的容器里再起一个nginx,专门对静态文件做处理
这样就可以解决静态文件的问题了,因为nginx对mime.types的支持很友好,返回的content-type都是正确的