Назад | Перейти на главную страницу

Самый простой способ проверить количество ударов в минуту?

Один веб-сайт, на который меня попросили посмотреть, имеет большой трафик. Они отключили access_log из соображений производительности (хотя это неплохо), и мне было интересно, сколько обращений они получали в минуту / час / что угодно.

Без включения access_log, как я могу проверить количество обращений в минуту / час / день на сервере Apache? Может быть, строка кода на главной странице для приблизительной оценки?

вы можете попробовать включить mod_status который предоставит вам эту информацию и многое другое, например

Current Time: Wednesday, 16-Nov-2011 21:52:01 GMT
Restart Time: Wednesday, 16-Nov-2011 21:51:50 GMT
Parent Server Generation: 0
Server uptime: 10 seconds
Total accesses: 0 - Total Traffic: 0 kB
CPU Usage: u0 s0 cu0 cs0
0 requests/sec - 0 B/second -
1 requests currently being processed, 5 idle workers

W_____..........................................................
................................................................
................................................................
................................................................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

Srv PID Acc M   CPU     SS  Req Conn    Child   Slot    Client  VHost   Request
0-0 4957    0/0/0   W   0.00    5   1369611147  0.0 0.00    0.00    192.168.1.73    host.lan    GET /server-status HTTP/1.1

Гугл Аналитика делает довольно хорошую работу.

Mod_status включен? http://www.apache.org/server-status является примером вывода, и у него есть запросы / с с момента запуска и общие итоги.

<?php 

/* 
In progress by HaZe as of 11-16-11
It gets the IP from the user, even behind a PHP proxy (VPNs are still hidden).
*/
if (getenv("HTTP_X_FORWARDED_FOR")) { 
      $ipaddress   = getenv("HTTP_X_FORWARDED_FOR"); 
    } else { 
      $ipaddress   = getenv("REMOTE_ADDR"); 
} 
$localdate = date("l j F Y g:ia", time() - date("Z")); 
$useragent = $_SERVER['HTTP_USER_AGENT']; 
$referer = $_SERVER['HTTP_REFERER'];
$page = $_SERVER['REQUEST_URI'];
$useragent = strip_tags($useragent); 

$varlog = fopen("access-log-php.html", "a"); 

// Write data
fwrite($varlog, $ipaddress); 
fwrite($varlog, "<br>"); 
fwrite($varlog, $localdate); 
fwrite($varlog, "<br>"); 
fwrite($varlog, $page); 
fwrite($varlog, "<br>"); 
fwrite($varlog, $useragent);
fwrite($varlog, "<br>"); 
fwrite($varlog, $referer); 
fwrite($varlog, "<br><br>"); 

// Close file
fclose($varlog); 

?>

Вы можете попробовать это, просто добавьте его на страницу индекса, если это PHP, или, что еще лучше, поместите его в файл «Header.html» как функцию PHP.

Каждый раз, когда он загружается, он будет давать вам IP-адрес пользователя, реферер, пользовательский агент и просматриваемую страницу.

Грубо говоря, сохраните это там, где нужно, на один час, затем вырежьте и вставьте созданный им файл (access-log-php.html) в место, где он не будет редактироваться. Можно заглянуть внутрь и посчитать, сколько попаданий.

В качестве альтернативы можно настроить функцию PHP SQL, при которой она увеличивается на единицу и сохраняется в таблице в базе данных в течение одного часа.

Однако PHP - лучший вариант.