カスタム検索
このエントリーをはてなブックマークに追加
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

Proxy(squid)サーバを動かしてみる

Modified: 6 Aug 1999

info.gif (1284 ツバツイツト) 参考にさせていただいたページ

http://www.ycc-kk.co.jp/takeuti/_linux/5squid.htm

http://web.kyoto-inet.or.jp/people/m-ito/linux/squid.html


ダウンロードからインストール
設定して起動する
ブラウザの設定
エラーとその対策


 ダウンロードからインストール

ダウンロード

以下からダウンロードできます。

http://squid.nlanr.net/Squid/

myopinion.gif (1016 ツバツイツト) 私は、"squid-2.2.STABLE4-src.tar.gz" をダウンロードしました。


解凍します

$ gunzip   squid-2.2.STABLE4-src.tar.gz
$ tar  xvf  squid-2.2.STABLE4-src.tar
$

"squid-2.2.STABLE4" というディレクトリができて、その下に解凍されます。


メイクしてインストールします

$ ./configure   --prefix=/usr/local/squid
$ make all
$ su
Password: (password)
# make  install  good.gif (1517 ツバツイツト)
インストールはrootユーザで行わないとエラーになります。
#


初期化する

以下を実行すると、"/usr/local/squid/" の下に、"cache" が作られます。

# /usr/local/squid/bin/squid -z
1999/08/05 22:14:05| Createing Swap Directories
#

 設定して起動する

/etc/squid.conf の変更

最低限、赤いところ(4個所)変更します。

 

#    WELCOME TO SQUID 2
#    ------------------
#
#    This is the default Squid configuration file. You may wish
#    to look at http://cache.is.co.za/squid/ for documentation,
#    or the Squid home page (http://squid.nlanr.net/) for the FAQ.
#
#    The default Squid config file shows what the defaults for
#    various options happen to be. If you don't need to change the
#    default, you shouldn't uncomment the line. Doing so may cause
#    run-time problems. In some cases "none" refers to no default
#    setting at all, whilst in other cases it refers to a valid
#    option - the comments for that keyword indicate if this is the
#    case.
#


# NETWORK OPTIONS
# ---------------------------------------------------

# TAG: http_port
#    The port number where Squid will listen for HTTP client
#    requests. Default is 3128, for httpd-accel mode use port 80.
#    May be overridden with -a on the command line.
#
#    You may specify multiple ports here, but they MUST all be on
#    a single line.
#
http_port 8080
good.gif (1517 ツバツイツト) コメントアウト

# TAG: icp_port
#    The port number where Squid sends and receives ICP requests to
#    and from neighbor caches. Default is 3130. To disable use
#    "0". May be overridden with -u on the command line.
#
#icp_port 3130

# TAG: htcp_port
#    The port number where Squid sends and receives ICP requests to
#    and from neighbor caches. Default is 4827. To disable use
#    "0".
#
#    To enable this option, you must use --enable-htcp with the
#    configure script.
#htcp_port 4827

# TAG: mcast_groups
#    This tag specifies a list of multicast groups which your server
#    should join to receive multicasted ICP requests.
#
#    NOTE! Be very careful what you put here! Be sure you
#    understand the difference between an ICP _query_ and an ICP
#    _reply_. This option is to be set only if you want to RECEIVE
#    multicast queries. Do NOT set this option to SEND multicast
#    ICP (use cache_peer for that). ICP replies are always sent via
#    unicast, so this option does not affect whether or not you will
#    receive replies from multicast group members.
#
#    You must be very careful to NOT use a multicast address which
#    is already in use by another group of caches. NLANR has been
#    assigned a block of multicast address space for use in Web
#    Caching. Plese write to us at nlanr-cache@nlanr.net to receive
#    an address for your own use.
#
#    If you are unsure about multicast, please read the Multicast
#    chapter in the Squid FAQ (http://squid.nlanr.net/Squid/FAQ/).
#
#    Usage: mcast_groups 239.128.16.128 224.0.1.20
#
#    By default, Squid doesn't listen on any multicast groups.
#
#mcast_groups 239.128.16.128

# TAG: tcp_incoming_address
# TAG: tcp_outgoing_address
# TAG: udp_incoming_address
# TAG: udp_outgoing_address
#    Usage: tcp_incoming_address 10.20.30.40
#    udp_outgoing_address fully.qualified.domain.name
#
#    tcp_incoming_address    is used for the HTTP socket which accepts
#                 connections from clients and other caches.
#    tcp_outgoing_address    is used for connections made to remote
#                 servers and other caches.
#    udp_incoming_address    is used for the ICP socket receiving packets
#                 from other caches.
#    udp_outgoing_address    is used for ICP packets sent out to other
#                 caches.
#
#    The default behaviour is to not bind to any specific address.
#
#    NOTE, udp_incoming_address and udp_outgoing_address can not
#    have the same value (unless it is 0.0.0.0) since they both use
#    port 3130.
#
#tcp_incoming_address 0.0.0.0
#tcp_outgoing_address 0.0.0.0
#udp_incoming_address 0.0.0.0
#udp_outgoing_address 0.0.0.0


# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# --------------------------------------------------

# TAG: cache_peer
#    To specify other caches in a hierarchy, use the format:
#
#        hostname type http_port icp_port
#
#    For example,
#
#    # proxy icp
#    # hostname type port port options
#    # -------------------- -------- ----- ----- -----------
#    cache_peer parent.foo.net parent 3128 3130 [proxy-only]
#    cache_peer sib1.foo.net sibling 3128 3130 [proxy-only]
#    cache_peer sib2.foo.net sibling 3128 3130 [proxy-only]
#
#    type: either 'parent', 'sibling', or 'multicast'.
#
#    proxy_port: The port number where the cache listens for proxy
#        requests.
#
#    icp_port: Used for querying neighbor caches about
#        objects. To have a non-ICP neighbor
#        specify '7' for the ICP port and make sure the
#        neighbor machine has the UDP echo port
#        enabled in its /etc/inetd.conf file.
#
#    options: proxy-only
#        weight=n
#        ttl=n
#        no-query
#        default
#        round-robin
#        multicast-responder
#        closest-only
#        no-digest
#        no-netdb-exchange
#        no-delay
#        login=user:password
#
#        use 'proxy-only' to specify that objects fetched
#        from this cache should not be saved locally.
#
#        use 'weight=n' to specify a weighted parent.
#        The weight must be an integer. The default weight
#        is 1, larger weights are favored more.
#
#        use 'ttl=n' to specify a IP multicast TTL to use
#        when sending an ICP request to this address.
#        Only useful when sending to a multicast group.
#        Because we don't accept ICP replies from random
#        hosts, you must configure other group members as
#        peers with the 'multicast-responder' option below.
#
#        use 'no-query' to NOT send ICP queries to this
#        neighbor.
#
#        use 'default' if this is a parent cache which can
#        be used as a "last-resort." You should probably
#        only use 'default' in situations where you cannot
#        use ICP with your parent cache(s).
#
#        use 'round-robin' to define a set of parents which
#        should be used in a round-robin fashion in the
#        absence of any ICP queries.
#
#        'multicast-responder' indicates that the named peer
#        is a member of a multicast group. ICP queries will
#        not be sent directly to the peer, but ICP replies
#        will be accepted from it.
#
#        'closest-only' indicates that, for ICP_OP_MISS
#        replies, we'll only forward CLOSEST_PARENT_MISSes
#        and never FIRST_PARENT_MISSes.
#
#        use 'no-digest' to NOT request cache digests from
#        this neighbor.
#
#        'no-netdb-exchange' disables requesting ICMP
#        RTT database (NetDB) from the neighbor.
#
#        use 'no-delay' to prevent access to this neighbor
#        from influencing the delay pools.
#
#        use 'login=user:password' if this is a personal/workgroup
#        proxy and your parent requires proxy authentication.
#
#    NOTE: non-ICP neighbors must be specified as 'parent'.
#
#cache_peer hostname type 3128 3130

