Apache Web Server SOFTWARE ARCHITECTURE

Apache Web Server SOFTWARE ARCHITECTURE

Apache Web Server SOFTWARE ARCHITECTURE ERFAN SHARAFZADEH Background 2 /20 The Apache HTTP Server ("httpd") was launched in 1995 Erfan Sharafzadeh – Software Architecture Course Presentation The Change of Web Applications 3 /20 Erfan Sharafzadeh – Software Architecture Course Presentation Deployment Diagram 4 /20 Erfan Sharafzadeh – Software Architecture Course Presentation Abstractions 5 /20 User Level Code APXS Core Modules Multi-Processing Models Apache Portable Runtime Operating System Control Flow Hardware Request Flow Network Erfan Sharafzadeh – Software Architecture Course Presentation Project Structure 6 /20 HTTPd OS Include Build Server Support Test Modules Erfan Sharafzadeh – Software Architecture Course Presentation Project Structure 7 /20 HTTPd OS Include Build Server Support Test Modules Platform Specific build libraries Erfan Sharafzadeh – Software Architecture Course Presentation Project Structure 8 /20 HTTPd OS Include Build Server Support Test Modules Apache Server Header Files Erfan Sharafzadeh – Software Architecture Course Presentation Project Structure 9 /20 HTTPd Modules OS Include Build Server Support Test Core Core Server Functionality Multiprocessing Models OS interfaces for processing requests Erfan Sharafzadeh – Software Architecture Course Presentation Project Structure 10 /20 HTTPd Modules OS Include Build Server Support Test AAA Cache Database Modules are mandatory or Cluster optional HTTP according to the SSL use case … Erfan Sharafzadeh – Software Architecture Course Presentation 11 Connection Handling /20 HTTPd Modules OS Include Build Server Support Test Core Multiprocessing Models Prefork Worker Event Netware Win NT Erfan Sharafzadeh – Software Architecture Course Presentation Connection Handling Architecture 12 /20 mpm_prefork mpm_worker mpm_event Erfan Sharafzadeh – Software Architecture Course Presentation Lets take a look at some animations 13 /20 https://w ww.datadog hq.com/blo g/monitori ng-apache- web-server- performance / Erfan Sharafzadeh – Software Architecture Course Presentation 14 Modules Interface /20 Load Module (x) Register_hooks() Sort_hooks() Erfan Sharafzadeh – Software Architecture Course Presentation 15 Modules Interface /20 Erfan Sharafzadeh – Software Architecture Course Presentation 16 How Modules Work /20 Erfan Sharafzadeh – Software Architecture Course Presentation 17 How Modules Work /20 Erfan Sharafzadeh – Software Architecture Course Presentation 18 How Modules Work /20 Erfan Sharafzadeh – Software Architecture Course Presentation Modules Interface 19 static int sample_handler(request_rec *r) /20 { if (strcmp(r->handler, "sample")) { return DECLINED; } r->content_type = "text/html"; if (!r->header_only) ap_rputs("The sample page from mod_sample.c\n", r); return OK; } static void sample_register_hooks(apr_pool_t *p) { ap_hook_handler(sample_handler, NULL, NULL, APR_HOOK_MIDDLE); } /* Dispatch list for API hooks */ module AP_MODULE_DECLARE_DATA sample_module = { STANDARD20_MODULE_STUFF, NULL, /* create per-dir config structures */ NULL, /* merge per-dir config structures */ NULL, /* create per-server config structures */ NULL, /* merge per-server config structures */ NULL, /* table of config file commands */ sample_register_hooks /* register hooks */ }; Too many ugly hacks! 20 /20 /server/main.c: /* This is a hack until we finish the code so that it only reads * the config file once and just operates on the tree already in * memory. rbb */ /server/config.c: char *tmp = ap_malloc(strlen(m->name)); /* FIXME: memory leak, albeit a small one */ Erfan Sharafzadeh – Software Architecture Course Presentation.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    20 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us