AWStats是分析web流量的有用工具。它的HTML界面可以通过浏览器访问,让你很容易了解谁在浏览你的网站。本教程将介绍如何在Fedora 28上安装、配置和保护Nginx web服务器的AWStats。
如果您还没有安装Nginx,现在就安装:
sudo dnf install nginx
sudo systemctl enable --now nginx
安装AWStats和工具
首先,您需要安装一些东西。幸运的是,这非常简单,因为您需要的所有软件都在Fedora的存储库中:
sudo dnf install awstats httpd-tools php-fpm
httpd-tools包含一些我们需要的工具,比如htpasswd。它是为Apache设计的,但大多数工具也与Nginx一起工作。另一个工具PHP -fpm允许我们从Nginx运行PHP脚本。
我们需要通过systemctl启用php-fpm:
sudo systemctl enable --now php-fpm
为您的站点配置AWStats
在使用AWStats之前,我们需要配置它。复制模型配置文件,为您的网站创建一个新的配置:
sudo cp /etc/awstats/awstats.model.conf /etc/awstats/awstats..conf
现在编辑该文件:
sudoedit /etc/awstats/awstats..conf
向下滚动到显示LogFile=“/var/log/httpd/access_log”的行。因为我们使用的是Nginx而不是Apache,所以我们需要改变这个。将其更改为LogFile="/var/log/nginx/access.log"。
接下来,向下滚动到显示DirIcons="/awstatsicons"的行。如果找不到,输入/DirIcons,然后按ENTER键跳转到它。将这一行改为DirIcons="../图标"。
最后,AWStats需要知道它分析的是哪个网站。通过这种方式,它可以报告诸如哪些用户来自外部站点之类的信息。这里的两个相关配置选项是SiteDomain和HostAliases。SiteDomain就是站点的域名;HostAliases将会是任何其他可能被使用的域名的列表(例如,如果你的站点是www.example.com,你可能会把example.com放在这里,如果它是同一个站点)。
所有配置选项都记录在配置文件中。如果您想确切地知道某个选项的作用,或者想查看AWStats提供的所有选项,只需阅读该文件中的注释即可。
设置权限
强烈建议不要作为根用户运行AWStats。我们将在nginx安装期间已经设置好的nginx用户下运行AWStats。
为此,我们需要让nginx成为AWStats存储其数据库的目录(/var/lib/ AWStats)的所有者:
sudo chown -R nginx /var/lib/awstats
第一次运行AWStats
在后面的步骤中,我们将设置AWStats,以便在服务器日志旋转时运行。然而,这是第一次,最好手动运行它。执行以下命令:
sudo -u nginx /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=
注意:-u nginx部分告诉sudo以nginx用户而不是根用户的身份运行命令。
输出内容如下:
Create/Update database for config "/etc/awstats/awstats..conf" by AWStats version 7.7 (build 20180105)
From data in log file "/var/log/nginx/access.log"...
Phase 1: First bypass old records, searching new record...
Direct access after last parsed record (after line 0)
Jumped lines in file: 0
Found 0 already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.
配置Nginx以在线查看AWStats
接下来,我们将配置Nginx,以便从网站本身查看网站统计信息,而不是通过命令行界面。编辑您的主要Nginx配置文件:
sudoedit /etc/nginx/nginx.conf
在这里,我们将添加一个文件夹来包含网站的AWStats部分。在本教程中,我们将它称为webstats,但您可以随意调用它。
找到配置文件中显示server的部分。行之后包括/etc/nginx/default.d/*.conf;。添加一个新的部分:
location /webstats/ {
alias /usr/share/awstats/wwwroot/; location ~ /cgi-bin/(.+\.pl) { include fastcgi.conf; fastcgi_pass php-fpm; fastcgi_split_path_info ^/webstats/(.+\.pl)(.*)$; fastcgi_param SCRIPT_FILENAME /usr/share/awstats/tools/nginx/awstats-fcgi.php; fastcgi_param X_SCRIPT_FILENAME /usr/share/awstats/wwwroot/$fastcgi_script_name; fastcgi_param X_SCRIPT_NAME $fastcgi_script_name; }
}
本节告诉Nginx,当我们在浏览器中访问webstats目录时,它应该服务于AWStats的web根目录,如果我们在cgi-bin目录中请求一个脚本,它应该运行它。
在编辑配置文件后,我们需要重新启动Nginx:
sudo systemctl restart nginx
现在打开浏览器,进入<您的网站>/webstats/cgi-bin/awstats.pl?config=。这是AWStats的网站主页。它看起来有点像这样:
确保页面加载正确,您可以在右上角看到AWStats徽标。如果页面没有加载或者徽标丢失,您可能在前面的步骤中有错误配置——返回并确保所有路径都是正确的。
确保AWStats
如果不能保护您的统计页面,可能会导致不好的事情,比如垃圾邮件。另外,您不希望您的详细分析数据暴露于整个Internet。
我们将使用Nginx在统计页面输入密码。打开/etc/nginx/nginx.同样,回到您添加的部分,并在location /webstats/{下面添加以下行:
auth_basic "Username and password required to access AWStats";
auth_basic_user_file /etc/nginx/.htpasswd;
现在我们需要创建。htpasswd文件。退出配置文件并运行以下命令:
sudo htpasswd -c /etc/nginx/.htpasswd
你的用户名可以是任何东西,但它不应该包含空格,应该是唯一的,不是像管理员或站长这样容易猜到的东西。当您运行命令时,系统会提示您输入密码。输入安全密码,然后确认。
重载Nginx:
sudo systemctl restart nginx
尝试再次访问AWStats。这一次,你将被要求输入你的用户名和密码。输入它们,您将像以前一样被发送到AWStats主页。
每天运行AWStats,当日志被旋转时
最后,我们需要更新统计数据。我们会用cron。它是一个任务调度器实用程序,并且在Fedora(和大多数其他Linux发行版)上预装了它。我们会让它每天午夜运行AWStats。编辑/etc/crontab,并在底部添加以下行:
0 0 * nginx /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=
为了避免丢失数据,我们还希望在日志旋转时运行AWStats。为此,编辑/etc/logrotate.d/nginx。在后旋转部分上方,添加以下内容:
prerotate
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=
endscript
AWStats已经全部设置好,可以开始运行了。