# TAG: cache_peer_domain
#    Use to limit the domains for which a neighbor cache will be
#    queried. Usage:
#
#    cache_peer_domain cache-host domain [domain ...]
#    cache_peer_domain cache-host !domain
#
#    For example, specifying
#
#        cache_peer_domain parent.foo.net     .edu
#
#    has the effect such that UDP query packets are sent to
#    'bigserver' only when the requested object exists on a
#    server in the .edu domain. Prefixing the domainname
#    with '!' means that the cache will be queried for objects
#    NOT in that domain.
#
#    NOTE:    * Any number of domains may be given for a cache-host,
#        either on the same or separate lines.
#        * When multiple domains are given for a particular
#        cache-host, the first matched domain is applied.
#        * Cache hosts with no domain restrictions are queried
#        for all requests.
#        * There are no defaults.
#        * There is also a 'cache_peer_access' tag in the ACL
#        section.

# TAG: neighbor_type_domain
#    usage: neighbor_type_domain parent|sibling domain domain ...
#
#    Modifying the neighbor type for specific domains is now
#    possible. You can treat some domains differently than the the
#    default neighbor type specified on the 'cache_peer' line.
#    Normally it should only be necessary to list domains which
#    should be treated differently because the default neighbor type
#    applies for hostnames which do not match domains listed here.
#
#EXAMPLE:
#    cache_peer parent cache.foo.org 3128 3130
#    neighbor_type_domain cache.foo.org sibling .com .net
#    neighbor_type_domain cache.foo.org sibling .au .de

# TAG: icp_query_timeout    (msec)
#    Normally Squid will automatically determine an optimal ICP
#    query timeout value based on the round-trip-time of recent ICP
#    queries. If you want to override the value determined by
#    Squid, set this 'icp_query_timeout' to a non-zero value. This
#    value is specified in MILLISECONDS, so, to use a 2-second
#    timeout (the old default), you would write:
#
#        icp_query_timeout 2000
#
#icp_query_timeout 0

# TAG: mcast_icp_query_timeout    (msec)
#    For Multicast peers, Squid regularly sends out ICP "probes" to
#    count how many other peers are listening on the given multicast
#    address. This value specifies how long Squid should wait to
#    count all the replies. The default is 2000 msec, or 2
#    seconds.
#
#mcast_icp_query_timeout 2000

# TAG: dead_peer_timeout    (seconds)
#    This controls how long Squid waits to declare a peer cache
#    as "dead." If there are no ICP replies received in this
#    amount of time, Squid will declare the peer dead and not
#    expect to receive any further ICP replies. However, it
#    continues to send ICP queries, and will mark the peer as
#    alive upon receipt of the first subsequent ICP reply.
#
#    This timeout also affects when Squid expects to receive ICP
#    replies from peers. If more than 'dead_peer' seconds have
#    passed since the last ICP reply was received, Squid will not
#    expect to receive an ICP reply on the next query. Thus, if
#    your time between requests is greater than this timeout, you
#    will see a lot of requests sent DIRECT to origin servers
#    instead of to your parents.
#
#dead_peer_timeout 10 seconds

# TAG: hierarchy_stoplist
#    A list of words which, if found in a URL, cause the object to
#    be handled directly by this cache. In other words, use this
#    to not query neighbor caches for certain objects. You may
#    list this option multiple times.
#
#    The default is to directly fetch URLs containing 'cgi-bin' or '?'.
#
#hierarchy_stoplist cgi-bin ?

# TAG: no_cache
#    A list of ACL elements which, if matched, cause the reply to
#    immediately removed from the cache. In other words, use this
#    to force certain objects to never be cached.
#
#    You must use the word 'DENY' to indicate the ACL names which should
#    NOT be cached.
#
#    There is no default. We recommend you uncomment the following
#    two lines.
#
#acl QUERY urlpath_regex cgi-bin \?
#no_cache deny QUERY


# OPTIONS WHICH AFFECT THE CACHE SIZE
# -------------------------------------------------------
# TAG: cache_mem    (bytes)
#    NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS
#    SIZE. IT PLACES A LIMIT ON ONE ASPECT OF SQUID'S MEMORY
#    USAGE. SQUID USES MEMORY FOR OTHER THINGS AS WELL.
#    YOUR PROCESS WILL PROBABLY BECOME TWICE OR THREE TIMES
#    BIGGER THAN THE VALUE YOU PUT HERE
#
#    'cache_mem' specifies the ideal amount of memory to be used
#    for:
#        * In-Transit objects
#        * Hot Objects
#        * Negative-Cached objects
#
#    Data for these objects are stored in 4 KB blocks. This
#    parameter specifies the ideal upper limit on the total size of
#    4 KB blocks allocated. In-Transit objects take the highest
#    priority.
#
#    In-transit objects have priority over the others. When
#    additional space is needed for incoming data, negative-cached
#    and hot objects will be released. In other words, the
#    negative-cached and hot objects will fill up any unused space
#    not needed for in-transit objects.
#
#    If circumstances require, this limit will be exceeded.
#    Specifically, if your incoming request rate requires more than
#    'cache_mem' of memory to hold in-transit objects, Squid will
#    exceed this limit to satisfy the new requests. When the load
#    decreases, blocks will be freed until the high-water mark is
#    reached. Thereafter, blocks will be used to store hot
#    objects.
#
#    The values of cache_mem_low and cache_mem_high (below) can be
#    used to tune the use of the memory pool. When the high mark is
#    reached, in-transit and hot objects will be released to clear
#    space. When an object transfer is completed, it will remain in
#    memory only if the current memory usage is below the low water
#    mark.
#
#    The default is 8 Megabytes.
#
#cache_mem 8 MB

# TAG: cache_swap_low    (percent, 0-100)
# TAG: cache_swap_high    (percent, 0-100)
#    The low- and high-water marks for cache LRU replacement. LRU
#    replacement begins when the high-water mark is reached and ends
#    when enough objects have been removed and the low-water mark is
#    reached. Defaults are 90% and 95%. If you have a large cache, 5%
#    could be hundreds of MB. If this is the case you may wish to
#    set these numbers closer together.
#
#cache_swap_low 90
#cache_swap_high 95

# TAG: maximum_object_size    (bytes)
#    Objects larger than this size will NOT be saved on disk. The
#    value is specified in kilobytes, and the default is 4MB. If
#    you wish to get a high BYTES hit ratio, you should probably
#    increase this (one 32 MB object hit counts for 3200 10KB
#    hits). If you wish to increase speed more than your want to
#    save bandwidth you should leave this low.
#
#maximum_object_size 4096 KB

# TAG: ipcache_size    (number of entries)
# TAG: ipcache_low    (percent)
# TAG: ipcache_high    (percent)
#    The size, low-, and high-water marks for the IP cache.
#
#ipcache_size 1024
#ipcache_low 90
#ipcache_high 95

# TAG: fqdncache_size    (number of entries)
#    Maximum number of FQDN cache entries.
#fqdncache_size 1024


# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# ---------------------------------------------------

# TAG: cache_dir
#    Usage:
#   
#    cache_dir Directory-Name Mbytes Level-1 Level2
#
#    You can specify multiple cache_dir lines to spread the
#    cache among different disk partitions.
#
#    'Directory' is a top-level directory where cache swap
#    files will be stored. If you want to use an entire disk
#    for caching, then this can be the mount-point directory.
#    The directory must exist and be writable by the Squid
#    process. Squid will NOT create this directory for you.
#
#    If no 'cache_dir' lines are specified, the following
#    default will be used: /usr/local/squid/cache.
#
#    'Mbytes' is the amount of disk space (MB) to use under this
#    directory. The default is 100 MB. Change this to suit your
#    configuration.
#
#    'Level-1' is the number of first-level subdirectories which
#    will be created under the 'Directory'. The default is 16.
#
#    'Level-2' is the number of second-level subdirectories which
#    will be created under each first-level directory. The default
#    is 256.
#
cache_dir /usr/local/squid/cache 100 16 256

# TAG: cache_access_log
#    Logs the client request activity. Contains an entry for
#    every HTTP and ICP request received.
#
#cache_access_log /usr/local/squid/logs/access.log

# TAG: cache_log
#    Cache logging file. This is where general information about
#    your cache's behaviour goes. You can increase the amount of data
#    logged to this file with the "debug_options" tag below.
#
#cache_log /usr/local/squid/logs/cache.log

# TAG: cache_store_log
#    Logs the activities of the storage manager. Shows which
#    objects are ejected from the cache, and which objects are
#    saved and for how long. To disable, enter "none". There are
#    not really utilities to analyse this data, so you can safely
#    disable it.
#
#cache_store_log /usr/local/squid/logs/store.log

