相关疑难解决方法(0)

启用nginx Chunked Transfer编码

看起来nginx 0.8.35可能支持分块传输编码:

nginx的变化0.8.35 2010年4月1日

*) Change: now the charset filter runs before the SSI filter.

*) Feature: the "chunked_transfer_encoding" directive.
Run Code Online (Sandbox Code Playgroud)

这很好,因为我试图通过nginx反向代理将git更改推送到git-http-backend进程.由于客户端效率原因, Git HTTP利用了分块传输编码.

但是,我无法让它发挥作用.我在Debian Lenny上使用nginx 0.8.44并进行以下配置调用:

./configure \
--sbin-path=/usr/sbin \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--user=www-data \
--group=www-data \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module
Run Code Online (Sandbox Code Playgroud)

以下conf文件:

server {
    server_name example.com;
    location / {
        proxy_pass  http://192.168.0.10;
        include     /etc/nginx/proxy.conf;
        chunked_transfer_encoding on;
    }
}
Run Code Online (Sandbox Code Playgroud)

proxy.conf看起来像这样:

proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header …
Run Code Online (Sandbox Code Playgroud)

nginx chunked-encoding

9
推荐指数
2
解决办法
4万
查看次数

总是在Apache中发送Content-Length?

我正在加载一个由PHP动态生成的特别大的JSON字符串.为了向用户提供一些反馈,我想显示下载进度.

我已经找到了代码,它适用于静态内容,如图像,JS文件等.但是,它似乎不适用于动态文件.

这是有道理的,因为动态文件没有可预测的内容长度,但即使我在PHP中添加它:

ob_start(function($c) {
    header("Content-Length: ".strlen($c));
    return $c;
});
Run Code Online (Sandbox Code Playgroud)

它仍然不发送标题(但如果我添加任何其他标题,它工作正常).

有没有办法强制Apache发送Content-Length标题?目前我唯一的选择是将输出保存到临时文件并改为重定向到它.这可行,但它有点混乱,所以我宁愿避免它,如果可能的话.

apache http-content-length

9
推荐指数
2
解决办法
2万
查看次数

PHP中的"Transfer-Encoding:chunked"标头

我想将Transfer-Encoding: chunked标题添加到我正在输出的文件(它刚刚生成纯文本),但是当我添加:

header("Transfer-Encoding: chunked");
flush();
Run Code Online (Sandbox Code Playgroud)

浏览器不想打开文件.

...的网页可能暂时关闭,或者可能已永久移动到新的网址.

我需要做些什么呢?

php header http

7
推荐指数
1
解决办法
3万
查看次数

PHP:sleep()用于特定的代码行

是否有可能在执行前使用sleep()(或其他一些函数)等待?

我有例如:

<div>bla bla</div>
<?php
$a
echo $a; ?>

some divs and html
<?php
$b
echo $b; ?>
Run Code Online (Sandbox Code Playgroud)

如何在页面加载后5秒执行第一个php脚本,但是在页面加载时显示其他所有内容?如果我在第一个php之前使用sleep(),它将延迟整个页面加载.

php sleep

5
推荐指数
1
解决办法
757
查看次数

为什么我的网站开始下载需要这么长时间?

我有一个服务器上有数百个音频文件(顺便说一句,我拥有所有这些文件),人们可以免费下载它们.我使用以下PHP脚本下载文件:

<?php
header('Content-disposition: attachment; filename=audio.mp3');
header('Content-type: audio/mpeg');
readfile('Part1.mp3');
Run Code Online (Sandbox Code Playgroud)

然而,我的观众抱怨说,下载开始可能需要30秒.我该怎么做才能提高下载的初始化速度?可能吗?

附加信息:

我的网站由iPage托管.

php performance download

0
推荐指数
1
解决办法
139
查看次数