[squid-users] squid - kid registration timed out
Amos Jeffries
squid3 at treenet.co.nz
Mon Dec 4 16:02:50 UTC 2017
On 04/12/17 21:58, carlos wrote:
> Hi Amos,
>
> Yes i think i did all the adjustments, different pid file, log dirs,
> proccess names, listening port...
>
> it also happens after startup, sometimes after a random time, load is not
> the problem since the server is not taking requests yet.
>
> The config is this (i swapped real values for X):
>
> acl all src all
> acl SSL_ports port X X X
> acl Safe_ports port X-X
> acl CONNECT method CONNECT
>
> http_access allow CONNECT SSL_ports all
> http_access allow CONNECT Safe_ports all
>
> acl ftp proto FTP
> always_direct allow FTP
> http_reply_access allow all
> http_access allow ftp
> icp_access allow all
>
> http_access allow localhost
> http_access allow all
>
>
> pid_filename /var/run/squid.pid
>
> http_port 80
>
> http_access allow manager localhost
> http_access deny manager
>
> logfile_rotate 30
>
> visible_hostname squid_8080_${process_number}
>
> cache deny all
>
> logformat access %{%d-%m-%Y %H:%M:%S}tl.%tu %<pt %<tt %>a %Ss/%03>Hs
> %<st %rm %>ru %un %Sh/%<a %mt
> access_log /var/log/squid/access8080_${process_number}.log logformat=access
> cache_log /var/log/squid/cachelog8080_${process_number}.log
>
> acl XXXX dstdomain xxxxx.zzz
> url_rewrite_access allow XXXX
> url_rewrite_access deny !XXXX
> url_rewrite_program /bin/rewrite
>
>
> workers 4
>
>
> Do you see anything wrong?
>
I see a few things that indicate you are confusing instance and process.
"squid" is a daemon manager *already* wrangling a whole collection of
processes
(<https://wiki.squid-cache.org/Features/SmpScale#Terminology>). The
${process_*} macros are a temporary workaround for distinguishing how
those SMP worker processes interpret a config line and has nothing to do
with multi-instance Squid.
To run multiple *instances* with Squid-3+ you need to us the -n command
line option and assign a unique service name to each instance. That must
be used by all scripts and manual commands you run. That is sort of a
weak sandbox for the instances' SMP things to work within. If you omit
that option on the command line you are using the default "squid" namespace.
In squid.conf the ${service_name} macro is replaced with that -n
assigned name to make values for the directives that need to be unique
without having to make multiple squid.conf.
For example; the pid_filename directive default value in Squid-4 has become:
pid_filename /var/run/${service_name}.pid
If you do not use -n option then the SMP workers will be registering
themselves to the wrong coordinators and re-arranging each others shared
memory spaces randomly. Quite a nasty mess happens.
As a result Squid-3 versions which are SMP-enabled but not supporting -n
service names cannot be used in a multi-instance environment. That means
all Squid-3.1 through 3.4.
Amos
More information about the squid-users
mailing list