# TAG: cache_swap_log
#    Location for the cache "swap.log." This log file holds the
#    metadata of objects saved on disk. It is used to rebuild the
#    cache during startup. Normally this file resides in the first
#    'cache_dir' directory, but you may specify an alternate
#    pathname here. Note you must give a full filename, not just
#    a directory. Since this is the index for the whole object
#    list you CANNOT periodically rotate it!
#
#    If you have more than one 'cache_dir', these swap logs will
#    have names such as:
#
#        cache_swap_log.00
#        cache_swap_log.01
#        cache_swap_log.02
#
#    The numbered extension (which is added automatically)
#    corresponds to the order of the 'cache_dir' lines in this
#    configuration file. If you change the order of the 'cache_dir'
#    lines in this file, then these log files will NOT correspond to
#    the correct 'cache_dir' entry (unless you manually rename
#    them). We recommend that you do NOT use this option. It is
#    better to keep these log files in each 'cache_dir' directory.
#
#cache_swap_log

# TAG: emulate_httpd_log    on|off
#    The Cache can emulate the log file format which many 'httpd'
#    programs use. To disable/enable this emulation, set
#    emulate_httpd_log to 'off' or 'on'. The default
#    is to use the native log format since it includes useful
#    information that Squid-specific log analysers use.
#
#emulate_httpd_log off

# TAG: mime_table
#    Pathname to Squid's MIME table. You shouldn't need to change
#    this, but the default file contains examples and formatting
#    information if you do.
#
#mime_table /usr/local/squid/etc/mime.conf

# TAG: log_mime_hdrs    on|off
#    The Cache can record both the request and the response MIME
#    headers for each HTTP transaction. The headers are encoded
#    safely and will appear as two bracketed fields at the end of
#    the access log (for either the native or httpd-emulated log
#    formats). To enable this logging set log_mime_hdrs to 'on'.
#
#log_mime_hdrs off

# TAG: useragent_log
#    If configured with the "--enable-useragent_log" configure
#    option, Squid will write the User-Agent field from HTTP
#    requests to the filename specified here. By default
#    useragent_log is disabled.
#
#useragent_log none

# TAG: pid_filename
#    A filename to write the process-id to. To disable, enter "none".
#
#pid_filename /usr/local/squid/logs/squid.pid

# TAG: debug_options
#    Logging options are set as section,level where each source file
#    is assigned a unique section. Lower levels result in less
#    output, Full debugging (level 9) can result in a very large
#    log file, so be careful. The magic word "ALL" sets debugging
#    levels for all sections. We recommend normally running with
#    "ALL,1".
#
#debug_options ALL,1

# TAG: log_fqdn    on|off
#    Turn this on if you wish to log fully qualified domain names
#    in the access.log. To do this Squid does a DNS lookup of all
#    IP's connecting to it. This can (in some situations) increase
#    latency, which makes your cache seem slower for interactive
#    browsing.
#
#log_fqdn off

# TAG: client_netmask
#    A netmask for client addresses in logfiles and cachemgr output.
#    Change this to protect the privacy of your cache clients.
#    A netmask of 255.255.255.0 will log all IP's in that range with
#    the last digit set to '0'.
#
#client_netmask 255.255.255.255


# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
# ----------------------------------------------------

# TAG: ftp_user
#    If you want the anonymous login password to be more informative
#    (and enable the use of picky ftp servers), set this to something
#    resonable for your domain, like wwwuser@somewhere.net
#
#    The reason why this is domainless by default is that the
#    request can be made on the behalf of a user in any domain,
#    depending on how the cache is used.
#    Some ftp server also validate that the email address is valid
#    (for example perl.com).
#
#ftp_user Squid@

# TAG: ftp_list_width
#    Sets the width of ftp listings. This should be set to fit in
#    the width of a standard browser. Setting this too small
#    can cut off long filenames when browsing ftp sites.
#
#ftp_list_width 32

# TAG: cache_dns_program
#    Specify the location of the executable for dnslookup process.
#
#cache_dns_program /usr/local/squid/bin/dnsserver

# TAG: dns_children
#    The number of processes spawn to service DNS name lookups.
#    For heavily loaded caches on large servers, you should
#    probably increase this value to at least 10. The maximum
#    is 32. The default is 5.
#
#    To disable dnsservers, set this to 0. NOTE, this is very
#    strongly discouraged. If you disable dnsservers your Squid
#    process will BLOCK on DNS lookups!
#
#dns_children 5

# TAG: dns_defnames    on|off
#    Normally the 'dnsserver' disables the RES_DEFNAMES resolver
#    option (see res_init(3)). This prevents caches in a hierarchy
#    from interpreting single-component hostnames locally. To allow
#    dnsserver to handle single-component names, enable this
#    option.
#
#dns_defnames off

# TAG: dns_nameservers
#    Use this if you want to specify a list of DNS name servers
#    (IP addresses) to use instead of those given in your
#    /etc/resolv.conf file.
#
#    Example: dns_nameservers 10.0.0.1 192.172.0.4
#
#dns_nameservers none

# TAG: unlinkd_program
#    Specify the location of the executable for file deletion process.
#    This isn't needed if you are using async-io since it's handled by
#    a thread.
#
#unlinkd_program /usr/local/squid/bin/unlinkd

# TAG: pinger_program
#    Specify the location of the executable for the pinger process.
#    This is only useful if you configured Squid (during compliation)
#    with the '--enable-icmp' option.
#
#pinger_program /usr/local/squid/bin/pinger

# TAG: redirect_program
#    Specify the location of the executable for the URL redirector.
#    Since they can perform almost any function there isn't one included.
#    See the Release-Notes for information on how to write one.
#    By default, a redirector is not used.
#
#redirect_program none

# TAG: redirect_children
#    The number of redirector processes to spawn. If you start
#    too few Squid will have to wait for them to process a backlog of
#    URLs, slowing it down. If you start too many they will use RAM
#    and other system resources.
#
#redirect_children 5

# TAG: redirect_rewrites_host_header
#    By default Squid rewrites any Host: header in redirected requests.
#    If you are running a accelerator then this may not be a wanted effect
#    of a redirector.
#redirect_rewrites_host_header on

# TAG: authenticate_program
#    Specify the command for the external authenticator. Such a
#    program reads a line containing "username password" and replies
#    "OK" or "ERR" in an endless loop. If you use an authenticator,
#    make sure you have 1 acl of type proxy_auth. By default, the
#    authenticator_program is not used.
#
#    If you want to use the traditional proxy authentication,
#    jump over to the ../auth_modules/NCSA directory and
#    type:
#        % make
#        % make install
#
#    Then, set this line to something like
#
#    authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd
#
#authenticate_program none

# TAG: authenticate_children
#    The number of authenticator processes to spawn (default 5). If you
#    start too few Squid will have to wait for them to process a backlog
#    of usercode/password verifications, slowing it down. When password
#    verifications are done via a (slow) network you are likely to need
#    lots of authenticator processes.
#
#authenticate_children 5

# TAG: authenticate_ttl
#    The time a checked username/password combination remains cached
#    (default 3600). If a wrong password is given for a cached user,
#    the user gets removed from the username/password cache forcing
#    a revalidation.
#
#authenticate_ttl 3600


# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------
# TAG: wais_relay_host
# TAG: wais_relay_port
#    Relay WAIS request to host (1st arg) at port (2 arg).
#
#wais_relay_host localhost
#wais_relay_port 8000

# TAG: request_size    (KB)
#    Maximum allowed request size in kilobytes. If people are using
#    POST to upload files, then set this to the largest acceptable
#    filesize plus a few extra kbytes.
#
#request_size 100 KB

