c - 获取 Apache C-Module 中的连接数

标签 c apache webserver apache-modules

如何获取打开的连接数(有多少个不同的浏览器正在尝试访问服务器)。 我尝试查看每个函数处理程序中可用的结构request_rec
request_rec->connection->conn_config 听起来像是最相关的字段(输入 ap_conf_vector_t 但我不知道如何从中获取信息。

谢谢!

最佳答案

没有专门的计数器。

您应该检查所有 apache 进程并根据其状态对它们进行计数,例如 mod_status做:

int server_limit, thread_limit;
int j, i, res;
int ready;
int busy;
worker_score *ws_record = apr_palloc(r->pool, sizeof *ws_record);
process_score *ps_record;

ap_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &thread_limit);
ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &server_limit);

ready = 0;
busy = 0;

for (i = 0; i < server_limit; ++i) {
    ps_record = ap_get_scoreboard_process(i);
    for (j = 0; j < thread_limit; ++j) {
        ap_copy_scoreboard_worker(ws_record, i, j);
        res = ws_record->status;

        if (!ps_record->quiescing
            && ps_record->pid) {
            if (res == SERVER_READY &&
                ps_record->generation == ap_my_generation)
                ready++;
            else if (res != SERVER_DEAD &&
                     res != SERVER_STARTING &&
                     res != SERVER_IDLE_KILL)
                busy++;
        }
    }
}

关于c - 获取 Apache C-Module 中的连接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963065/

相关文章:

java - 网络爬虫向服务器连续请求之间的最小延迟

c - 这些 fork() 创建了多少僵尸和孤儿进程

c - scanf() 将换行符保留在缓冲区中

apache - 有条件地设置 Apache header

apache - 使用 .htaccess 重写规则重定向到我服务器上的不同文件夹

php - 使用 Phonegap 从 Android 上传照片

apache - 当配置 Server.xml 将另一个域指向一个不是 webapps 文件夹中 ROOT 文件夹的文件夹时,我做错了什么吗?

c - ANSI C 中的别名 : Is a = (double *) (&a) allowed

c - 一个简单的 float 序列化示例的问题

css - 如何获取 Apache Wicket PropertyColumn 数据以根据内容动态更改 CSS 类?