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