# TAG: refresh_pattern
#    usage: refresh_pattern [-i] regex min percent max [options]
#
#    By default, regular expressions are CASE-SENSITIVE. To make
#    them case-insensitive, use the -i option.
#
#    min and max are specified in MINUTES.
#    percent is an integer number.
#
#    options: override-expire
#        override-lastmod
#        reload-into-ims
#        ignore-reload
#
#        override-expire enforces min age even if the server
#        sent a Expires: header. Doing this VIOLATES the HTTP
#        standard. Enabling this feature could make you liable
#        for problems which it causes.
#
#        override-lastmod enforces min age even on objects
#        that was modified recently.
#
#        reload-into-ims changes client no-cache or ``reload''
#        to If-Modified-Since requests. Doing this VIOLATES the
#        HTTP standard. Enabling this feature could make you
#        liable for problems which it causes.
#
#        ignore-reload ignores a client no-cache or ``reload''
#        header. Doing this VIOLATES the HTTP standard. Enabling
#        this feature could make you liable for problems which
#        it causes.
#       
#    Please see the file doc/Release-Notes-1.1.txt for a full
#    description of Squid's refresh algorithm. Basically a
#    cached object is: (the order is changed from 1.1.X)
#
#        FRESH if expires < now, else STALE
#        STALE if age > max
#        FRESH if lm-factor < percent, else STALE
#        FRESH if age < min
#        else STALE
#
#    The refresh_pattern lines are checked in the order listed here.
#    The first entry which matches is used. If none of the entries
#    match, then the default will be used.
#
#Default:
#refresh_pattern        ^ftp:         1440    20%     10080
#refresh_pattern        ^gopher:    1440     0%    1440
#refresh_pattern     .        0     20%    4320

# TAG: reference_age
#    As a part of normal operation, Squid performs Least Recently
#    Used removal of cached objects. The LRU age for removal is
#    computed dynamically, based on the amount of disk space in
#    use. The dynamic value can be seen in the Cache Manager 'info'
#    output.
#
#    The 'reference_age' parameter defines the maximum LRU age. For
#    example, setting reference_age to '1 week' will cause objects
#    to be removed if they have not been accessed for a week or
#    more. The default value is one month.
#
#    Specify a number here, followed by units of time. For example:
#        1 week
#        3.5 days
#        4 months
#        2.2 hours
#
#reference_age 1 month

# TAG: quick_abort_min    (KB)
# TAG: quick_abort_max    (KB)
# TAG: quick_abort_pct    (percent)
#    The cache can be configured to continue downloading aborted
#    requests. This may be undesirable on slow (e.g. SLIP) links
#    and/or very busy caches. Impatient users may tie up file
#    descriptors and bandwidth by repeatedly requesting and
#    immediately aborting downloads.
#
#    When the user aborts a request, Squid will check the
#    quick_abort values to the amount of data transfered until
#    then.
#
#    If the transfer has less than 'quick_abort_min' KB remaining,
#    it will finish the retrieval. Setting 'quick_abort_min' to -1
#    will disable the quick_abort feature.
#
#    If the transfer has more than 'quick_abort_max' KB remaining,
#    it will abort the retrieval.
#
#    If more than 'quick_abort_pct' of the transfer has completed,
#    it will finish the retrieval.
#
#quick_abort_min 16 KB
#quick_abort_max 16 KB
#quick_abort_pct 95

# TAG: negative_ttl    time-units
#    Time-to-Live (TTL) for failed requests. Certain types of
#    failures (such as "connection refused" and "404 Not Found") are
#    negatively-cached for a configurable amount of time. The
#    default is 5 minutes. Note that this is different from
#    negative caching of DNS lookups.
#
#negative_ttl 5 minutes

# TAG: positive_dns_ttl    time-units
#    Time-to-Live (TTL) for positive caching of successful DNS lookups.
#    Default is 6 hours (360 minutes). If you want to minimize the
#    use of Squid's ipcache, set this to 1, not 0.
#
#positive_dns_ttl 6 hours

# TAG: negative_dns_ttl    time-units
#    Time-to-Live (TTL) for negative caching of failed DNS lookups.
#
#negative_dns_ttl 5 minutes

# TAG: range_offset_limit    (bytes)
#    Sets a upper limit on how far into the the file a Range request
#    may be to cause Squid to prefetch the whole file. If beyond this
#    limit then Squid forwards the Range request as it is and the result
#    is NOT cached.
#
#    This is to stop a far ahead range request (lets say start at 17MB)
#    from making Squid fetch the whole object up to that point before
#    sending anything to the client.
#
#    A value of -1 causes Squid to always fetch the object from the
#    beginning so that it may cache the result. (2.0 style)
#
#    A value of 0 causes Squid to never fetch more than the client
#    client requested. (default)
#
#range_offset_limit 0 KB


# TIMEOUTS
# ------------------------------------------------------

# TAG: connect_timeout    time-units
#    Some systems (notably Linux) can not be relied upon to properly
#    time out connect(2) requests. Therefore the Squid process
#    enforces its own timeout on server connections. This parameter
#    specifies how long to wait for the connect to complete. The
#    default is two minutes (120 seconds).
#
#connect_timeout 120 seconds

# TAG: siteselect_timeout    time-units
#    For URN to multiple URL's URL selection
#
#siteselect_timeout 4 seconds

# TAG: read_timeout    time-units
#    The read_timeout is applied on server-side connections. After
#    each successful read(), the timeout will be extended by this
#    amount. If no data is read again after this amount of time,
#    the request is aborted and logged with ERR_READ_TIMEOUT. The
#    default is 15 minutes.
#
#read_timeout 15 minutes

# TAG: request_timeout
#    How long to wait for an HTTP request after connection
#    establishment. For persistent connections, wait this long
#    after the previous request completes.
#
#request_timeout 30 seconds

# TAG: client_lifetime    time-units
#    The maximum amount of time that a client (browser) is allowed to
#    remain connected to the cache process. This protects the Cache
#    from having alot of sockets (and hence file descriptors) tied up
#    in a CLOSE_WAIT state from remote clients that go away without
#    properly shutting down (either because of a network failure or
#    because of a poor client implementation). The default is one
#    day, 1440 minutes.
#
#    NOTE: The default value is intended to be much larger than any
#    client would ever need to be connected to your cache. You
#    should probably change client_lifetime only as a last resort.
#    If you seem to have many client connections tying up
#    filedescriptors, we recommend first tuning the read_timeout,
#    request_timeout, pconn_timeout and quick_abort values.
#
#client_lifetime 1 day

# TAG: half_closed_clients
#    Some clients may shutdown the sending side of their TCP
#    connections, while leaving their receiving sides open.     Sometimes,
#    Squid can not tell the difference between a half-closed and a
#    fully-closed TCP connection. By default, half-closed client
#    connections are kept open until a read(2) or write(2) on the
#    socket returns an error. Change this option to 'off' and Squid
#    will immediately close client connections when read(2) returns
#    "no more data to read."
#
#half_closed_clients on

# TAG: pconn_timeout
#    Timeout for idle persistent connections to servers and other
#    proxies.
#pconn_timeout 120 seconds

# TAG: ident_timeout
#    Maximum time to wait for IDENT requests. If this is too high,
#    and you enabled 'ident_lookup', then you might be susceptible
#    to denial-of-service by having many ident requests going at
#    once.
#
#    This option may be disabled by using --disable-ident with
#    the configure script.
#ident_timeout 10 seconds

# TAG: shutdown_lifetime    time-units
#    When SIGTERM or SIGHUP is received, the cache is put into
#    "shutdown pending" mode until all active sockets are closed.
#    This value is the lifetime to set for all open descriptors
#    during shutdown mode. Any active clients after this many
#    seconds will receive a 'timeout' message.
#
#shutdown_lifetime 30 seconds


# ACCESS CONTROLS
# ------------------------------------------------------

