Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Django和Nginx在远程服务器上提供静态和媒体文件_Django_Nginx_Webserver - Fatal编程技术网

使用Django和Nginx在远程服务器上提供静态和媒体文件

使用Django和Nginx在远程服务器上提供静态和媒体文件,django,nginx,webserver,Django,Nginx,Webserver,我正在使用Nginx配置服务器,将子域重定向到远程服务器(在同一本地网络上)上的网站(使用Django制作)。它可以很好地服务于每个站点的内容,但是我在服务静态和媒体文件(例如css)时遇到了麻烦。以下是配置文件的内容: server { listen 80; server_name myaddress.fr location / { proxy_pass

我正在使用Nginx配置服务器,将子域重定向到远程服务器(在同一本地网络上)上的网站(使用Django制作)。它可以很好地服务于每个站点的内容,但是我在服务静态和媒体文件(例如css)时遇到了麻烦。以下是配置文件的内容:

server {
            listen 80;
            server_name myaddress.fr

            location / {
                    proxy_pass              http://192.168.0.85:8000;
            }
}
这里是Django网站中settings.py的结尾(收听频率为192.168.0.85:8000):

通常,当我的网站与nginx位于同一服务器上时,我只需将以下行添加到nginx conf文件中:

location /media/  {
    alias /local/path/to/media/;
}

location /static/ {
    alias /local/path/to/static/;
}
如何将此配置推广到远程服务器上(此处为192.168.0.85)的媒体和静态文件?我应该在远程计算机上安装另一个Web服务器吗


提前感谢您的帮助

您需要某种方式来提供显示这些文件的路径

一种方法是在远程服务器上安装nginx,并像处理应用程序本身一样对其进行代理

另一种选择,因为您说这都在同一个本地网络中。将使用NFS之类的工具将静态目录装载到代理服务器上,以便现有的nginx可以直接为它们提供服务


一个类似的选项是配置staticfiles应用程序以及用户上传文件的存储,以便将其文件直接保存在代理上。

非常感谢,它与第一个解决方案(在远程服务器上安装nginx)一起工作,但其他解决方案似乎也很有趣,有一天我可能需要它们:)
location /media/  {
    alias /local/path/to/media/;
}

location /static/ {
    alias /local/path/to/static/;
}