首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载大型文件失败,Squid + c-icap + SquidClamAV

下载大型文件失败,Squid + c-icap + SquidClamAV
EN

Server Fault用户
提问于 2011-12-02 10:30:29
回答 3查看 5.5K关注 0票数 0

我正在用Squid & SquidClamAV构建一个新的代理服务器。

我正面临下载大文件的问题。我已经在squidclamav.conf中设置了52428800字节的最大值--这将防止扫描大于50 of的文件。

通过代理下载任何高达2GB的文件都很好,但是大于2gb的文件会产生以下错误: ICAP协议错误-系统返回:(32)断管

在c服务器日志中,我得到了以下信息: Fri Dec 2 10:19:36 2011,general,Bug In service.请向服务生报告!

下载一个小于2GB大小的文件会立即将下载窗口提供给浏览器。不出所料。

当开始下载2GB以上的内容时,需要一段时间才能生成错误。在/var/tmp之后,我看到它实际上开始下载高达50 in的文件(squidclamav.conf中的maxsize设置!)然后停止并产生错误。

我不明白为什么这种情况发生在比squidclamav中的maxsize更大的文件中。

服务器是一台CentOS 6 32位机器。从源代码编译CentOS (v0.1.7),用CentOS编译squid,从repoforge.org编译clamd+squidclamav .下面我添加了相关的配置文件。

/etc/squid/squid.conf:

代码语言:javascript
运行
复制
...
icap_enable on
icap_send_client_ip on
icap_send_client_username on
icap_client_username_header X-Authenticated-User
icap_service service_req reqmod_precache \
     bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache \ 
     bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_resp allow all

/etc/squidclamav.conf:

代码语言:javascript
运行
复制
maxsize 52428800
redirect http://localproxy/detecteio.php
clamd_local /var/run/clamav/clamd.sock
timeout 1
logredir 0
dnslookup 1

/etc/c-icap.conf:

代码语言:javascript
运行
复制
PidFile /var/run/c-icap/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.ctl
Timeout 300
MaxKeepAliveRequests 100
KeepAliveTimeout 600
StartServers 3
MaxServers 10
MinSpareThreads     10
MaxSpareThreads     20
ThreadsPerChild     10
MaxRequestsPerChild  0
Port 1344
ServerAdmin root@localhost
ServerName localproxy.domain.local
TmpDir /var/tmp
MaxMemObject 131072
DebugLevel 1
ModulesDir /usr/local/lib/c_icap
ServicesDir /usr/local/lib/c_icap
TemplateDir /usr/local/share/c_icap/templates/
TemplateDefaultLanguage en
LoadMagicFile /usr/local/etc/c-icap.magic
RemoteProxyUsers off
RemoteProxyUserHeader X-Authenticated-User
RemoteProxyUserHeaderEncoded on
ServerLog /var/log/c-icap_server.log
AccessLog /var/log/c-icap_access.log
Service squidclamav squidclamav.so
Service echo srv_echo.so

/etc/clamd.conf:

代码语言:javascript
运行
复制
LogFile /var/log/clamav/clamd.log
LogFileMaxSize 0
LogTime yes
LogSyslog yes
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /var/tmp
DatabaseDirectory /var/clamav
LocalSocket /var/run/clamav/clamd.sock
FixStaleSocket yes
TCPSocket 3310
TCPAddr 127.0.0.1
MaxConnectionQueueLength 30
MaxThreads 50
ReadTimeout 300
User clamav
AllowSupplementaryGroups yes
ScanPE yes
ScanELF yes
DetectBrokenExecutables yes
ScanOLE2 yes
ScanMail yes
ScanArchive yes
ArchiveBlockEncrypted no
EN

回答 3

Server Fault用户

回答已采纳

发布于 2011-12-15 11:36:59

代理服务器是用64位Centos 6重新构建的,使用了同样的配置,但问题已经解决了。

票数 0
EN

Server Fault用户

发布于 2011-12-07 17:37:08

通常,32位系统在处理大于2GB的文件时会遇到困难,但是,将下载限制在50 is将表明ClamAV是错误的。

有几个建议;

1)确保Squid是用“--大文件”编译的。

2)使用curl或wget在方框上测试下载(排除浏览器/网络问题)。

3)尝试增加‘/etc/squidclav.conf’中的'maxsize‘指令,看看是否可以下载更大的文件。

4)禁止文件扫描和重新测试。

票数 1
EN

Server Fault用户

发布于 2011-12-06 18:15:45

根据所提供的配置,这个问题似乎不是因为squid,因为配置的限制是50 do,这是防止扫描文件大于此的限制,但它与下载文件的大小无关。请确认用于下载的Web浏览器的名称和版本,因为某些Internet explorer版本只允许下载小于特定大小的文件。例如,如果您试图下载IE6中大于2GB或7中大于4GB的文件,则可能会发生这种行为--在这种情况下,您可以切换到Firefox或任何其他web浏览器。注意:此下载限制已在IE8中删除。因此,您不应该在IE8中体验这种行为。您可以参考此链接获得更多信息,http://support.microsoft.com/kb/298618,希望此信息对您有所帮助。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/336976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档