# TAG: acl
#    Defining an Access List
#
#    acl aclname acltype string1 ...
#    acl aclname acltype "file" ...
#
#    when using "file", the file should contain one item per line
#
#    acltype is one of src dst srcdomain dstdomain url_pattern
#        urlpath_pattern time port proto method browser user
#
#    By default, regular expressions are CASE-SENSITIVE. To make
#    them case-insensitive, use the -i option.
#
#    acl aclname src ip-address/netmask ... (clients IP address)
#    acl aclname src addr1-addr2/netmask ... (range of addresses)
#    acl aclname dst ip-address/netmask ... (URL host's IP address)
#    acl aclname myip ip-address/netmask ... (local socket IP address)
#
#    acl aclname srcdomain foo.com ... # reverse lookup, client IP
#    acl aclname dstdomain foo.com ... # Destination server from URL
#    acl aclname srcdom_regex [-i] xxx ... # regex matching client name
#    acl aclname dstdom_regex [-i] xxx ... # regex matching server
#    # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
#    # based URL is used. The name "none" is used if the reverse lookup
#    # fails.
#
#    acl aclname time [day-abbrevs] [h1:m1-h2:m2]
#    day-abbrevs:
#        S - Sunday
#        M - Monday
#        T - Tuesday
#        W - Wednesday
#        H - Thursday
#        F - Friday
#        A - Saturday
#    h1:m1 must be less than h2:m2
#    acl aclname url_regex [-i] ^http:// ...    # regex matching on whole URL
#    acl aclname urlpath_regex [-i] \.gif$ ...    # regex matching on URL path
#    acl aclname port 80 70 21 ...
#    acl aclname port 0-1024 ...         # ranges allowed
#    acl aclname proto HTTP FTP ...
#    acl aclname method GET POST ...
#    acl aclname browser [-i] regexp
#    # pattern match on User-Agent header
#    acl aclname ident username ...
#    # string match on ident output.
#    # use REQUIRED to accept any non-null ident.
#    acl aclname src_as number ...
#    acl aclname dst_as number ...
#    # Except for access control, AS numbers can be used for
#    # routing of requests to specific caches. Here's an
#    # example for routing all requests for AS#1241 and only
#    # those to mycache.mydomain.net:
#    # acl asexample dst_as 1241
#    # cache_peer_access mycache.mydomain.net allow asexample
#    # cache_peer_access mycache_mydomain.net deny all
#
#    acl aclname proxy_auth username ...
#    # list of valid usernames
#    # use REQUIRED to accept any valid username.
#    #
#    # NOTE: when a Proxy-Authentication header is sent but it is not
#    # needed during ACL checking the username is NOT logged
#    # in access.log.
#    #
#    # NOTE: proxy_auth requires a EXTERNAL authentication program
#    # to check username/password combinations (see
#    # authenticate_program).
#    #
#    # WARNING: proxy_auth can't be used in a transparent proxy. It
#    # collides with any authentication done by origin servers. It may
#    # seem like it works at first, but it doesn't.
#
#    acl aclname snmp_community string ...
#    # A community string to limit access to your SNMP Agent
#    # Example:
#    #
#    #    acl snmppublic snmp_community public
#
#
#Examples:
#acl myexample dst_as 1241
#acl password proxy_auth 300
#
#Defaults:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT

# TAG: http_access
#    Allowing or Denying access based on defined access lists
#
#    Access to the HTTP port:
#    http_access allow|deny [!]aclname ...
#
#    Access to the ICP port:
#    icp_access allow|deny [!]aclname ...
#
#    NOTE on default values:
#
#    If there are no "access" lines present, the default is to allow
#    the request.
#
#    If none of the "access" lines cause a match, the default is the
#    opposite of the last line in the list. If the last line was
#    deny, then the default is allow. Conversely, if the last line
#    is allow, the default will be deny. For these reasons, it is a
#    good idea to have an "deny all" or "allow all" entry at the end
#    of your access lists to avoid potential confusion.
#
#Default configuration:
#http_access allow manager localhost
http_access allow all

http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
#http_access deny all

# TAG: icp_access
#    Reply to all ICP queries we receive
#
icp_access allow all

# TAG: miss_access
#    Use to force your neighbors to use you as a sibling instead of
#    a parent. For example:
#
#        acl localclients src 172.16.0.0/16
#        miss_access allow localclients
#        miss_access deny !localclients
#
#    This means that only your local clients are allowed to fetch
#    MISSES and all other clients can only fetch HITS.
#
#    By default, allow all clients who passed the http_access rules
#    to fetch MISSES from us.
miss_access allow all

# TAG: cache_peer_access
#    Similar to 'cache_peer_domain' but provides more flexibility by
#    using ACL elements.
#
#    cache_peer_access cache-host allow|deny [!]aclname ...
#
#    The syntax is identical to 'http_access' and the other lists of
#    ACL elements. See the comments for 'http_access' below, or
#    the Squid FAQ (http://squid.nlanr.net/Squid/FAQ/FAQ-10.html).

# TAG: proxy_auth_realm
#    Specifies the realm name which is to be reported to the client for
#    proxy authentication (part of the text the user will see when
#    prompted their username and password).
#
#proxy_auth_realm Squid proxy-caching web server

# TAG: ident_lookup_access
#    A list of ACL elements which, if matched, cause an ident
#    (RFC 931) lookup to be performed for this request. For
#    example, you might choose to always perform ident lookups
#    for your main multi-user Unix boxes, but not for your Macs
#    and PCs. By default, ident lookups are not performed for
#    any requests.
#
#    To enable ident lookups for specific client addresses, you
#    can follow this example:
#
#    acl ident_aware_hosts src 198.168.1.0/255.255.255.0
#    ident_lookup_access allow ident_aware_hosts
#    ident_lookup_access deny all
#
#    This option may be disabled by using --disable-ident with
#    the configure script.
#ident_lookup_access deny all


# ADMINISTRATIVE PARAMETERS
# ----------------------------------------------------

# TAG: cache_mgr
#    Email-address of local cache manager who will receive
#    mail if the cache dies. The default is "webmaster."
#
#cache_mgr webmaster

# TAG: cache_effective_user
# TAG: cache_effective_group
#
#    If the cache is run as root, it will change its effective/real
#    UID/GID to the UID/GID specified below. The default is to
#    change to UID to nobody and GID to nogroup.
#
#    If Squid is not started as root, the default is to keep the
#    current UID/GID. Note that if Squid is not started as root then
#    you cannot set http_port to a value lower than 1024.
#
cache_effective_user nobody
cache_effective_group nobody


# TAG: visible_hostname
#    If you want to present a special hostname in error messages, etc,
#    then define this. Otherwise, the return value of gethostname()
#    will be used. If you have multiple caches in a cluster and
#    get errors about IP-forwarding you must set them to have individual
#    names with this setting.
#
#visible_hostname www-cache.foo.org

# TAG: unique_hostname
#    If you want to have multiple machines with the same
#    'visible_hostname' then you must give each machine a different
#    'unique_hostname' so that forwarding loops can be detected.
#
#unique_hostname www-cache1.foo.org


# OPTIONS FOR THE CACHE REGISTRATION SERVICE
# --------------------------------------------------
#
#    This section contains parameters for the (optional) cache
#    announcement service. This service is provided to help
#    cache administrators locate one another in order to join or
#    create cache hierarchies.
#
#    An 'announcement' message is sent (via UDP) to the registration
#    service by Squid. By default, the annoucement message is NOT
#    SENT unless you enable it with 'announce_period' below.
#
#    The announcement message includes your hostname, plus the
#    following information from this configuration file:
#
#        http_port
#        icp_port
#        cache_mgr
#
#    All current information is processed regularly and made
#    available on the Web at http://ircache.nlanr.net/Cache/Tracker/.

# TAG: announce_period
#    This is how frequently to send cache announcements. The
#    default is `0' which disables sending the announcement
#    messages.
#
#    To enable announcing your cache, just uncomment the line
#    below.
#
#announce_period 1 day

# TAG: announce_host
# TAG: announce_file
# TAG: announce_port
#    announce_host and announce_port set the hostname and port
#    number where the registration message will be sent.
#
#    Hostname will default to 'tracker.ircache.net' and port will
#    default default to 3131. If the 'filename' argument is given,
#    the contents of that file will be included in the announce
#    message.
#
#announce_host tracker.ircache.net
#announce_port 3131


# HTTPD-ACCELERATOR OPTIONS
# ---------------------------------------------------

# TAG: httpd_accel_host
# TAG: httpd_accel_port
#    If you want to run Squid as an httpd accelerator, define the
#    host name and port number where the real HTTP server is.
#
#    If you want virtual host support then specify the hostname
#    as "virtual".
#
#    NOTE: enabling httpd_accel_host disables proxy-caching and
#    ICP. If you want these features enabled also, then set
#    the 'httpd_accel_with_proxy' option.
#
#httpd_accel_host hostname
#httpd_accel_port port

# TAG: httpd_accel_with_proxy    on|off
#    If you want to use Squid as both a local httpd accelerator
#    and as a proxy, change this to 'on'.
#
#httpd_accel_with_proxy off

