Переношу сюда свой исходный пост.
Я сталкиваюсь с трудностями при использовании инструмента awstats (скрипт CGI), значков и связанных полос гистограммы на одном из моих веб-сайтов (дублированный здесь website.com
).
Проблема довольно сложная, поскольку я использую разные RewriteCond и RewriteRules, чтобы получить http://www.website.com, http://website.com, https://www.website.com
перенаправления на https://website.com
цель.
Более того, задача более сложная, потому что у меня Zope-сервер стоит после Apache.
Итак, чтобы подвести итог, здесь ниже все эти rewritecond и rewriterules, которые производят то, что ожидается, то есть все перенаправления на https://website.com
и доступ по паролю к awstats
инструмент. Все работает нормально, кроме того, что на главной странице отсутствуют значки и гистограммы. awstats
после загрузки последнего:
<VirtualHost *:443>
# Test local
ServerAdmin admin@website.com
ServerName website.com
ServerAlias www.website.com
# LOG
CustomLog /var/log/apache2/access.log combined
# ACTIVATE SSL
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/website.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/website.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/website.com/chain.pem
RewriteEngine On
# www to non www for HTTPS
# checking for the same thing again
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
# some people might argue second redirect here is excessive since you already arrived at correct host, but I'd leave this for you to sort out
RewriteRule ^/(.*) https://website.com/$1 [R=301,L]
# your /cgi-bin checks can be merged into one regex
RewriteCond %{REQUEST_URI} !^/cgi-bin/(search|awstats) [NC]
RewriteRule ^/(.*) https://localhost:8443/++vh++https:%{SERVER_NAME}:443/++/$1 [P,L]
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
#CacheDisable *
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
<Files "awstats.pl">
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
SetHandler cgi-script
Satisfy any
Order deny,allow
Deny from all
AuthType Basic
AuthName "Advanced Web Statistics"
AuthUserFile /etc/apache2/awstats-users.pwd
Require valid-user
</Files>
<Directory "/usr/share/awstats/icon">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/lib/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>
</VirtualHost>
Я не эксперт по скриптам CGI и их псевдонимам. Все значки расположены в /usr/share/awstats/icon/
каталог.
Где моя ошибка?
ОБНОВЛЕНИЕ 1:
0) Я понял, что Alias /awstatsclasses "/usr/share/awstats/lib/"
и Alias /awstatscss "/usr/share/doc/awstats/examples/css"
не кажется необходимым, но для Alias /awstats-icon "/usr/share/awstats/icon/"
, это необходимо.
Однако это проблема CSS
но я думаю, что самый важный файл - это каталог иконок.
1) Я снова установил пакет awstats_7.6 для Debian 10 Buster.
Теперь все файлы (plugin, lib, lang и т. Д.) Находятся в /usr/share/awstats/
На данный момент у меня есть дополнительная информация от Apache2
журналы. Когда я перезагружаю awstats
страница (доступна с https://website.com/cgi-bin/awstats.pl
), Я попадаю в access.log
:
100.87.10.76 - - [02/Apr/2020:01:20:06 +0200] "GET /awstats-icon/browser/notavailable.png HTTP/1.1" 404 434 "https://website.com/cgi-bin/awstats.pl?framename=mainright" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0"
100.87.10.76 - - [02/Apr/2020:01:20:06 +0200] "GET /awstats-icon/other/hx.png HTTP/1.1" 404 434 "https://website.com/cgi-bin/awstats.pl?framename=mainright" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0"
100.87.10.76 - - [02/Apr/2020:01:20:06 +0200] "GET /awstats-icon/other/he.png HTTP/1.1" 404 434 "https://website.com/cgi-bin/awstats.pl?framename=mainright" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0"
... etc
я положил etc
означает отсутствие всего списка значков.
2) Более того, у меня появляется это сообщение вверху после загрузки главной страницы awstats:
Вывод: больше не знаю, что попробовать. Однако из 1)
часть выше, я явно указал в файле конфигурации Apache2:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Alias /awstats-icon "/usr/share/awstats/icon"
с разрешениями:
drwxr-xr-x 9 www-data www-data 4096 Apr 2 16:25 /usr/share/awstats/icon/
3) Наконец, я думаю, что самая интересная информация исходит из error.log
из Apache2:
[Thu Apr 02 01:37:04.344047 2020] [proxy:debug] [pid 19209] proxy_util.c(2578): [client 100.87.10.76:40246] AH00947: connected /++vh++https:website.com:443/++/awstats-icon/other/hh.png to localhost:8443, referer: https://website.com/cgi-bin/awstats.pl?framename=mainright
[Thu Apr 02 01:37:04.600404 2020] [proxy:debug] [pid 19209] proxy_util.c(2316): AH00942: HTTPS: has acquired connection for (*)
Это показывает конфликты между путями Virtualhost from Zope
и путь CGI scripts
из Apache2
, особенно с первой строкой:
/++vh++https:website.com:443/++/awstats-icon/other/hh.png to localhost:8443, referer: https://website.com/cgi-bin/awstats.pl?framename=mainright
Что вы думаете обо всех этих уликах?