Django nginx:使用别名url提供静态内容
我正在使用django和rest框架编写一个web服务,并使用nginx作为我的web服务器 客户机将使用标准REST方法处理API。其中一个模块允许用户上传照片,该服务将名称更改为随机字符串,并将其保存在以下位置:Django nginx:使用别名url提供静态内容,django,web-services,nginx,static,http-status-code-404,Django,Web Services,Nginx,Static,Http Status Code 404,我正在使用django和rest框架编写一个web服务,并使用nginx作为我的web服务器 客户机将使用标准REST方法处理API。其中一个模块允许用户上传照片,该服务将名称更改为随机字符串,并将其保存在以下位置:/home/myProject/files/user content/,如: /home/myProject/files/user content/bb7dfb3436d4b638e50040cf91b8d9d.png 在API级别,一切正常。但是我希望用户能够获得他们上传的文件:/
/home/myProject/files/user content/
,如:
/home/myProject/files/user content/bb7dfb3436d4b638e50040cf91b8d9d.png
在API级别,一切正常。但是我希望用户能够获得他们上传的文件:/image/:filename
比如:http://mydomain/images/bb7dfb34336d4b638e50040cf91b8d9d.png
为了实现这一点,我对nginx的配置如下:
server {
listen 80;
error_page 404 /index.html;
root /home/webworker/landingpage/Page;
index index.html index.htm;
server_name localhost;
location / {
proxy_pass http://0.0.0.0:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
location ~ ^/images/(.*)$ {
alias /home/myProject/files/user-content/$1;
access_log on;
index index.html;
autoindex off;
gzip_static on;
# expires max;
sendfile off;
add_header Cache-Control no-cache;
}
}
nginx服务启动时没有错误,但输入我认为应该可以工作的URL会返回404notfound
。顺便说一句,这些文件对所有用户都有读取权限。替换此行
location ~ ^/images/(.*)$ {
与
这应该可以满足您的需要。您看过nginx日志了吗?它们可能会解释什么不起作用。@Alasdair是的,我看过,没有任何帮助……您能检查nginx访问和错误日志吗?你能确定图像在那里吗@RezaShayestehpouras我说过,图像在我指向的文件夹中,并且具有适当的权限。关于日志:与获取映像相关的是:
MYIPADDRESS-[17/Sep/2015:08:11:29-0400]“GET/images/bb7dfb3436d4b638e50040cf91b8d9d.png HTTP/1.1“404151”-“Mozilla/5.0(Macintosh;Intel Mac OS X 10_10_5)AppleWebKit/600.8.9(KHTML,像Gecko)Version/8.0.8 Safari/600.8.9”
,只是关于将localhost更改为0.0.0.0:80的一些警告您还可以尝试将别名更改为alias/home/myProject/files/user content/?对于测试,只需每隔一行注释一次。我觉得你的地址系统可能有问题@Rezashayestehpourok问题不在于此配置文件,而在于其他地方@RezaShayestehpour
location /images/ {