# TAG: httpd_accel_uses_host_header    on|off
#    HTTP/1.1 requests include a Host: header which is basically the
#    hostname from the URL. Squid can be an accelerator for
#    different HTTP servers by looking at this header. However,
#    Squid does NOT check the value of the Host header, so it opens
#    a big security hole. We recommend that this option remain
#    disabled unless you are sure of what you are doing.
#
#    However, you will need to enable this option if you run Squid
#    as a transparent proxy. Otherwise, virtual servers which
#    require the Host: header will not be properly cached.
#httpd_accel_uses_host_header off


# MISCELLANEOUS
# ------------------------------------------------------

# TAG: dns_testnames
#    The DNS tests exit as soon as the first site is successfully looked up
#
#    If you want to disable DNS tests, do not comment out or delete this
#    list. Instead use the -D command line option
#
#dns_testnames netscape.com internic.net nlanr.net microsoft.com

# TAG: logfile_rotate
#    Specifies the number of logfile rotations to make when you
#    type 'squid -k rotate'. The default is 10, which will rotate
#    with extensions 0 through 9. Setting logfile_rotate to 0 will
#    disable the rotation, but the logfiles are still closed and
#    re-opened. This will enable you to rename the logfiles
#    yourself just before sending the rotate signal.
#
#    Note, the 'squid -k rotate' command normally sends a USR1
#    signal to the running squid process. In certain situations
#    (e.g. on Linux with Async I/O), USR1 is used for other
#    purposes, so -k rotate uses another signal. It is best to get
#    in the habit of using 'squid -k rotate' instead of 'kill -USR1
#    <pid>'.
#
#logfile_rotate 10

# TAG: append_domain
#    Appends local domain name to hostnames without any dots in
#    them. append_domain must begin with a period.
#
#append_domain .yourdomain.com

# TAG: tcp_recv_bufsize    (bytes)
#    Size of receive buffer to set for TCP sockets. Probably just
#    as easy to change your kernel's default. Set to zero to use
#    the default buffer size.
#
#tcp_recv_bufsize 0 bytes

# TAG: err_html_text
#    HTML text to include in error messages. Make this a "mailto"
#    URL to your admin address, or maybe just a link to your
#    organizations Web page.
#
#    To include this in your error messages, you must rewrite
#    the error template files (found in the "errors" directory).
#    Wherever you want the 'err_html_text' line to appear,
#    insert a %L tag in the error template file.
#err_html_text

# TAG: deny_info
#    Usage: deny_info err_page_name acl
#    Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys
#
#    This can be used to return a ERR_ page for requests which
#    do not pass the 'http_access' rules. A single ACL will cause
#    the http_access check to fail. If a 'deny_info' line exists
#    for that ACL then Squid returns a corresponding error page.
#
#    You may use ERR_ pages that come with Squid or create your own pages
#    and put them into the configured errors/ directory.

# TAG: memory_pools    on|off
#    If set, Squid will keep pools of allocated (but unused) memory
#    available for future use. If memory is a premium on your
#    system and you believe your malloc library outperforms Squid
#    routines, disable this.
#
#memory_pools on

# TAG: memory_pools_limit    (bytes)
#    Used only with memory_pools on:
#    memory_pools_limit 50 MB
#
#    If set to a non-zero value, Squid will keep at most the specified
#    limit of allocated (but unused) memory in memory pools. All free()
#    requests that exceed this limit will be handled by your malloc
#    library. Squid does not pre-allocate any memory, just safe-keeps
#    objects that otherwise would be free()d. Thus, it is safe to set
#    memory_pools_limit to a reasonably high value even if your
#    configuration will use less memory.
#
#    If not set (default) or set to zero, Squid will keep all memory it
#    can. That is, there will be no limit on the total amount of memory
#    used for safe-keeping.
#
#    To disable memory allocation optimization, do not set
#    memory_pools_limit to 0. Set memory_pools to "off" instead.
#
#    An overhead for maintaining memory pools is not taken into account
#    when the limit is checked. This overhead is close to four bytes per
#    object kept. However, pools may actually _save_ memory because of
#    reduced memory thrashing in your malloc library.

# TAG: forwarded_for    on|off
#    If set, Squid will include your system's IP address or name
#    in the HTTP requests it forwards. By default it looks like
#    this:
#
#        X-Forwarded-For: 192.1.2.3
#
#    If you disable this, it will appear as
#
#        X-Forwarded-For: unknown
#
#forwarded_for on

# TAG: log_icp_queries    on|off
#    If set, ICP queries are logged to access.log. You may wish
#    do disable this if your ICP load is VERY high to speed things
#    up or to simplify log analysis.
#
#log_icp_queries on

# TAG: icp_hit_stale    on|off
#    If you want to return ICP_HIT for stale cache objects, set this
#    option to 'on'. If you have sibling relationships with caches
#    in other administrative domains, this should be 'off'. If you only
#    have sibling relationships with caches under your control, then
#    it is probably okay to set this to 'on'.
#
#icp_hit_stale off

# TAG: minimum_direct_hops
#    If using the ICMP pinging stuff, do direct fetches for sites
#    which are no more than this many hops away.
#
#minimum_direct_hops 4

# TAG: cachemgr_passwd
#    Specify passwords for cachemgr operations.
#
#    Usage: cachemgr_passwd password action action ...
#
#    Some valid actions are (see cache manager menu for a full list):
#        5min
#        60min
#        asndb
#        authenticator
#        cbdata
#        client_list
#        comm_incoming
#        config *
#        counters
#        delay
#        digest_stats
#        dns
#        events
#        filedescriptors
#        fqdncache
#        histograms
#        http_headers
#        info
#        io
#        ipcache
#        mem
#        menu
#        netdb
#        non_peers
#        objects
#        pconn
#        peer_select
#        redirector
#        refresh
#        server_list
#        shutdown *
#        store_digest
#        storedir
#        utilization
#        via_headers
#        vm_objects
#
#    * Indicates actions which will not be performed without a
#    valid password, others can be performed if not listed here.
#
#    To disable an action, set the password to "disable".
#    To allow performing an action without a password, set the
#    password to "none".
#
#    Use the keyword "all" to set the same password for all actions.
#
#cachemgr_passwd secret shutdown
#cachemgr_passwd lesssssssecret info stats/objects
#cachemgr_passwd disable all

# TAG: store_avg_object_size    (kbytes)
#    Average object size, used to estimate number of objects your
#    cache can hold. See doc/Release-Notes-1.1.txt. The default is
#    13 KB.
#
#store_avg_object_size 13 KB

# TAG: store_objects_per_bucket
#    Target number of objects per bucket in the store hash table.
#    Lowering this value increases the total number of buckets and
#    also the storage maintenance rate. The default is 20.
#
#store_objects_per_bucket 50

# TAG: client_db    on|off
#    If you want to disable collecting per-client statistics, then
#    turn off client_db here.
#
#client_db on

# TAG: netdb_low
# TAG: netdb_high
#    The low and high water marks for the ICMP measurement
#    database. These are counts, not percents. The defaults are
#    900 and 1000. When the high water mark is reached, database
#    entries will be deleted until the low mark is reached.
#
#netdb_low 900
#netdb_high 1000

# TAG: netdb_ping_period
#    The minimum period for measuring a site. There will be at
#    least this much delay between successive pings to the same
#    network. The default is five minutes.
#
#netdb_ping_period 5 minutes

# TAG: query_icmp    on|off
#    If you want to ask your peers to include ICMP data in their ICP
#    replies, enable this option.
#
#    If your peer has configured Squid (during compilation) with
#    '--enable-icmp' then that peer will send ICMP pings to origin server
#    sites of the URLs it receives. If you enable this option then the
#    ICP replies from that peer will include the ICMP data (if available).
#    Then, when choosing a parent cache, Squid will choose the parent with
#    the minimal RTT to the origin server. When this happens, the
#    hierarchy field of the access.log will be
#    "CLOSEST_PARENT_MISS". This option is off by default.
#
#query_icmp off

# TAG: test_reachability    on|off
#    When this is 'on', ICP MISS replies will be ICP_MISS_NOFETCH
#    instead of ICP_MISS if the target host is NOT in the ICMP
#    database, or has a zero RTT.
#
#test_reachability off

