微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx:X-Accel-Redirect内部不能正常工作

这是我在Nginx上的“内部”设置:

location /issues/ { root /home/some_user/some_project/; internal; }

当我注释掉“内部”部分时,Nginx将在“issue”文件夹中提供该文件,而其中的文件就好了。 但即使启用,我仍然无法从Python或PHP代码提供任何文件

# Python,outputs an empty zip import os file_name = '12.pdf.zip' response = HttpResponse() response['Content-disposition'] = 'attachment; filename=%s' % t_str(file_name) response['Content-Length'] = os.path.getsize(file_path) response['Content-Type'] = "application/zip" response['x-accel-redirect'] = '12.pdf.zip' return response # PHP,does nothing header("x-accel-redirect: 12.pdf.zip");

这些是网站启用/认和Nginx.conf。 8000用于Django,81用于PHP

server { listen 80; ## listen for ipv4 server_name localhost; access_log /var/log/Nginx/localhost.access.log; location / { # proxy / requests to apache running django on port 8081 proxy_pass http://127.0.0.1:8000/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } location /issues/ { root /home/some_user/some_project/; internal; } } worker_processes 1; error_log /var/log/Nginx/error.log; pid /var/run/Nginx.pid; events { worker_connections 1024; # multi_accept on; } http { # include /etc/Nginx/mime.types; access_log /var/log/Nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_disable "MSIE [1-6].(?!.*SV1)"; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; include /etc/Nginx/sites-enabled/*; }

我试过改变Nginx的configuration别名,一样的事情。 并尝试所有可能的文件path。 任何人都可以看到有什么不对? 或者给我一些指点? 谢谢。

loggingDjango网站的在线用户快照(postgresql后端,Nginxnetworking服务器)

如何在Nginx中禁用http2

PHP-FPM和Nginx重写导致下载

在Docker容器中以非root身份运行Nginx会导致权限被拒绝错误

Nginx删除WWW并回应两者

django与Nginx + uwsgi

使用Nginx的Rails多分段环境

针对大型POST请求的Nginx client_body_buffer_size和client_max_body_size优化

在移动设备上使用StartSSL的单实例AWS HTTPS不起作用

使用Nginx或Apache来提供dynamic内容

我不知道为什么我以前无法工作。 也许Nginx维基文档是错误的? 这是我解决它的方法

Nginx / sites-available / default中:

location /issues { root /home/ubuntu; internal; }

在views.py中:

file_name = 'some.zip' url = '/issues/' + file_name response = HttpResponse() response['Content-Type'] = "" response['x-accel-redirect'] = url return response

Zip存档的完整路径是:/home/ubuntu/issues/some.zip

header("x-accel-redirect: /issues/12.pdf.zip");

12.pdf.zip必须位于/ home / some_user / some_project / issues /

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