[root@localhost squid]# more roles/squid/handlers/main.yml roles/squid/tasks/main.yml roles/squid/templates/squid.conf.j2
::::::::::::::
roles/squid/handlers/main.yml
::::::::::::::
- name: restart squid
systemd:
name: squid
state: restarted
enabled: yes
::::::::::::::
roles/squid/tasks/main.yml
::::::::::::::
- name: "Install squid stunnel openssl openssl-devel"
yum:
name: "{{ item.line }}"
state: installed
with_items:
- {line: 'squid'}
- {line: 'openssl'}
- {line: 'openssl-devel'}
- name: 'Copy Squid pem to remote'
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
with_items:
- {src: 'key.pem', dest: '/etc/squid/key.pem'}
- {src: 'cert.pem', dest: '/etc/squid/cert.pem'}
- name: 'template squid conf to remote'
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
with_items:
- {src: "squid.conf.j2", dest: "/etc/squid/squid.conf"}
notify:
- restart squid
- name: 'Crontab for restart squid'
cron:
name: restartSquid
state: present
hour: '23'
job: "sync && echo 3 >/proc/sys/vm/drop_caches && rm -f /var/log/squid/access.log ; systemctl restart squid"
- name: 'Crontab for check squid'
cron:
name: CheckSquid
state: present
minute: '*'
job: 'sleep 5 && systemctl status squid || systemctl start squid'
- name: 'See Port'
shell: 'ss -tnlp |grep squid'
register: return_status
- debug:
# msg: '{{ return_status.stdout_lines }}'
var: return_status.stdout_lines
#when: return_status.rc != 0
::::::::::::::
roles/squid/templates/squid.conf.j2
::::::::::::::
acl localnet src 127.0.0.1/8
#acl localnet src {{ ansible_ssh_host }}
{% for host in groups['stunnel'] %}
acl localnet src {{ host }}
{% endfor %}
http_access allow localhost
http_access allow localnet
http_access deny all
# PORT AND SSL PATH, 提供个 stunnel 高匿隧道
https_port {{ squid_ssl_port }} cert=/etc/squid/cert.pem key=/etc/squid/key.pem
# 定义 squid 的cache 存放路径、cache目录容量、一级缓存目录数量、二级缓存目录数量
cache_dir ufs /var/spool/squid 100 16 256
coredump_dir /var/spool/squid
# 设置squid磁盘缓存最大文件,超过4
maximum_object_size_in_memory 4 MB
fqdncache_size 1024
cache_mem 300 MB
max_open_disk_fds 0
minimum_object_size 1 KB
maximum_object_size 20 MB
cache_swap_low 90 0%时停
# 目录使用量大于95%时,开始清理旧的
cache_swap_high 95
ipcache_size 2048
ipcache_low 90
ipcache_high 95
refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# 高匿
request_header_access via deny all
request_header_access X-Forwarded-For deny all