Я установил прокси-сервер Squid на Ubuntu.
Как мне убедиться, что в моем файле squid.conf нет синтаксических ошибок, и проверить этот файл конфигурации на наличие ошибок?
Где бы вы ни ставили или обновляли прокси-сервер Squid, вы должны убедиться, что ваш файл squid.conf не содержит ошибок.
Это простая задача.
Чтобы проверить файл squid.conf на наличие синтаксических ошибок и предупреждений, введите следующие команды.
Проверка файла конфигурации прокси-сервера Squid на наличие ошибок
Откройте окно терминала и введите следующую команду для удаленного входа на сервер Linux и Unix с помощью команды ssh:
$ ssh mitya@itsecforu
# squid -k parse
## или используя полный путь ##
$ sudo /usr/sbin/squid3 -k parse
## Отфильтруем ошибки с grep / egrep ##
# squid -k parse | grep 'error'
# squid -k parse | egrep 'foo|bar'
Пример сеанса:
2020/08/08 08:16:42| Startup: Initializing Authentication Schemes ... 2020/08/08 08:16:42| Startup: Initialized Authentication Scheme 'basic' 2020/08/08 08:16:42| Startup: Initialized Authentication Scheme 'digest' 2020/08/08 08:16:42| Startup: Initialized Authentication Scheme 'negotiate' 2020/08/08 08:16:42| Startup: Initialized Authentication Scheme 'ntlm' 2020/08/08 08:16:42| Startup: Initialized Authentication. 2020/08/08 08:16:42| Processing Configuration File: /etc/squid/squid.conf (depth 0) 2020/08/08 08:16:42| Processing: acl mylan src 10.8.0.0/24 2020/08/08 08:16:42| Processing: acl mylan src 172.16.0.0/24 2020/08/08 08:16:42| Processing: acl SSL_ports port 443 2020/08/08 08:16:42| Processing: acl Safe_ports port 80 # http 2020/08/08 08:16:42| Processing: acl Safe_ports port 21 # ftp 2020/08/08 08:16:42| Processing: acl Safe_ports port 443 # https 2020/08/08 08:16:42| Processing: acl Safe_ports port 70 # gopher 2020/08/08 08:16:42| Processing: acl Safe_ports port 210 # wais 2020/08/08 08:16:42| Processing: acl Safe_ports port 1025-65535 # unregistered ports 2020/08/08 08:16:42| Processing: acl Safe_ports port 280 # http-mgmt 2020/08/08 08:16:42| Processing: acl Safe_ports port 488 # gss-http 2020/08/08 08:16:42| Processing: acl Safe_ports port 591 # filemaker 2020/08/08 08:16:42| Processing: acl Safe_ports port 777 # multiling http 2020/08/08 08:16:42| Processing: acl CONNECT method CONNECT 2020/08/08 08:16:42| Processing: http_access deny !Safe_ports 2020/08/08 08:16:42| Processing: http_access deny CONNECT !SSL_ports 2020/08/08 08:16:42| Processing: http_access allow localhost manager 2020/08/08 08:16:42| Processing: http_access deny manager 2020/08/08 08:16:42| Processing: http_access allow localhost 2020/08/08 08:16:42| Processing: http_access allow mylan 2020/08/08 08:16:42| Processing: http_access deny all 2020/08/08 08:16:42| Processing: http_port 10.8.0.1:3128 2020/08/08 08:16:42| Processing: dns_v4_first on 2020/08/08 08:16:42| Processing: tcp_outgoing_address 13.xxx.yyy.zzz 2020/08/08 08:16:42| Processing: cache_mem 256 MB 2020/08/08 08:16:42| Processing: cache_dir diskd /var/spool/squid 1024 16 256 Q1=72 Q2=64 2020/08/08 08:16:42| Processing: access_log daemon:/var/log/squid/access.log squid 2020/08/08 08:16:42| Processing: coredump_dir /var/spool/squid 2020/08/08 08:16:42| Processing: refresh_pattern ^ftp: 1440 20% 10080 2020/08/08 08:16:42| Processing: refresh_pattern ^gopher: 1440 0% 1440 2020/08/08 08:16:42| Processing: refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 2020/08/08 08:16:42| Processing: refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 2020/08/08 08:16:42| Processing: refresh_pattern . 0 20% 4320 2020/08/08 08:16:42| Processing: forwarded_for delete 2020/08/08 08:16:42| Processing: via off 2020/08/08 08:16:42| Processing: forwarded_for off 2020/08/08 08:16:42| Processing: follow_x_forwarded_for deny all 2020/08/08 08:16:42| Processing: request_header_access X-Forwarded-For deny all 2020/08/08 08:16:42| Processing: forwarded_for delete 2020/08/08 08:16:42| Processing: dns_nameservers 10.8.0.1 2020/08/08 08:16:42| WARNING: HTTP requires the use of Via 2020/08/08 08:16:42| Initializing https:// proxy context
Пример сообщения об ошибке при проверке файла конфигурации Squid на наличие синтаксических ошибок
# squid -k parse
Вывод:
2020/08/08 08:21:07| Processing: viaproxy off 2020/08/08 08:21:07| /etc/squid/squid.conf:40 unrecognized: 'viaproxy'
# vim +40 /etc/squid/squid.conf
viaproxy off
via off
# squid -k parse
# squid -k reconfigure
Как проверить синтаксис файла конфигурации squid
Всегда полезно запускать команды «squid -k parse» и «squid -k debug» для проверки синтаксической ошибки конфигурации всякий раз, когда вы меняете конфигурацию прокси-сервера.
Обратите внимание, что Squid отказывает запускаться, если обнаружил ошибку.
Если ошибка существует, Squid не будет работать до тех пор, пока системный администратор не исправит синтаксические ошибки.
Другие полезные параметры прокси Squid
Синтаксис:
# squid -k command
или
$ sudo squid -k command
Где command может быть любая команда из следующих:
- reconfigure: Посылает Squid сигнал HUP для повторного чтения его файлов конфигурации.
- rotate: ротировать файлы журнала.
- shutdown: отправляет Squid сигнал TERM, чтобы ненадолго дождаться завершения текущих соединений, а затем завершить работу сервера. Время ожидания указывается параметрами shutdown_lifetime в файле squid.conf.
- restart: перезапустить сервер
- interrupt: отправляет сигнал INT серверу Squid. Он немедленно отключается, не дожидаясь текущих подключений.
- kill: убить прокси-сервер, отправив сигнал KILL.
- debug: запустить squid в режиме полной отладки.
- check: отправляет сигнал «ZERO» серверу Squid. Команда просто проверяет, действительно ли сервер / процесс запущен на вашем Linux / Unix / BSD.
- parse: анализирует файл squid.conf на наличие синтаксических ошибок.
Заключение
Вы узнали, как анализировать файл конфигурации прокси-сервера Squid, затем отправлять сигнал в запущенную копию и выходить из интерфейса командной строки.
Это полезно для проверки синтаксических ошибок в squid.conf и других файлах.