ApacheCon Europe 2012

Rhein-Neckar-Arena, Sinsheim, Germany

5–8 November 2012

Interfacing Apache HTTP Server 2.4 with External Applications

Jeff Trawick

Audience level:
Intermediate
Track:
Web Infrastructure

Tuesday 4:15 p.m.–5 p.m. in Level 1 Right

Description

• Summarize potential issues resolved by deploying applications outside of httpd processes • Describe wire protocols, language bindings, and application frameworks which can be used for this type of deployment with httpd 2.4. • Cover configuration and tuning of httpd and the particular module. • Discuss differences in capabilities between httpd 2.4 and httpd 2.2 or nginx 1.2.

Abstract

Web applications written in “scripting” languages such as Perl, PHP, and Python have been around as long as the web, first used external to the web server using CGI and FastCGI, later deployed internally as native modules. But because of instability, resource use, threading implications, desire to use multiple versions of the scripting environment, and other reasons, more and more often these web applications are being moved out of the web server again using wire protocols such as FastCGI, SCGI, and others. Applications are taking advantage of these wire protocols by using protocol-specific language bindings, intermediate APIs such as WSGI that can bind to different wire protocols, or by using application frameworks which are at a much higher layer.

This session will cover deployment of Perl, PHP, and Python applications with Apache HTTP Server 2.4 as external processes. Deployment of existing applications based on common frameworks as well as small limited purpose scripts will be covered. The httpd mechanisms to be described will include mod_fcgid, mod_proxy, and mod_wsgi.

Attendees will learn about web server configuration requirements including tuning for capacity, functional limitations of different deployment choices, and special issues such as PHP op-code caching.

For perspective, a summary of differences between common deployments with httpd 2.4, httpd 2.2, and nginx 1.2 will be provided.