【发布时间】:2025-12-14 00:45:01
【问题描述】:
我的网站上有一个大问题。 请帮我解决它。
我有一个站点,用户可以在其中从其他不同站点下载文件(例如像 upload.net 这样的一键式主机)。我们就像一个代理。用户生成链接并直接下载文件。我们的脚本不会在服务器上下载任何内容。有点像高级链接生成器,但不同。并且不违法。
如果用户正在下载大于1GB的文件,当达到1GB时下载将被取消。
在日志文件中我发现重复错误 “读取响应时上游超时(110:连接超时)”
我曾尝试将设置调高,但没有帮助。
我尝试了以下操作:
1. nginx.conf:
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
2. nginx host file:
fastcgi_read_timeout 300;
fastcgi_buffers 8 128k;
fstcgi_buffer_size 256k;
3. PHP.ini:
max_execution_time = 60 (but my php script will set it automaticly to 0)
max_input_time = 60
memory_limit = 128M
4. PHP-FPM >> www.conf
pm.max_children = 25
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 12
request_terminate_timeout = 300s
但没有任何帮助。我该怎么做才能解决这个问题?
Server/Nginx Infos:
Memory: 32079MB
CPU: model name: Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz (8 Cores)
PHP: PHP 5.5.15-1~dotdeb.1 (cli) (built: Jul 24 2014 16:44:04)
NGINX: nginx/1.2.1
nginx.conf:
worker_processes 8;
worker_connections 2048;
但我认为时间设置并不重要。因为每次下载都恰好在 1.604.408 KB 上停止。如果我以 20kb/s 下载,则下载需要更多时间,但会在 1.604.408 KB 时取消。
感谢您的帮助。 如果您需要更多信息,请询问我。
【问题讨论】:
-
请尝试使用 Nginx 的更新版本 - v1.2.1 真的很旧。
-
尝试提高nginx.conf中“fastcgi_connect_timeout”、“fastcgi_read_timeout”的值。
-
我正在使用 dotdeb 包,所以我必须删除 nginx 和 php 才能安装正常/更新。或者我可以在调整sources.list 时简单地覆盖包吗?我应该尝试“fastcgi_connect_timeout”的值是多少?
-
这个问题已经解决了。对于所有其他有相同问题的人:我们的问题是,服务器/脚本将所有内容下载到临时文件夹中。默认值为 1024mb。我们通过 nginx.conf 中的“max_temp_file_size 16G”将值设置为 16gb
-
您能否将您的解决方案发布为答案并标记为已接受? :)