- 论坛徽章:
- 0
|
环境(所有包都是默认rpm安装的):
redhat as 4
squid-2.5.STABLE6-3
httpd-2.0.52-9.en
问题1:
我将squid.conf中cache位置定义为:
cache_dir ufs /var/squidchache 256 16 256。保存后无法启动squid,cache.log出现“(13)Permission denied”错误。
怀疑是squid用户没有目录权限,于是执行如下:
- mkdir /var/squidcache
- chown -R squid.squid /var/squidcache
- chmod 1777 /var/squidcache
复制代码
可是还是出现该错误。
我甚至修改了squid用户的/etc/passwd属性,su - squid 然后用squid用户登陆shell在/var/squidcache下都有读写权限。所以实在是很疑惑啊。
问题2:
试验用squid的加速模式加速http服务器。配置时squid无法使用80端口,日志出现“(13)Permission denied”错误。squid.conf代码如下:
- http_port 80
- icp_port 0
- acl QUERY urlpath_regex cgi-bin
- no_cache deny QUERY
- cache_mem 16 MB
- cache_dir ufs /var/spool/squid 256 16 256
- log_icp_queries off
- buffered_logs on
- emulate_httpd_log on
- redirect_rewrites_host_header off
- half_closed_clients off
- acl all src 0.0.0.0/0.0.0.0
- http_access allow all
- cache_mgr admin
- visible_hostname webserver
- cache_effective_user squid
- cache_effective_group squid
- httpd_accel_host virtual
- httpd_accel_uses_host_header on
- httpd_accel_port 81
复制代码
由于问题1 还没解决,我只好将cache还是指回到初始的路径“/var/spool/squid”下。可是使用加速http的设置时发现默认的redhat as 4 不能开启80端口。日志中出现错误提示为:
- commBind: Cannot bind socket FD 10 to *:80: (13) Permission denied
- FATAL: Cannot open HTTP Port
复制代码
于是用netstat -lnp 和lsof 查看,发现没有其他程序使用了80端口。(而且,事实上如果端口被占用,squid日志的出错信息是不同的。) 考虑到是否squid没有权限开1024以内的端口,我将“80”改成“82”甚至改成“21”都能正常启动squid。当且仅当端口开成“80”就出Permission denied的错误。极度郁闷。
真相只有一个。
求教各位朋友。 |
|