Apache Web Server Architecture

Apache uses 1 thread/connection, This is not Recommended.
Main thread forks 3-10 children, Each child creates 20-25 threads depending on load.
Children creates threads at startup and never creates more. Listener listens for connections & gives connection to other threads.

      main()
        |-- child-process1
        |         |-------------|----------------------|----
        |         thread1     thread2               thread25
        |
        |-- child-process2
        |
        |-- child-process3
        |
        -- Listener-Thread (80, 8443)

        //maintains  Idle thread pool(thread-4, thread-17, thread-10, thread-50)
    
Apache web Server Architecture