# TAG: buffered_logs    on|off
#    Some log files (cache.log, useragent.log) are written with
#    stdio functions, and as such they can be buffered or
#    unbuffered. By default they will be unbuffered. Buffering them
#    can speed up the writing slightly (though you are unlikely to
#    need to worry).
#buffered_logs off

# TAG: reload_into_ims    on|off
#    When you enable this option, client no-cache or ``reload''
#    requests will be changed to If-Modified-Since requests.
#    Doing this VIOLATES the HTTP standard. Enabling this
#    feature could make you liable for problems which it
#    causes.
#   
#    see also refresh_pattern for a more selective approach.
#
#    This option may be disabled by using --disable-http-violations
#    with the configure script.
#reload_into_ims off

# TAG: always_direct
#    Usage: always_direct allow|deny [!]aclname ...
#
#    Here you can use ACL elements to specify requests which should
#    ALWAYS be forwarded directly to origin servers. For example,
#    to always directly forward requests for local servers use
#    something like:
#
#        acl local-servers dstdomain my.domain.net
#        always_direct allow local-servers
#
#    To always forward FTP requests directly, use
#
#        acl FTP proto FTP
#        always_direct allow FTP
#
#    NOTE: There is a similar, but opposite option named
#    'never_direct'. You need to be aware that "always_direct deny
#    foo" is NOT the same thing as "never_direct allow foo". You
#    may need to use a deny rule to exclude a more-specific case of
#    some other rule. Example:
#
#        acl local-external dstdomain external.foo.net
#        acl local-servers dstdomain foo.net
#        always_direct deny local-external
#        always_direct allow local-servers
#
#    This option replaces some v1.1 options such as local_domain
#    and local_ip.

# TAG: never_direct
#    Usage: never_direct allow|deny [!]aclname ...
#
#    never_direct is the opposite of always_direct. Please read
#    the description for always_direct if you have not already.
#
#    With 'never_direct' you can use ACL elements to specify
#    requests which should NEVER be forwarded directly to origin
#    servers. For example, to force the use of a proxy for all
#    requests, except those in your local domain use something like:
#
#        acl local-servers dstdomain foo.net
#        acl all src 0.0.0.0/0.0.0.0
#        never_direct deny local-servers
#        never_direct allow all
#   
#    or if squid is inside a firewall and there is local intranet
#    servers inside the firewall then use something like:
#
#        acl local-intranet dstdomain foo.net
#        acl local-external dstdomain external.foo.net
#        always_direct deny local-external
#        always_direct allow local-intranet
#        never_direct allow all
#   
#    This option replaces some v1.1 options such as inside_firewall
#    and firewall_ip.

# TAG: anonymize_headers
# Usage: anonymize_headers allow|deny header_name ...
#
#    This option replaces the old 'http_anonymizer' option with
#    something that is much more configurable. You may now
#    specify exactly which headers are to be allowed, or which
#    are to be removed from outgoing requests.
#
#    There are two methods of using this option. You may either
#    allow specific headers (thus denying all others), or you
#    may deny specific headers (thus allowing all others).
#
#    For example, to achieve the same behaviour as the old
#    'http_anonymizer standard' option, you should use:
#
#        anonymize_headers deny From Referer Server
#        anonymize_headers deny User-Agent WWW-Authenticate Link
#       
#    Or, to reproduce the old 'http_anonymizer paranoid' feature
#    you should use:
#
#        anonymize_headers allow Allow Authorization Cache-Control
#        anonymize_headers allow Content-Encoding Content-Length
#        anonymize_headers allow Content-Type Date Expires Host
#        anonymize_headers allow If-Modified-Since Last-Modified
#        anonymize_headers allow Location Pragma Accept Charset
#        anonymize_headers allow Accept-Encoding Accept-Language
#        anonymize_headers allow Content-Language Mime-Version
#        anonymize_headers allow Retry-After Title Connection
#        anonymize_headers allow Proxy-Connection
#
#    NOTE: You can not mix "allow" and "deny". All 'anonymize_headers'
#    lines must have the same second argument.
#
#    By default, all headers are allowed (no anonymizing is
#    performed).
#
#anonymize_headers

# TAG: fake_user_agent
#    If you filter the User-Agent header with 'anonymize_headers' it
#    may cause some Web servers to refuse your request. Use this to
#    fake one up. For example:
#
#    fake_user_agent Nutscrape/1.0 (CP/M; 8-bit)
#    (credit to Paul Southworth pauls@etext.org for this one!)
#
#fake_user_agent none

# TAG: icon_directory
#    Where the icons are stored. These are normally kept in
#    /usr/local/squid/etc/icons

# TAG: error_directory
#    If you wish to create your own versions of the default
#    (English) error files, either to customise them to suit your
#    language or company copy the template english files to another
#    directory and point this tag at them.

# TAG: minimum_retry_timeout    (seconds)
#    This specifies the minimum connect timeout, for when the
#    connect timeout is reduced to compensate for the availability
#    of multiple IP addresses.
#
#    When a connection to a host is initiated, and that host has
#    several IP addresses, the default connection timeout is reduced
#    by dividing it by the number of addresses. So, a site with 15
#    addresses would then have a timeout of 8 seconds for each
#    address attempted. To avoid having the timeout reduced to the
#    point where even a working host would not have a chance to
#    respond, this setting is provided. The default, and the
#    minimum value, is five seconds, and the maximum value is sixty
#    seconds, or half of connect_timeout, whichever is greater and
#    less than connect_timeout.
#
#minimum_retry_timeout 5 seconds

# TAG: maximum_single_addr_tries
#    This sets the maximum number of connection attempts for a
#    host that only has one address (for multiple-address hosts,
#    each address is tried once).
#
#    The default value is three tries, the (not recommended)
#    maximum is 255 tries. A warning message will be generated
#    if it is set to a value greater than ten.
#
#maximum_single_addr_tries 3

# TAG: snmp_port
#    Squid can now serve statistics and status information via SNMP.
#    By default it listens to port 3401 on the machine. If you don't
#    wish to use SNMP, set this to '-1'.
#
#    NOTE: SNMP support requires use the --enable-snmp configure
#    command line option.
#snmp_port 3401

# TAG: forward_snmpd_port
#    This configures whether we should be forwarding SNMP requests
#    to another snmpd. The reason for putting this piece of
#    functionality into Squid was to enable access to the system's
#    installed snmpd with minimal changes. This option is turned
#    off by default, check with your /etc/services for your system's
#    snmp port (usually 161). We do not use getservbyname() to
#    allow you to set Squid into port 161 and your system's snmpd to
#    another port by changing /etc/services.
#
#    WARNING: Because of Squid acting as a proxy snmpd for system
#    you have to do security checks on THIS snmpd for all objects.
#    Check your snmp_config_file.
#forward_snmpd_port 0

# TAG: snmp_access
#    Allowing or denying access to the SNMP port.
#
#    All access to the agent is denied by default.
#    usage:
#
#    snmp_access allow|deny [!]aclname ...
#
#Example:
#snmp_access allow public localhost
#snmp_access deny all

# TAG: snmp_incoming_address
# TAG: snmp_outgoing_address
#    Just like 'udp_incoming_address' above, but for the SNMP port.
#
#    snmp_incoming_address    is used for the SNMP socket receiving
#                 messages from SNMP agents.
#    snmp_outgoing_address    is used for SNMP packets returned to SNMP
#                 agents.
#
#    The default behaviour is to not bind to any specific address.
#
#    NOTE, snmp_incoming_address and snmp_outgoing_address can not have
#    the same value since they both use port 3130.
#
#snmp_incoming_address 0.0.0.0
#snmp_outgoing_address 0.0.0.0

# TAG: as_whois_server
#    WHOIS server to query for AS numbers. NOTE: AS numbers are
#    queried only when Squid starts up, not for every request.


# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
# ----------------------------------------------------

# TAG: delay_pools
#    This represents the number of delay pools to be used. For example,
#    if you have one class 2 delay pool and one class 3 delays pool, you
#    have a total of 2 delay pools.
#
#    To enable this option, you must use --enable-delay-pools with the
#    configure script.
#delay_pools 0

