====== Настраиваем lighthttpd в связке с lightsquid ======
Делать будем в среде Ubuntu 16.04
Устанавливаем стандартным образом lighttpd и lightsquid.
Основные настройки будут для lighthttpd. В системе lightsquid "размазан" по каталогам:
Конфиг тут:
/etc/lightsquid/lightsquid.cfg
Исполняемые файлы скрипты CGI:
root@squid:~# ll /usr/lib/cgi-bin/lightsquid/
total 88
drwxr-xr-x 2 root root 4096 Feb 6 11:18 ./
drwxr-xr-x 3 root root 4096 Feb 5 11:24 ../
-rwxr-xr-x 1 root root 2281 Sep 13 2006 bigfiles.cgi*
lrwxrwxrwx 1 root root 35 Jun 19 2013 common.pl -> ../../../share/lightsquid/common.pl
-rwxr-xr-x 1 root root 4714 Jan 10 2007 day_detail.cgi*
-rwxr-xr-x 1 root root 1184 Aug 2 2006 get.cgi*
-rwxr-xr-x 1 root root 10797 Dec 15 2008 graph.cgi*
-rwxr-xr-x 1 root root 6684 Sep 5 2006 group_detail.cgi*
-rwxr-xr-x 1 root root 6989 Feb 6 11:25 index.cgi*
-rwxr-xr-x 1 root root 6989 Feb 6 11:06 index.cgi-orig*
lrwxrwxrwx 1 root root 30 Jun 19 2013 lightsquid.cfg -> /etc/lightsquid/lightsquid.cfg
-rwxr-xr-x 1 root root 3753 Aug 2 2006 month_detail.cgi*
-rwxr-xr-x 1 root root 4705 Aug 2 2006 topsites.cgi*
-rwxr-xr-x 1 root root 4011 Nov 21 2006 user_detail.cgi*
-rwxr-xr-x 1 root root 3106 Nov 21 2006 user_month.cgi*
-rwxr-xr-x 1 root root 4036 Sep 19 2008 user_time.cgi*
-rwxr-xr-x 1 root root 3546 Aug 2 2006 whousesite.cgi*
Шаблоны и вcпомогательные файлики тут:
root@squid:~# ll /usr/share/lightsquid/
total 60
drwxr-xr-x 6 root root 4096 Feb 5 11:24 ./
drwxr-xr-x 118 root root 4096 Feb 5 11:24 ../
-rwxr-xr-x 1 root root 6689 Jan 22 2009 check-setup.pl*
-rw-r--r-- 1 root root 9247 Jul 3 2009 common.pl
drwxr-xr-x 2 root root 4096 Feb 5 11:24 ip2name/
drwxr-xr-x 2 root root 4096 Feb 5 11:24 lang/
-rwxr-xr-x 1 root root 15823 Jul 3 2009 lightparser.pl*
lrwxrwxrwx 1 root root 30 Jun 19 2013 lightsquid.cfg -> /etc/lightsquid/lightsquid.cfg
drwxr-xr-x 3 root root 4096 Feb 5 11:24 tools/
drwxr-xr-x 4 root root 4096 Feb 5 11:24 tpl/
Отчеты будут сохраняться тут:
/var/lib/lightsquid/report/
Как я уже писал выше, основные настройеи затронут конфиги lighthttpd.
Подключим конфиг, который включит нам CGI, сделав симлинк на нужный файлик.
root@squid:/etc/lighttpd# ll /etc/lighttpd/conf-enabled/
total 8
drwxr-xr-x 2 root root 4096 Feb 6 11:24 ./
drwxr-xr-x 4 root root 4096 Feb 6 11:27 ../
lrwxrwxrwx 1 root root 29 Feb 5 10:54 10-cgi.conf -> ../conf-available/10-cgi.conf
Сам конфиг для CGI приводим к такому виду:
# /usr/share/doc/lighttpd/cgi.txt
server.modules += ( "mod_cgi" )
###$HTTP["url"] =~ "^/cgi-bin/" {
### cgi.assign = ( "" => "" )
###}
## Warning this represents a security risk, as it allow to execute any file
## with a .pl/.py even outside of /usr/lib/cgi-bin.
#
cgi.assign = (
".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl",
".py" => "/usr/bin/python",
)
Я закомментировал параметр, который предписывает серверу запускать скрипты только из определенного каталога. В нашем случае это не так. Конфиг такого вида запускает CGI из любого каталога.
Основной конфиг приводим к такому виду:
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
# "mod_rewrite",
)
server.document-root = "/var/www/html"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
# Для lightsquid
alias.url+=("/ltsq/" => "/usr/lib/cgi-bin/lightsquid/")
index-file.names = ( "index.php", "index.html", "index.lighttpd.html", "index.cgi" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
В индексном файле в корне сервера просто поставил редирект на наш lightsquid.