# TAG: delay_class
#    This defines the class of each delay pool. There must be exactly one
#    delay_class line for each delay pool. For example, to define two
#    delay pools, one of class 2 and one of class 3, the settings above
#    and here would be:
#
#delay_pools 2 # 2 delay pools
#delay_class 1 2 # pool 1 is a class 2 pool
#delay_class 2 3 # pool 2 is a class 3 pool
#
#    The delay pool classes are:
#
#        class 1         Everything is limited by a single aggregate
#                 bucket.
#
#        class 2     Everything is limited by a single aggregate
#                 bucket as well as an "individual" bucket chosen
#                 from bits 25 through 32 of the IP address.
#
#        class 3         Everything is limited by a single aggregate
#                 bucket as well as a "network" bucket chosen
#                 from bits 17 through 24 of the IP address and a
#                 "individual" bucket chosen from bits 17 through
#                 32 of the IP address.
#
#    NOTE: If an IP address is a.b.c.d
#        -> bits 25 through 32 are "d"
#        -> bits 17 through 24 are "c"
#        -> bits 17 through 32 are "c * 256 + d"

# TAG: delay_access
#    This is used to determine which delay pool a request falls into.
#    The first matched delay pool is always used, ie, if a request falls
#    into delay pool number one, no more delay are checked, otherwise the
#    rest are checked in order of their delay pool number until they have
#    all been checked. For example, if you want some_big_clients in delay
#    pool 1 and lotsa_little_clients in delay pool 2:
#
#delay_access 1 allow some_big_clients
#delay_access 1 deny all
#delay_access 2 allow lotsa_little_clients
#delay_access 2 deny all

# TAG: delay_parameters
#    This defines the parameters for a delay pool. Each delay pool has
#    a number of "buckets" associated with it, as explained in the
#    description of delay_class. For a class 1 delay pool, the syntax is:
#
#delay_parameters pool aggregate
#
#    For a class 2 delay pool:
#
#delay_parameters pool aggregate individual
#
#    For a class 3 delay pool:
#
#delay_parameters pool aggregate network individual
#
#    The variables here are:
#
#        pool         a pool number - ie, a number between 1 and the
#                 number specified in delay_pools as used in
#                 delay_class lines.
#
#        aggregate    the "delay parameters" for the aggregate bucket
#                 (class 1, 2, 3).
#
#        individual    the "delay parameters" for the individual
#                 buckets (class 2, 3).
#
#        network         the "delay parameters" for the network buckets
#                 (class 3).
#
#    A pair of delay parameters is written restore/maximum, where restore is
#    the number of bytes (not bits - modem and network speeds are usually
#    quoted in bits) per second placed into the bucket, and maximum is the
#    maximum number of bytes which can be in the bucket at any time.
#
#    For example, if delay pool number 1 is a class 2 delay pool as in the
#    above example, and is being used to strictly limit each host to 64kbps
#    (plus overheads), with no overall limit, the line is:
#
#delay_parameters 1 -1/-1 8000/8000
#
#    Note that the figure -1 is used to represent "unlimited".
#
#    And, if delay pool number 2 is a class 3 delay pool as in the above
#    example, and you want to limit it to a total of 256kbps (strict limit)
#    with each 8-bit network permitted 64kbps (strict limit) and each
#    individual host permitted 4800bps with a bucket maximum size of 64kb
#    to permit a decent web page to be downloaded at a decent speed
#    (if the network is not being limited due to overuse) but slow down
#    large downloads more significantly:
#
#delay_parameters 2 32000/32000 8000/8000 600/64000
#
#    There must be one delay_parameters line for each delay pool.

# TAG: delay_initial_bucket_level    (percent, 0-100)
#    The initial bucket percentage is used to determine how much is put
#    in each bucket when squid starts, is reconfigured, or first notices
#    a host accessing it (in class 2 and class 3, individual hosts and
#    networks only have buckets associated with them once they have been
#    "seen" by squid).
#
#delay_initial_bucket_level 50

# TAG: incoming_icp_average
# TAG: incoming_http_average
# TAG: min_icp_poll_cnt
# TAG: min_http_poll_cnt
#    Heavy voodoo here. I can't even believe you are reading this.
#    Are you crazy? Don't even think about adjusting these unless
#    you understand the algorithms in comm_select.c first!
#
#incoming_icp_average 6
#incoming_http_average 4
#min_icp_poll_cnt 8
#min_http_poll_cnt 8

# TAG: max_open_disk_fds
# TAG: offline_mode
#    Enable this option and Squid will never try to validate cached
#    objects.

# TAG: uri_whitespace
#    What to do with requests that have whitespace characters in the
#    URI. Options:
#
#    deny: The request is denied. The user receives an "Invalid
#        Request" message.
#    allow: The request is allowed and the URI is not changed. The
#        whitespace characters remain in the URI. Note the
#        whitespace is passed to redirector processes if they
#        are in use.
#    encode:    The request is allowed and the whitespace characters are
#        encoded according to RFC1738. This could be considered
#        a violation of the HTTP/1.1
#        RFC because proxies are not allowed to rewrite URI's.
#    chop:    The request is allowed and the URI is chopped at the
#        first whitespace. This might also be considered a
#        violation.
#uri_whitespace deny

# TAG: broken_posts
#    A list of ACL elements which, if matched, causes Squid to send
#    a extra CRLF pair after the body of a PUT/POST request.
#
#    Some HTTP servers has broken implementations of PUT/POST,
#    and rely on a extra CRLF pair sent by some WWW clients.
#
#    Quote from RFC 2068 section 4.1 on this matter:
#
#    Note: certain buggy HTTP/1.0 client implementations generate an
#    extra CRLF's after a POST request. To restate what is explicitly
#    forbidden by the BNF, an HTTP/1.1 client must not preface or follow
#    a request with an extra CRLF.
#
#acl buggy_server url_regex ^http://....
#broken_posts allow buggy_server

# TAG: mcast_miss_addr
#    If you enable this option, every "cache miss" URL will
#    be sent out on the specified multicast address.
#
#    Do not enable this option unless you are are absolutely
#    certain you understand what you are doing.

# TAG: mcast_miss_port
#    This is the port number to be used in conjuction with
#    'mcast_miss_addr'.

# TAG: mcast_miss_encode_key
#    The URLs that are sent in the multicast miss stream are
#    encrypted. This is the encryption key.

# TAG: prefer_direct
#    By default, if the ICP, HTCP, Cache Digest, etc. techniques
#    do not yield a parent cache, Squid gives higher preference
#    to forwarding the request direct to origin servers, rather
#    than selecting a parent cache anyway.
#
#    If you want Squid to give higher precedence to a parent
#    cache, instead of going direct, then turn this option off.
#prefer_direct on

# TAG: strip_query_terms
#    By default, Squid strips query terms from requested URLs before
#    logging. This protects your user's privacy.
#strip_query_terms on

# TAG: coredump_dir
#    By default Squid leaves core files in the first cache_dir
#    directory. If you set 'coredump_dir' to a directory
#    that exists, Squid will chdir() to that directory at startup
#    and coredump files will be left there.


初期化処理をする

# /usr/local/squid/bin/squid   -z
1999/08/04 21:38:13| Creating Swap Directories
#

"squid.conf" の、"cache_dir" で設定したディレクトリ(/usr/local/squid/cache)の下に、"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0A", "0B", "0C", "0D", "0E", "0F" が作られます。

作られたディレクトリの、ユーザ/グループは、nobody/nobody となっています。


/etc/rc.d/rc.local に、起動コマンドを追加

/etc/rc.d/rc.local の最後に、以下のコードを追加します。

if [ -x /usr/local/squid/bin/squid ]; then
        /usr/local/squid/bin/squid -D &
        echo -n ' squid '
fi    

再起動すればOKです。


 ブラウザの設定

Netscapeの場合

「編集」、「設定」を選択し、以下のように、「詳細」、「プロキシ」を選択し、「手動でプロキシを設定する」にチェックをいれ、「表示」ボタンを押します。

sq-set1.gif (13493 ツバツイツト)

「表示」ボタンを押すと、以下のように ”squid” が起動しているIPアドレスとポート番号を入れます。

sq-set2.gif (7775 ツバツイツト)


 エラーとその対策

Access Denied

sq-err1.gif (16524 ツバツイツト)

sqid.conf の http_access を変更したらうまく動作するようになりました。

     :
#Default configuration:
http_access allow all
     :

To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)line.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)
カスタム検索



このエントリーをはてなブックマークに追加