Presentation is loading. Please wait.

Presentation is loading. Please wait.

Web server https://store.theartofservice.com/the-web-server-toolkit.html.

Similar presentations


Presentation on theme: "Web server https://store.theartofservice.com/the-web-server-toolkit.html."— Presentation transcript:

1 Web server

2 Linux adoption - Web servers
Linux-based solution stacks come with all the general advantages and benefits of free and open-source software. Some more commonly known examples are:

3 Linux adoption - Web servers
The LAMP stack is probably one of the primary reasons for the very high Linux adoption rate among web servers. In the meantime there are several variations of the LAMP stack available and also completely new ones, such as, e.g. the LYME stack, which is written in Erlang (programming language) and implements functional programming. According to the Netcraft the Apache HTTP Server has the highest market share.

4 World Wide Web - Web servers
The primary function of a web server is to deliver web pages on the request to clients. This means delivery of HTML documents and any additional content that may be included by a document, such as images, style sheets and scripts.

5 NeXT Computer - Creation of the first web server and the first web browser
A NeXT Computer and its object oriented development tools and libraries were used by Tim Berners-Lee and Robert Cailliau at CERN to develop the world's first web server software, CERN HTTPd, and also used to write the first web browser, WorldWideWeb.

6 Web server The term 'web server' can refer to either the computer hardware|hardware (the computer) or the software (the computer application) that helps to deliver web content that can be accessed through the Internet.

7 Web server The most common use of web servers is to host websites, but there are other uses such as Online game|gaming, data storage or running Enterprise software|enterprise applications.

8 Web server - Overview The primary function of a web server is to deliver web pages to Client (computing)|clients. The communication between client and server takes place using the Hypertext Transfer Protocol|Hypertext Transfer Protocol (HTTP). Pages delivered are most frequently HTML|HTML documents, which may include images, Style sheet (web development)|style sheets and Java script|scripts in addition to text content.

9 Web server - Overview The resource is typically a real file on the server's secondary memory|secondary storage, but this is not necessarily the case and depends on how the web server is Implementation|implemented.

10 Web server - Overview While the primary function is to serve content, a full implementation of HTTP also includes ways of receiving content from clients. This feature is used for submitting Form (web)|web forms, including uploading of files.

11 Web server - Overview This means that the behaviour of the web server can be scripted in separate files, while the actual server software remains unchanged

12 Web server - Overview The web server may then be used as a part of a system for monitoring and/or administering the device in question

13 Web server - History In 1989 Tim Berners-Lee proposed a new project to his employer CERN, with the goal of easing the exchange of information between scientists by using a hypertext system. The project resulted in Berners-Lee writing two programs in 1990:

14 Web server - History Between 1991 and 1994, the simplicity and effectiveness of early technologies used to surf and exchange data through the World Wide Web helped to port them to many different operating systems and spread their use among scientific organizations and universities, and then to industry.

15 Web server - History In 1994 Tim Berners-Lee decided to constitute the World Wide Web Consortium (W3C) to regulate the further development of the many technologies involved (HTTP, HTML, etc.) through a standardization process.

16 Web server - Common features
* Virtual hosting to serve many web sites using one IP address

17 Web server - Common features
* Large file support to be able to serve files whose size is greater than 2GB on 32 bit Operating system|OS

18 Web server - Common features
* Bandwidth throttling to limit the speed of responses in order to not saturate the network and to be able to serve more clients

19 Web server - Path translation
Web servers are able to map the path component of a Uniform Resource Locator ('URL') into:

20 Web server - Path translation
* A local file system resource (for static requests)

21 Web server - Path translation
* An internal or external program name (for dynamic requests)

22 Web server - Path translation
For a static request the URL path specified by the client is relative to the web server's root directory.

23 Web server - Path translation
Consider the following URL as it would be requested by a client:

24 Web server - Path translation
The client's user agent will translate it into a connection to with the following HTTP 1.1 request:

25 Web server - Path translation
The web server on will append the given path to the path of its root directory. On an Apache server, this is commonly /home/www (On Unix machines, usually /var/www). The result is the local file system resource:

26 Web server - Path translation
The web server then reads the file, if it exists and sends a response to the client's web browser. The response will describe the content of the file and contain the file itself or an error message will return saying that the file does not exist or is unavailable.

27 Web server - Kernel-mode and user-mode web servers
A web server can be either implemented into the Operating System|OS kernel (computing)|kernel, or in user space (like other regular applications).

28 Web server - Kernel-mode and user-mode web servers
An in-kernel web server (like Microsoft Internet Information Services|IIS on Windows or TUX web server|TUX on GNU/Linux) will usually work faster, because, as part of the system, it can directly use all the hardware resources it needs, such as non-paged memory, CPU time-slices, network adapters, or buffers.

29 Web server - Kernel-mode and user-mode web servers
Web servers that run in user-mode have to ask the system for permission to use more memory or more CPU resources. Not only do these requests to the kernel take time, but they are not always satisfied because the system reserves resources for its own usage and has the responsibility to share hardware resources with all the other running applications. Executing in user mode can also mean useless buffer copies which are another handicap for user-mode web servers.

30 Web server - Load limits
A web server (program) has defined load limits, because it can handle only a limited number of concurrent client connections (usually between 2 and 80,000, by default between 500 and 1,000) per IP address (and TCP port) and it can serve only a certain maximum number of requests per second depending on:

31 Web server - Load limits
* the Personal computer hardware|hardware and Computer software|software limitations of the OS of the computer on which the web server runs.

32 Web server - Load limits
When a web server is near to or over its limit, it becomes unresponsive.

33 Web server - Causes of overload
At any time web servers can be overloaded because of:

34 Web server - Causes of overload
* Too much legitimate web traffic. Thousands or even millions of clients connecting to the web site in a short interval, e.g., Slashdot effect;

35 Web server - Causes of overload
* Distributed Denial of Service attacks. A denial-of-service attack (DoS attack) or distributed denial-of-service attack (DDoS attack) is an attempt to make a computer or network resource unavailable to its intended users;

36 Web server - Causes of overload
* Computer worms that sometimes cause abnormal traffic because of millions of infected computers (not coordinated among them);

37 Web server - Causes of overload
* XSS Worm|XSS viruses can cause high traffic because of millions of infected browsers and/or web servers;

38 Web server - Causes of overload
* Internet bots Traffic not filtered/limited on large web sites with very few resources (bandwidth, etc.);

39 Web server - Causes of overload
* Internet (network) slowdowns, so that client requests are served more slowly and the number of connections increases so much that server limits are reached;

40 Web server - Causes of overload
* Web servers (computers) partial unavailability. This can happen because of required or urgent maintenance or upgrade, hardware or software failures, back-end (e.g., database) failures, etc.; in these cases the remaining web servers get too much traffic and become overloaded.

41 Web server - Symptoms of overload
* Requests are served with (possibly long) delays (from 1 second to a few hundred seconds).

42 Web server - Symptoms of overload
* The web server returns an List of HTTP status codes|HTTP error code, such as 500, 502, 503, 504, 408, or even HTTP 404|404, which is inappropriate for an overload condition.

43 Web server - Symptoms of overload
* The web server refuses or resets (interrupts) Transmission control protocol|TCP connections before it returns any content.

44 Web server - Symptoms of overload
* In very rare cases, the web server returns only a part of the requested content. This behavior can be considered a Software bug|bug, even if it usually arises as a symptom of overload.

45 Web server - Anti-overload techniques
To partially overcome above average load limits and to prevent overload, most popular web sites use common techniques like:

46 Web server - Anti-overload techniques
* Managing network traffic, by using:

47 Web server - Anti-overload techniques
** Firewall (computing)|Firewalls to block unwanted traffic coming from bad IP sources or having bad patterns

48 Web server - Anti-overload techniques
** HTTP traffic managers to drop, redirect or rewrite requests having bad HTTP patterns

49 Web server - Anti-overload techniques
** Bandwidth management and traffic shaping, in order to smooth down peaks in network usage

50 Web server - Anti-overload techniques
* Deploying web cache techniques

51 Web server - Anti-overload techniques
* Using different domain names to serve different (static and dynamic) content by separate web servers, i.e.:

52 Web server - Anti-overload techniques
* Using different domain names and/or computers to separate big files from small and medium sized files; the idea is to be able to fully web cache|cache small and medium sized files and to efficiently serve big or huge (over MB) files by using different settings

53 Web server - Anti-overload techniques
* Using many web servers (programs) per computer, each one bound to its own network card and IP address

54 Web server - Anti-overload techniques
* Using many web servers (computers) that are grouped together behind a load balancer so that they act or are seen as one big web server

55 Web server - Anti-overload techniques
* Adding more hardware resources (i.e. RAM, Disk storage|disks) to each computer

56 Web server - Anti-overload techniques
* Tuning OS parameters for hardware capabilities and usage

57 Web server - Anti-overload techniques
* Using more efficient computer programs for web servers, etc.

58 Web server - Anti-overload techniques
* Using other workarounds, especially if dynamic content is involved

59 Web server - Market share
[ Survey May, June, July 2013].

60 Slowloris - Affected web servers
This affects a number of webservers that use threaded processes and ironically attempt to limit that to prevent memory exhaustion - fixing one problem but creating another. This includes but is not necessarily limited to the following:

61 Slowloris - Affected web servers
* WebSense block pages (unconfirmed)

62 Slowloris - Affected web servers
* Trapeze Wireless Web Portal (unconfirmed)

63 Slowloris - Affected web servers
* Verizon's MI424-WR FIOS Cable modem (unconfirmed)

64 Slowloris - Affected web servers
* Verizon's Motorola Set-top box (port 8082 and requires auth - unconfirmed)

65 Slowloris - Affected web servers
* BeeWare WAF (unconfirmed)

66 Slowloris - Affected web servers
Because Slowloris exploits C10k problem|problems handling thousands of connections, the attack has less of an effect on servers that handle large numbers of connections well:

67 Web analytics - Web server logfile analysis
Web servers record some of their transactions in a logfile. It was soon realized that these logfiles could be read by a program to provide data on the popularity of the website. Thus arose web log analysis software.

68 Web analytics - Web server logfile analysis
In the early 1990s, web site statistics consisted primarily of counting the number of client requests (or hits) made to the web server

69 Web analytics - Web server logfile analysis
A page view was defined as a request made to the web server for a page, as opposed to a graphic, while a visit was defined as a sequence of requests from a uniquely identified client that expired after a certain amount of inactivity, usually 30 minutes

70 Web analytics - Web server logfile analysis
The emergence of Web crawler|search engine spiders and robots in the late 1990s, along with Proxy server|web proxies and Dynamic Host Configuration Protocol|dynamically assigned IP addresses for large companies and Internet service provider|ISPs, made it more difficult to identify unique human visitors to a website. Log analyzers responded by tracking visits by HTTP cookie|cookies, and by ignoring requests from known spiders.

71 Web analytics - Web server logfile analysis
The extensive use of web caches also presented a problem for logfile analysis. If a person revisits a page, the second request will often be retrieved from the browser's cache, and so no request will be received by the web server. This means that the person's path through the site is lost. Caching can be defeated by configuring the web server, but this can result in degraded performance for the visitor and bigger load on the servers.

72 HTTP pipelining - Implementation in web servers
Implementing pipelining in web servers is a relatively simple matter of making sure that network buffers are not discarded between requests. For that reason, most modern web servers handle pipelining without any problem.

73 Session (computer science) - Web server session management
For example, once a user has been authenticated to the web server, the user's next HTTP request (GET or POST) should not cause the web server to ask for the user's account and password again

74 Session (computer science) - Web server session management
The session information is stored on the web server using the session identifier Session ID generated as a result of the first (sometimes the first authenticated) request from the end user running a web browser. The storage of Session IDs and the associated session data (user name, account number, etc.) on the web server is accomplished using a variety of techniques including, but not limited to, local memory, flat files, and databases.

75 Session (computer science) - Web server session management
In situations where multiple web servers must share knowledge of session state (as is typical in a computer cluster|cluster environment) session information must be shared between the cluster nodes that are running web server software

76 Session (computer science) - Web server session management
If session information is considered transient, volatile data that is not required for non-repudiation of transactions and does not contain data that is subject to compliance auditing (in the U.S

77 Session (computer science) - Web server session management
In a service-oriented architecture, Simple Object Access Protocol or SOAP messages constructed with Extensible Markup Language (XML) messages can be used by consumer applications to cause web servers to create sessions.

78 Java (software platform) - Web server and enterprise use
The Java platform has become a mainstay of enterprise IT development since the introduction of the Enterprise Edition in 1998, in two different ways:

79 Java (software platform) - Web server and enterprise use
# Through the coupling of Java to the web server, the Java platform has become a leading platform for integrating the Web with enterprise backend systems

80 Java (software platform) - Web server and enterprise use
#* The Java platform has matured into an Enterprise Integration role in which legacy systems are unlocked to the outside world through bridges built on the Java platform. This trend has been supported for Java platform support for Enterprise application integration|EAI standards like messaging and Web services and has fueled the inclusion of the Java platform as a development basis in such standards as Software Communications Architecture|SCA, XAM and others.

81 Java (software platform) - Web server and enterprise use
#* Java has become the standard development platform for many companies' IT departments, which do most or all of their corporate development in Java. This type of development is usually related to company-specific tooling (e.g. a booking tool for an airline) and the choice for the Java platform is often driven by a desire to leverage the existing Java infrastructure to build highly intelligent and interconnected tools.

82 Java (software platform) - Web server and enterprise use
# The Java platform has become the main development platform for many software tools and platforms that are produced by third-party software groups (commercial, open source and hybrid) and are used as configurable (rather than programmable) tools by companies. Examples in this category include Web servers, application servers, databases, enterprise service buses, business process management (BPM) tools and content management systems.

83 Java (software platform) - Web server and enterprise use
Enterprise use of Java has also long been the main driver of open source interest in the platform

84 Cherokee (web server) 'Cherokee' is an open-source cross-platform web server that runs on Linux, BSD|BSD variants, Solaris (operating system)|Solaris, , and Microsoft Windows. It is a lightweight, high-performance web server/reverse proxy licensed under the GNU General Public License. Its goal is to be fast and fully functional yet still light. Major features of 'Cherokee' include a graphical administration interface named cherokee-admin, and a modular light-weight design.

85 Cherokee (web server) Independent tests have shown Cherokee to be better performing than Apache HTTP Server|Apache when serving up both static and dynamic content.

86 Cherokee (web server) Cherokee is maintained and developed by an Free software community|open source community.[ Contributors and metrics about Cherokee Project] Debian provides official packages of Cherokee.[ Debian's official packages for Cherokee webserver]

87 Cherokee (web server) - Web server features
* Transport Layer Security|TLS and SSL

88 Cherokee (web server) - Web server features
* URL rewriting and redirections supporting regular expressions

89 Cherokee (web server) - Web server features
* Authentication via htdigest, htpasswd, LDAP, MySQL, Pluggable Authentication Modules|PAM, plain, and fixed list.

90 Cherokee (web server) - Web server features
* Custom and Apache HTTP Server|Apache compatible log format.

91 Cherokee (web server) - Web server features
* Ability to Spawn (computing)|launch web applications on demand

92 Cherokee (web server) - Web server features
* Streaming media|Audio/video streaming

93 Cherokee (web server) - Web server features
* Resilient to the c10k problem|10000 simultaneous connections barrier

94 Cherokee (web server) - Web server features
* Graphical configuration interface

95 Cherokee (web server) - Web server features
* Point click deployments through an application market

96 Cherokee (web server) - Web applications
Configuration Wizard (software)|wizards are provided to automatically configure the web server to perform specific tasks, or run frameworks and applications. These provide support for:

97 Nginx - HTTP Proxy and Web server features
* Ability to handle c10k problem|more than 10,000 simultaneous connections with a low memory footprint (~2.5MB per 10k inactive HTTP persistent connection|HTTP keep-alive connections)

98 Nginx - HTTP Proxy and Web server features
* Handling of static files, index files, and auto-indexing

99 Nginx - HTTP Proxy and Web server features
* Load balancing (computing)|Load balancing with in-band health checks

100 Nginx - HTTP Proxy and Web server features
* Fault-tolerant design|Fault tolerance

101 Nginx - HTTP Proxy and Web server features
* Transport Layer Security|TLS/SSL with Server Name Indication|SNI and OCSP stapling support, via OpenSSL.

102 Nginx - HTTP Proxy and Web server features
* WebSockets and HTTP/1.1 Upgrade header|HTTP/1.1 Upgrade (101 Switching Protocols)

103 Nginx - HTTP Proxy and Web server features
* Web page access authentication

104 Nginx - HTTP Proxy and Web server features
* Response rate and concurrent requests limiting

105 Catalyst (software) - Web server support
For development and testing, Catalyst has a built-in simple HTTP server. For production use, Apache HTTP Server|Apache, lighttpd, Hiawatha (web server)|Hiawatha, Cherokee (Webserver)|Cherokee or Nginx with FastCGI or mod_perl support is recommended, but any web server with CGI or FastCGI support will work. On Apache, mod_perl can help with performance considerably, though its use might be an issue because it can be unsafe to share multiple applications under mod_perl.

106 Catalyst (software) - Web server support
Since early 2008, Catalyst applications can also be deployed using the engine[ engine] which provides for the deployment of high performance Catalyst applications without a separate web server.

107 Catalyst (software) - Web server support
Starting with the release of Catalyst 5.9, Catalyst also outputs to the PSGI spec thus it can be run on any Plack (software)|Plack server and along with any server or protocol that supports the PSGI spec, including Mongrel2.

108 Tornado (web server) 'Tornado' is a scalable, Asynchronous IO|non-blocking web server and web application framework written in Python (programming language)|Python. It was developed for use by FriendFeed; the company was acquired by Facebook in 2009 and Tornado was Open-sourcing|open-sourced soon after.

109 Tornado (web server) - Modules
* A module called [ asyncmongo] exists, which allows easy integration with MongoDB.

110 Tornado (web server) - Modules
* [ corduroy] and [ trombi] similarly integrate with CouchDB.

111 Yaws (web server) 'Yaws' (Yet another web server) is a web server written in Erlang (programming language)|Erlang by Claes (klacke) Wikström.

112 Yaws (web server) Yaws can be embedded into other Erlang-based applications or run as a regular standalone web server.[ Steve Vinoski article at the IEEE Internet Computing review, July/August 2011]

113 Yaws (web server) Because Yaws uses Erlang's lightweight threading system, it performs well under high concurrency. A load test conducted in 2002 comparing Yaws and Apache found that with the hardware tested, Apache HTTP Server|Apache with the worker MPM failed at 4,000 concurrent connections, while Yaws continued functioning with over 80,000 concurrent connections.

114 Jetty (web server) The web server is used in products such as Apache ActiveMQ, Alfresco (software)|Alfresco, Apache Geronimo, Apache Maven, Google App Engine, Eclipse (software)|Eclipse, Fuse Services Framework|FUSE, HOSEbird|Twitter's Streaming API and Zimbra

115 Jetty (web server) - Overview
Developed as an independent open source project, in 2009 Jetty moved to Eclipse (software)|Eclipse. Jetty provides Web services in an embedded system|embedded Java application and it is already a component of the Eclipse (software)|Eclipse IDE. It supports Apache JServ Protocol|AJP, JASPI, JMX, JNDI, OSGi, WebSocket and other Java technologies.

116 Jetty (web server) - Use in Hadoop
Hadoop|Apache Hadoop is an example of how Jetty is used in a framework. Hadoop uses Jetty as a web server for different uses in several modules:

117 Jetty (web server) - Use in Hadoop
* The NameNode and the JobTracker use Jetty to serve their admin pages.

118 Jetty (web server) - Use in Hadoop
* The TaskTracker uses Jetty to receive the map, reduce and shuffle operations from the JobTracker.

119 Jetty (web server) - Use in Hadoop
In Hadoop 0.23, Jetty has been replaced by Netty (software)|Netty in the TaskTracker for shuffle operations.

120 Jetty (web server) - History
Originally developed in the Sydney suburb of Balmain, New South Wales|Balmain by software engineer Greg Wilkins, Jetty was originally a HTTP server component of Mort Bay Server; Mort Bay being an area of Balmain.

121 Jetty (web server) - History
Jetty was originally called IssueTracker (its original application) and then MBServler (Mort Bay SERVLet servER). Neither of these were much liked, so Jetty was finally picked.

122 Jetty (web server) - History
Jetty was started in 1995 and was hosted by MortBay, creating version 1.x and 2.x, until 2000

123 Spyglass, Inc. - Web server technology
Spyglass created and marketed the first commercially-supported web server. This product, variously marketed as the Spyglass Server and Server SDK, became available in July Before that date, the only web servers available were free and unsupported.

124 Spyglass, Inc. - Web server technology
The Spyglass Server was also notable for being the first web server to include an application programming interface that allowed server-side applications to run in the server's process.

125 Spyglass, Inc. - Web server technology
Spyglass did not offer their server as a retail product, instead licensing it to original equipment manufacturers to distribute. The largest licensee was Oracle Corporation.

126 Linux adoption - Web servers
Linux-based solution stacks come with all the Free and open-source software#Advantages and benefits of free and open-source software|general advantages and benefits of free and open-source software. Some more commonly known examples are:

127 Linux adoption - Web servers
According to the Netcraft the Apache HTTP Server has the highest market share.Netcraft, [ Survey] May, June, July 2013

128 SAP Logon Ticket - Web Server Filter
The filter is available from SAP Enterprise Portal 5.0 onwards

129 Hiawatha (web server) 'Hiawatha' is a web server available for multiple platforms. It has been developed by Hugo Leisink since 2002.[ About page of Hiawatha webserver]

130 Hiawatha (web server) - History
A CGI process [under other web servers] can run forever

131 Hiawatha (web server) - History
The January 2009 edition of Linux Magazine contained an article about the Hiawatha web server.

132 Hiawatha (web server) - History
* 1.0: September A basic but functional web server.

133 Hiawatha (web server) - History
* 2.0: March Use of multithreading instead of forking.

134 Hiawatha (web server) - History
* 4.0: December A CGI-wrapper[ Manual page cgi-wrapper - Hiawatha webserver] for improved security was included.

135 Hiawatha (web server) - History
* 5.0: October FastCGI support for improved CGI speed.

136 Hiawatha (web server) - History
* 5.12: August URL rewriting support.

137 Hiawatha (web server) - History
* 6.10 : October Prevent cross-site request forgery added.

138 Hiawatha (web server) - History
* 7.0: February Remote monitoring support.

139 Hiawatha (web server) - History
* 8.0: January Autoconf replaced with CMake, OpenSSL replaced with PolarSSL.

140 Hiawatha (web server) - Features
Hiawatha web server implements all important functions of a modern web server, such as:

141 Hiawatha (web server) - Features
* Common Gateway Interface|CGI and Load balancing (computing)|load balancing FastCGI support

142 Hiawatha (web server) - Features
* Reverse proxy functionality

143 Hiawatha (web server) - Features
* Secure Sockets Layer|SSL and Transport Layer Security|TLS support

144 Hiawatha (web server) - Features
* Basic and digest HTTP authentication

145 Hiawatha (web server) - Features
* Upload speed control by traffic shaping

146 Hiawatha (web server) - Features
* Support for WebDAV applications

147 Hiawatha (web server) - Features
* Support for Server Name Indication included in v8.6

148 Hiawatha (web server) - Features
Hiawatha has many security features that no other web server has, like preventing SQL injection|SQL-injection, cross-site scripting (Cross-site scripting|XSS), Cross-site request forgery (CSRF) prevention, denial-of-service protection, control external image linking, banning of potential hackers and limiting the runtime of Common Gateway Interface|CGI applications.[ List of features] The author worked on Server Name Indication|RFC3546 support, but the OpenSSL documentation [on this subject] is just extremely poor so progress was difficult

149 Hiawatha (web server) - Performance
Although security is the main focus, Hiawatha is also doing quite well in terms of speed and performance

150 Web2py - Web servers Web2py can service requests via HTTP and HTTPS with its built-in Rocket server,[ How to run the built-in SSL server] with Apache HTTP Server|Apache,[ Web2py with Apache and mod_ssl] Lighttpd,[ Web2py with Lighttpd and FastCGI] Cherokee HTTP Server|Cherokee,[ Web2py with Cherokee] Hiawatha (web server)|Hiawatha, Nginx and almost any other web server through Common Gateway Interface|CGI, FastCGI, Web server gateway interface|WSGI, mod_proxy,[ Apache Module mod_proxy][ Web2py with mod_proxy][ Web2py with mod_proxy and mod_proxy_html] and/or mod_python.

151 FastCGI - Web Servers that implement FastCGI
:Note: unless stated, completeness of FastCGI implementation is unknown

152 FastCGI - Web Servers that implement FastCGI
** Implemented by [ mod_fcgid]. This module used to be third-party, but was granted to the Apache Software Foundation|ASF as an Apache HTTP Server subproject in 2009, shepherded by Chris Darroch.[ FastCGI apache module mod_fcgid] It only supports UNIX sockets, no TCP sockets.[ Debian bug #450748: Please add support for TCP/IP FastCGI servers]

153 FastCGI - Web Servers that implement FastCGI
** A third-party module mod_fastcgi is also being used. For a while, this module no longer compiled properly under Apache 2.4.x,[ Issues with Apache 2.4 and PHP-FPM] although that problem has been solved with a fork of the original project.[ libapache-mod-fastcgi on Github]

154 FastCGI - Web Servers that implement FastCGI
** Multiplexing of requests through a single connection is prohibited by Apache 1.x design,[ FastCGI – The Forgotten Treasure/ Section 2.3.] so this isn't supported

155 FastCGI - Web Servers that implement FastCGI
** In Apache 2.4, [ mod_proxy_fcgi] was added, supporting TCP FastCGI servers.

156 FastCGI - Web Servers that implement FastCGI
* Cherokee (web server)|Cherokee [ FastCGI for Cherokee]

157 FastCGI - Web Servers that implement FastCGI
** Supports chrooted FastCGI servers

158 Web Server Gateway Interface
The 'Web Server Gateway Interface' is a specification for simple and universal interface (computer science)|interface between web servers and web applications or web application framework|frameworks for the Python (programming language)|Python programming language

159 Web Server Gateway Interface - Idea
Python web application frameworks have been a problem for new Python users because the choice of web framework would limit the choice of usable web servers, and vice versa. Python applications were often designed for only one of Common Gateway Interface|CGI, FastCGI, mod_python or some other custom API of a specific web-server.

160 Web Server Gateway Interface - Idea
WSGI was created as a low-level interface (computer science)|interface between web servers and web applications or frameworks to promote common ground for portable web application development.

161 Web Server Gateway Interface - Specification overview
The WSGI has two sides: the server (computing)|server or gateway side, and the application or framework side. To process a WSGI request, the server side provides environment information and a callback function to the application side. The application processes the request, and returns the response to the server side using the callback function it was provided.

162 Web Server Gateway Interface - Specification overview
So-called WSGI middleware implements both sides of the API so that it can intermediate between a WSGI server and a WSGI application: the middleware acts as an application from some WSGI server's point of view and as a server from some WSGI application's point of view. A middleware component can perform such functions as:

163 Web Server Gateway Interface - Specification overview
* Routing a request to different application objects based on the target Uniform Resource Locator|URL, after changing the environment variables accordingly.

164 Web Server Gateway Interface - Specification overview
* Allowing multiple applications or frameworks to run side-by-side in the same process (computing)|process

165 Web Server Gateway Interface - Specification overview
* Load balancing (computing)|Load balancing and remote processing, by forwarding requests and responses over a computer network|network

166 Web Server Gateway Interface - Specification overview
* Perform content postprocessing, such as applying XSLT stylesheets

167 Web Server Gateway Interface - Example application
A WSGI-compatible “Hello World” application written in Python (programming language)|Python:

168 Web Server Gateway Interface - Example application
* Line 1 defines a callable named application, which takes two parameters, environ and start_response. environ is a dictionary containing Common Gateway Interface#Environment variables|environment variables in CGI. start_response is a callable taking two required parameters status and response_headers.

169 Web Server Gateway Interface - Example application
* Line 2 calls start_response, specifying 200 OK as the status and a Content-Type header.

170 Web Server Gateway Interface - Example application
* Line 3 returns the body of response as a string literal.

171 Web Server Gateway Interface - Example of calling an application
return status_headers[0], status_headers[1], .join(body)

172 Web Server Gateway Interface - Example of calling an application
status, headers, body = call_application(app, )

173 There are numerous web application frameworks supporting WSGI:
Web Server Gateway Interface - WSGI-compatible applications and frameworks There are numerous web application frameworks supporting WSGI:

174 Web Server Gateway Interface - Wrappers
The server or gateway invokes the application callable once for each request it receives from an HTTP client, that is directed at the application.

175 Web Server Gateway Interface - Wrappers
Currently wrappers are available for FastCGI, Common Gateway Interface|CGI, SCGI, Apache JServ Protocol|AJP (using flup), Twisted_(software)|twisted.web, Apache (using mod_wsgi or mod_python) and Internet Information Services|Microsoft IIS (using [ WFastCGI], [ isapi-wsgi], [ PyISAPIe], or an Active Server Pages|ASP gateway).

176 Web Server Gateway Interface - WSGI and Python 3
The separation of binary and text data in Python 3 poses a problem for WSGI, as it specifies that header data should be strings, while it sometimes needs to be binary and sometimes text. This works in Python 2 where text and binary data both are kept in string variables, but in Python 3 binary data is kept in bytes variables and string variables are for unicode text data. An updated version of the WSGI specification that deals with this is PEP 3333.

177 Mongrel (web server) 'Mongrel' is an open-source software HTTP Library (computing)|library and web server written in Ruby (programming language)|Ruby by Zed Shaw

178 Mongrel (web server) Mongrel was the first web server used by Twitter, and inspired Node.js according to Ryan Dahl.

179 Mongrel (web server) Shaw subsequently created Mongrel2, an open-source Language-independent specification|language agnostic web server and the successor to Mongrel server.

180 Mongrel (web server) - Deployment
One popular configuration was to run Apache HTTP Server 2.2 as a load balancer using mod_proxy|mod_proxy_balancer in conjunction with several Mongrel instances. Each Mongrel instance would run on a separate Port (computer networking)|TCP port, configured via the mongrel_cluster management utility. Until recently, Twitter was a notable instance of this configuration.[ Unicorn Power], Twitter Engineering Blog, March 30, 2010

181 Mongrel (web server) - Deployment
Mongrel was capable of serving Ruby on Rails powered sites without requiring any other web servers, though as a Single threading|single-threaded application this configuration is unsuitable for all but light loads.

182 Mongrel (web server) - Deprecation
After the original author Zed Shaw left the Ruby on Rails-scene the releases of Mongrel stopped. The current release is no longer able to install in Ruby versions higher than which is recommended for Rails 3, the fix is to use the much older pre2 release of Mongrel which isn't stable.

183 Mongrel (web server) - Deprecation
A new and maintained server, called Thin, uses the Mongrel parser.

184 Frontaccounting - Database Web server
FrontAccounting uses MySQL as database management system. Recommended HTTP web servers are Apache HTTP Server|Apache Internet Information Services.

185 IceWarp Mail Server - Web Server
IceWarp's web server was introduced in February 2005 and is used principally for webmail.

186 Microsoft Personal Web Server
'Microsoft Personal Web Server' ('PWS') is a scaled-down web server software for Microsoft Windows|Windows Operating Systems

187 Microsoft Personal Web Server
Personal Web Server was originally created by Vermeer Technologies, the same company which created Microsoft FrontPage,[ History of the FrontPage Personal Web Server] before they were acquired by Microsoft. It was installed by FrontPage versions 1.1 to 98 as well.

188 Microsoft Personal Web Server
NT Workstation 4.0 shipped with 'Peer Web Services', which was based on IIS 2.0 and 3.0. With IIS 4.0, this was renamed to Personal Web Server to be consistent with the name used in 95/98.

189 Microsoft Personal Web Server
Since Windows 2000, PWS was renamed to the same IIS name used in server versions of Windows as a standard Windows component. Windows Me and Windows XP|Windows XP Home Edition support neither PWS nor IIS, although PWS can be installed on Windows Me. In other editions of Windows XP, Internet Information Services|IIS is included as standard.

190 Microsoft Personal Web Server
Before Microsoft Visual Studio 2005, PWS was useful in developing web applications on the localhost before deploying to a production web server. The IDE of Visual Studio 2005 (and later versions) now contains a built-in lightweight web server for such development purposes.

191 Microsoft Personal Web Server
File Transfer Protocol|FTP, SMTP, HTTP and the usual web languages such as PHP and Perl are supported by PWS. It also supports basic CGI (Common Gateway Interface) conventions and a subset of Active Server Pages|Classic ASP.[ Getting Started with Active Server Pages] Using these technologies, web applications running on PWS are capable of performing and interpreting database queries and results.

192 Microsoft Personal Web Server
Microsoft also produced a version of Personal Web Server for the Macintosh based on code acquired in its acquisition of ResNova Software in November 1996.

193 Rack (web server interface)
'Rack' provides a minimal, modular and adaptable interface for developing web applications in Ruby programming language|Ruby. By wrapping Http request#Request message|HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call.

194 Rack (web server interface)
Rack is used by almost all Ruby web frameworks and libraries, such as Ruby On Rails and Sinatra (software)|Sinatra. It is available as a Ruby RubyGems|Gem.

195 Rack (web server interface)
Rack has already inspired a JavaScript framework[ jack - introduction]. Jackjs.org. Retrieved on (jackjs) and a Perl one (Plack (software)|Plack), a Common Lisp project called clack, and has resulted in the Ruby developer quasi-standard of rack-compliant.[ Pancake: How To Stack and Loosely Couple Rack-Based Webapps Together]. Rubyinside.com ( ). Retrieved on

196 Rack (web server interface) - Example application
A Rack-compatible Hello World application in Ruby (programming language)|Ruby syntax:

197 Run BASIC - Web server model
If needed, it can be proxy server|proxied behind another web server, such as Apache

198 Apache (web server) In 2009, it became the first web server software to serve more than 100 million websites.

199 Apache (web server) Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation

200 What Is The Apache Web Server?

201 Apache (web server) - Name
According to the FAQ in the Apache project website, the name Apache was chosen out of respect to the Native American tribe Apache and its superior skills in warfare and strategy

202 Apache (web server) - Features
Apache supports a variety of features, many implemented as Compiler|compiled Modular programming|modules which extend the core functionality

203 Apache (web server) - Features
Popular compression methods on Apache include the external extension module, mod_gzip, implemented to help with reduction of the size (weight) of web pages served over HTTP. ModSecurity is an open source intrusion detection and prevention engine for web applications. Apache logs can be analyzed through a web browser using free scripts such as AWStats/W3Perl or Visitors (program)|Visitors.

204 Apache (web server) - Features
Virtual hosting allows one Apache installation to serve many different websites. For example, one machine with one Apache installation could simultaneously serve test47.test-server.example.edu, etc.

205 Apache (web server) - Features
Apache features configurable error messages, Database management system|DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs).

206 Apache (web server) - Features
It supports password authentication and digital certificate authentication. Because the source code is freely available, anyone can adapt the server for specific needs, and there is a large public library of Apache add-ons.[ What is Apache Web server? - A Word Definition From the Webopedia Computer Dictionary. (n.d.). Webopedia: Online Computer Dictionary for Computer and Internet Terms and Definitions. Retrieved November 12, 2012]

207 Apache (web server) - Performance
Although the main design goal of Apache is not to be the fastest web server, Apache does have performance similar to other high-performance web servers

208 Apache (web server) - Performance
The Apache 2.2 series was considered significantly slower than nginx for delivering static pages, although remaining significantly faster for dynamic pages

209 Apache (web server) - Licensing
The Apache HTTP Server codebase was relicensed to the Apache License|Apache 2.0 License (from the previous 1.1 license) in January 2004, and Apache HTTP Server and were the first Software release life cycle|releases using the new license.

210 Apache (web server) - Licensing
The OpenBSD project did not like the change and continued the use of pre-2.0 Apache versions, effectively forking Apache 1.3.x for its purposes.

211 Apache (web server) - Development
The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, feature-rich and freely-available source code implementation of an HTTP (Web) server

212 Oracle iPlanet Web Server
'Oracle iPlanet Web Server' is a web server designed for medium and large business applications. Oracle iPlanet Web Server builds on the earlier Sun ONE Web Server, iPlanet Web Server, and Netscape Enterprise Server products.

213 Oracle iPlanet Web Server
Oracle iPlanet Web Server is available on Solaris (Operating System)|Solaris, Microsoft Windows|Windows, HP-UX, IBM AIX|AIX, Linux|GNU/Linux, supports JavaServer Pages|JSP and Java Servlet technologies, PHP, Netscape Server Application Programming Interface|NSAPI, Common Gateway Interface|CGI, and Adobe ColdFusion|ColdFusion.

214 Oracle iPlanet Web Server
In January 2009, Sun open sourced core components of Sun Java System Web Server 7.0 under the BSD licenses|BSD license as Open Web Server. The open source version was kept in sync with commercial releases until January 2010 (7.0 update 8). Since Oracle's acquisition of Sun, there have been no further open source releases.

215 Oracle iPlanet Web Server
In 2010, Oracle renamed the product from Sun Java System Web Server to Oracle iPlanet Web Server,[ Sun Software Products map] although documentation and links are still in the process of being updated to reflect this.

216 Network monitoring - Web server monitoring process
Third-party application performance monitoring tools provide additional web server monitoring, alerting and reporting capabilities.

217 Mongoose (web server) 'Mongoose' is a cross-platform web server written by Sergey Lyubka. With just over 130KB source code and an executable footprint of 40 kB on Linux 2.6 i386, Mongoose is one of the smallest web servers. Via API it can be also embedded into other programs.[ Mongoose: an Embeddable Web Server in C], LinuxJournal, Michel J. Hammel,

218 Mongoose (web server) * Common Gateway Interface|CGI, Secure Sockets Layer|SSL, Server Side Includes|SSI, Digest access authentication|Digest (MD5) authorization, Websocket, WebDAV support

219 * Resumed download, Rewrite engine|URL rewrite support
Mongoose (web server) * Resumed download, Rewrite engine|URL rewrite support

220 Mongoose (web server) * IP-based Access control list|ACL, Windows service, Hypertext_Transfer_Protocol#Request_methods|GET, POST, HEAD, PUT, DELETE methods

221 Mongoose (web server) * Excluding files from serving by Uniform resource identifier|URI pattern

222 * Python (programming language)|Python Language binding|bindings
Mongoose (web server) * Python (programming language)|Python Language binding|bindings

223 Mongoose (web server) - License change
In August 2013 the original author announced[ Mongoose project status and licensing change], mongoose-users mailing list, that he is changing the project license from the original MIT license to a dual GPLv2 / commercial licensing scheme.

224 Mongoose (web server) - License change
A fork using the original MIT license exists at with additions like C++ interface.

225 Caudium (web server) 'Caudium' is an open source web server. It was originally created as a fork of the Roxen (web server)|Roxen Challenger server. The server is written in C (programming language)|C and Pike programming language|Pike, and Pike is also used to create extensions to the server.

226 Caudium (web server) Caudium is very different from the Apache HTTP Server|Apache.This article about the lists some differences to Apache

227 Boa (web server) 'Boa' is an open source|open-source, small-footprint web server that is suitable for embedded applications. Originally written by Paul Phillips (poker player)|Paul Phillips, it is now maintained by Larry Doolittle and Jon Nelson.

228 Slashdot and Fotolog use Boa to serve images.
Boa (web server) Slashdot and Fotolog use Boa to serve images.

229 As of January 2006, Boa has the following limitations
Boa (web server) As of January 2006, Boa has the following limitations

230 * No access control features (HTTP Basic access authentication, etc.)
Boa (web server) * No access control features (HTTP Basic access authentication, etc.)

231 Boa (web server) * No Server Side Includes (deemed incompatible with server performance goals)

232 Boa (web server) * No SSL support although there are some patches against that introduce SSL support

233 Zeus Web Server 'Zeus Web Server' is a Proprietary software|proprietary web server for Unix and Unix-like platforms (currently Solaris (operating system)|Solaris, FreeBSD, HP-UX and Linux). It was developed by Zeus Technology, a software company located in Cambridge, England. The original authors and company founders are University of Cambridge graduates Damian Reeves and Adam Twiss.

234 Support for AIX, Tru64, and OS X|Mac OS X was dropped on 10 June 2008.
Zeus Web Server Support for AIX, Tru64, and OS X|Mac OS X was dropped on 10 June 2008.

235 ZWS seems to be dead since it hasn't been updated since January 2010,
Zeus Web Server ZWS seems to be dead since it hasn't been updated since January 2010,

236 Zeus Web Server and the company no longer offers a similar server solution. In July 2011, the company was acquired by Riverbed Technology

237 and is ending product support November 30, 2014.
Zeus Web Server and is ending product support November 30, 2014.

238 Zeus Web Server Zeus is designed to be a high-performance web server and was commonly used by hardware vendors submitting Standard Performance Evaluation Corporation|SPECweb99 benchmarks for their hardware. The SPECweb99 benchmark was retired in 2005 and replaced by SPECweb2005. While some SPECweb2005 submissions were made using Zeus, as of 2008 it is no longer among the top performers.

239 Zeus Web Server NSAPI and ISAPI are supported to ease migrations from Internet Information Services|Microsoft IIS and Sun Java System Web Server.

240 Saetta Web Server 'Saetta Web Server' is a web server with a strong focus on high Concurrency (computer science)|concurrency, performance and low Random-access memory|memory usage.

241 Saetta Web Server - Overview
Saetta Web Server can deploy dynamic HTTP content on a network using SAAPIs, server-side applications written in the C (programming language)|C or C++ programming language, or in PHP with the embedded PHP module for PHP web pages, or the CGI handler for scripting language|scripts.

242 Saetta Web Server - Overview
Like Nginx, Saetta Web Server uses an asynchronous system|asynchronous event (computing)|event-driven approach for handling requests, instead of the Apache HTTP Server model that defaults to a Thread (computer science)|threaded or Process (computing)|process-oriented approach. Event-driven approaches provide more predictable performance under high loads.

243 Saetta Web Server - Basic HTTP features
* Ability to handle c10k problem|more than simultaneous connections with a low memory footprint.

244 Saetta Web Server - Basic HTTP features
* Reload configuration on fly

245 Saetta Web Server - Basic HTTP features
* Framework via SAAPIs. Includes APIs for the generation of HTML documents, management of the GET/POST/HEAD HTTP methods, handling of uploaded files. SAAPIs are supported as global filters for virtual directories, single filters and handlers.

246 Saetta Web Server - SAAPI
SAAPI applications can be written using any language that allows the calling of cdecl|standard C functions and that can be compiled into a shared object (for example the C, C++ and assembly programming languages).

247 Saetta Web Server - SAAPI
SAAPI Extensions are true applications that run in the address space of Saetta Web Server. They have access to all of the functionality provided by the web server. These extensions are implemented as shared objects that are loaded into the web server process.

248 Saetta Web Server - SAAPI
Clients can access SAAPI extensions in the same way they access a static HTML page. Server side certain file extensions, full directories and whole web sites can be mapped to be handled by a SAAPI extension.

249 Saetta Web Server - SAAPI
SAAPIs can be used to generate dynamic content and to serve many concurrent clients requiring little memory resources.

250 Web accelerator - Web server accelerator
Other web accelerators are targeted at the web site or web application owners. This type of web accelerator is installed in front of web servers and application servers and use a variety of the above techniques to improve performance to all users accessing the accelerated web sites or web applications. Sometimes referred to as a reverse proxy.

251 Web accelerator - Web server accelerator
This type of server side accelerator has the added benefit of off-loading transactions and connection managements from the web or applications servers and hence, reducing its CPU utilisation and increasing web server or application scalability to handle more users with less bandwidth.

252 Roxen (web server) 'Roxen' is a free software web server produced by Roxen Internet Software, a company based in Linköping, Sweden and named after the nearby lake Roxen

253 Roxen (web server) Roxen was often ahead of its time,[ Product Review: The Roxen Challenger Web Server] featuring a web-based Graphical user interface (GUI) administration interface,[ Install Roxen web server on centos] loadable modules that could be written in several languages including Pike (programming language)|Pike and later Java (programming language)|Java, dynamic content generation with a comprehensive caching system, replication systems for multi-headed servers, and an embedded SQL server for data-heavy server operations (as well as broad support for other databases).[ Roxen: How Much Is Too Much Functionality?] Roxen was built to meet the needs of content creators, so its features and facilities were superb.[ Roxen: How Much Is Too Much Functionality?]

254 Roxen (web server) - RXML
Much of Roxen's power is in an innocuous feature that was born in Roxen's early history: a server-side markup/scripting language called RXML (RoXen Macro Language[ Roxen Concepts])

255 Roxen (web server) - RXML
Roxen modules typically provide their functionality by extending RXML, but the suite provided off-the-shelf was pretty comprehensive:

256 Roxen (web server) - RXML
Notable tags include:

257 Roxen (web server) - RXML
* lt;ifgt;[ If Tags] for conditional content (as well as tags for else, case, for, etc.)

258 Roxen (web server) - RXML
* lt;tablifygt;[ ] for automatically transforming data into pretty tables

259 Roxen (web server) - RXML
* lt;cachegt;[ ] for controlling the caching of dynamic content to reduce page fetch times/server loading

260 Roxen (web server) - RXML
* lt;gbuttongt;[ ] and lt;gtextgt;[ ] image generation tags

261 Roxen (web server) - RXML
* lt;diagramgt;[ ] for converting data into graphical charts/graphs

262 Roxen (web server) - RXML
* lt;emitgt;[ ] for generating content based on LDAP, SQL or filesystem queries (its trivial to build your own photo gallery with thumbnails using Roxen)

263 Roxen (web server) - RXML
All RXML tags contain inline documentation which is used to fill out the online manual that is included on both Roxen's documentation site[ Roxen's documentation site] and with every default server installation.

264 Roxen (web server) - RXML
RXML also provides a variable system; all variables exist within a domain or scope, e.g. form fields passed to the query are accessible as form.'fieldname', user defined variables are stored in the 'var' scope. Unfortunately, in its attempt to explain the two methods of variable instantiation, the documentation confuses most people.

265 Roxen (web server) - RXML
In most cases, variables are referred to by name, but it is also possible to instantiate (insert the value of) a variable anywhere, in- or out-side of tags/markup, using an XML entity-style markup, e.g. 'amp;page.path;'. Optionally, one can specify encoding/escaping of the instance, e.g. 'amp;form.username:mysql;' to insert a user-submitted value from a form safely into an SQL database or 'amp;page.path:js;' to make a variable javascript safe.

266 Roxen (web server) - RXML
Much of the functionality achieved by RXML can be accomplished using an interpreted programming language like PHP which is embedded within a standard web server such as Apache as a plug-in (computing)|plug-in

267 Google Web Server The 'Google platform' refers to the computer software and large hardware resources Google uses to provide their services.

268 Google Web Server This article describes the technological infrastructure behind Google's websites as presented in the company's public announcements.

269 Google Web Server - Original hardware
The original hardware (circa 1998) that was used by Google when it was located at Stanford University included:. Stanford University (provided by Internet Archive). Retrieved on July 10, 2006.

270 Google Web Server - Original hardware
* Sun Microsystems Ultra II with dual 200Hertz|MHz processors, and 256Megabyte|MB of Random access memory|RAM. This was the main machine for the original History of Google#Beginning|Backup system.

271 Google Web Server - Original hardware
* 2 × 300MHz dual Pentium II servers donated by Intel, they included 512MB of RAM and 10 × 9Gigabyte|GB hard drives between the two. It was on these that the main search ran.

272 Google Web Server - Original hardware
* F50 IBM RS/6000 donated by IBM, included 4 processors, 512MB of memory and 8 × 9GB hard disk drives.

273 Google Web Server - Original hardware
* Two additional boxes included 3 × 9GB hard drives and 6 x 4GB hard disk drives respectively (the original storage for Backup). These were attached to the Sun Ultra II.

274 Google Web Server - Production hardware
Google uses commodity computing|commodity-class x86 Server (computing)|server computers running customized versions of Linux

275 Google Web Server - Production hardware
According to Google their global data center operation electrical power ranges between 500 and 681 megawatts.[ Google Green infographics][ Analytics Press Growth in data center electricity use 2005 to 2010]

276 Google Web Server - Production hardware
The combined processing power of these servers might have reached from 20 to 100 FLOPS|petaflops in 2008.[ Google Surpasses Supercomputer Community, Unnoticed?], May 20, 2008.

277 Google Web Server - Network topology
Details of the Google world wide private networks are not publicly available but Google publications make references to the Atlas Top 10 report that ranks Google as the third largest ISP behind Level 3 Communications|Level 3.

278 Google Web Server - Network topology
In order to run such a large network with direct connections to as many ISP as possible at the lowest possible cost Google has a very open peering policy.

279 Google Web Server - Network topology
From this site we can see that the Google network can be accessed from 67 public exchange points and 69 different locations across the world. As of May 2012 Google had 882 Gbit/s of public connectivity (not counting private peering agreements that Google has with the largest ISPs). This public network is used to distribute content to Google users as well as to crawl the Internet to build its search indexes.

280 Google Web Server - Network topology
The private side of the network is a secret but recent disclosure from Google indicate that they use custom built high-radix switch-routers (with a capacity of 128 × 10 Gigabit Ethernet port) for the wide area network. Running no less than two routers per datacenter (for redundancy) we can conclude that the Google network scales in the terabit per second range (with two fully loaded routers the bi-sectional bandwidth amount to 1,280 Gbit/s).

281 Google Web Server - Network topology
These custom switch-routers are connected to Wavelength-division multiplexing|DWDM devices to interconnect data centers and point of presences (PoP) via dark fibre.

282 Google Web Server - Network topology
From a datacenter view, the network starts at the rack level, where 19-inch racks are custom-made and contain 40 to 80 servers (20 to 40 1Rack unit|U servers on either side, while new servers are 2U rackmount systems.[ Web Search for a Planet: The Google Cluster Architecture] (Luiz André Barroso, Jeffrey Dean, Urs Hölzle) Each rack has a Ethernet switch|switch)

283 Google Web Server - Network topology
A Google cluster has thousands of server (computing)|servers and once the client has connected to the server additional load balancing is done to send the queries to the least loaded web server

284 Google Web Server - Network topology
Google has numerous data centers scattered around the world

285 Google Web Server - Project 02
One of the largest Google data centers is located in the town of The Dalles, Oregon, on the Columbia River, approximately 80 miles from Portland, Oregon|Portland

286 Google Web Server - Summa papermill
In February 2009, Stora Enso announced that they had sold the Summa paper mill in Hamina, Finland to Google for 40 million Euros. Google plans to invest 200 million euros on the site to build a data center. Google chose this location due to the availability and proximity of renewable energy sources.[ Finland – First Choice for Siting Your Cloud Computing Data Center.] Accessed 4 August 2010.

287 Google Web Server - Modular container data centers
Since 2005, Google has been moving to a containerized Google Modular Data Center|modular data center. Google filed a patent application for this technology in 2003.

288 Google Web Server - Software
Most of the software stack that Google uses on their servers was developed in-house

289 Google Web Server - Software
The software that runs the Google infrastructure includes:

290 Google Web Server - Software
* Google Web Server (GWS) custom Linux-based Web server that Google uses for its online services.

291 Google Web Server - Software
** Google File System and its successor, Colossus

292 Google Web Server - Software
** BigTable structured storage built upon GFS/Colossus

293 Google Web Server - Software
** Spanner (distributed database technology)|Spanner planet-scale structured storage system, next generation of BigTable stack

294 Google Web Server - Software
** Google F1 a distributed, quasi-SQL DBMS based on Spanner, substituting a custom version of MySQL.

295 Google Web Server - Software
* Distributed lock manager#Google's Chubby lock service|Chubby lock service

296 Google Web Server - Software
* MapReduce and Sawzall (programming language)|Sawzall programming language

297 Google Web Server - Software
** TeraGoogle Google's large search index (launched in early 2006), designed by Anna Patterson of Cuil fame.

298 Google Web Server - Software
** Caffeine (Percolator) continuous indexing system (launched in 2010).

299 Google Web Server - Software
** Hummingbird major search index update, including complex search and voice search.

300 Google Web Server - Software
Google has developed several abstractions which it uses for storing most of its data:

301 Google Web Server - Software
* Protocol Buffers Google's lingua franca for data, a binary serialization format which is widely used within the company.

302 Google Web Server - Software
* SSTable (Sorted Strings Table) a persistent, ordered, immutable map from keys to values, where both keys and values are arbitrary byte strings. It is also used as one of the building blocks of BigTable.[ ]

303 Google Web Server - Software
* RecordIO a sequence of variable sized records.

304 Google Web Server - Software development practices
Most operations are read-only. When an update is required, queries are redirected to other servers, so as to simplify consistency issues. Queries are divided into sub-queries, where those sub-queries may be sent to different ducts in Parallel computing|parallel, thus reducing the latency time.

305 Google Web Server - Software development practices
To lessen the effects of unavoidable Computer hardware|hardware failure, software is designed to be fault tolerant. Thus, when a system goes down, data is still available on other servers, which increases reliability.

306 Google Web Server - Index
Like most search engines, Google indexes documents by building a data structure known as inverted index. Such an index allows obtaining a list of documents by a query word. The index is very large due to the number of documents stored in the servers.

307 Google Web Server - Index
The index is partitioned by document IDs into many pieces called Shard (database architecture)|shards

308 Google Web Server - Index
In June 2010, Google rolled out a next-generation indexing and serving system called Caffeine which can continuously crawl and update the search index

309 Google Web Server - Server types
Google's server infrastructure is divided into several types, each assigned to a different purpose:

310 Google Web Server - Server types
* Web servers coordinate the execution of queries sent by users, then format the result into an HTML page. The execution consists of sending queries to index servers, merging the results, computing their rank, retrieving a summary for each hit (using the document server), asking for suggestions from the spelling servers, and finally getting a list of advertisements from the ad server.

311 Google Web Server - Server types
* Data-gathering servers are permanently dedicated to web crawler|spidering the Web. Google's web crawler is known as GoogleBot. They update the index and document databases and apply Google's algorithms to assign ranks to pages.

312 Google Web Server - Server types
* Each index server contains a set of index shards. They return a list of document IDs (docid), such that documents corresponding to a certain docid contain the query word. These servers need less disk space, but suffer the greatest CPU workload.

313 Google Web Server - Server types
* Document servers store documents. Each document is stored on dozens of document servers. When performing a search, a document server returns a summary for the document based on query words. They can also fetch the complete document when asked. These servers need more disk space.

314 Google Web Server - Server types
* Spelling servers make suggestions about the spelling of queries.

315 Web servers The term 'web server', also written as 'Web server', can refer to either the computer hardware|hardware (the computer) or the software (the computer application) that helps to deliver web content that can be accessed through the Internet.

316 Web servers - Overview The primary function of a web server is to store, process and deliver web pages to Client (computing)|clients. The communication between client and server takes place using the Hypertext Transfer Protocol|Hypertext Transfer Protocol (HTTP). Pages delivered are most frequently HTML|HTML documents, which may include images, Style sheet (web development)|style sheets and JavaScript|scripts in addition to text content.

317 Web servers - Market share
Apache, IIS and Nginx are the most used web servers on the Internet.

318 TUX web server The 'TUX web server' is an in-kernel web server for Linux licensed under the GNU General Public License (GPL). It was maintained by Ingo Molnár.

319 TUX web server It is currently limited to serving static web pages and coordinating between kernelspace Module (Linux)|modules, userspace modules, and regular userspace web server daemon (computer software)|daemons that provide dynamic content. Regular userspace web servers do not need to be altered in any way for TUX to coordinate with them. However, userspace code has to use a new interface based on the tux(2) system call.

320 The main differences between TUX and other webservers include:
TUX web server The main differences between TUX and other webservers include:

321 TUX web server *TUX runs partly within a customized version of the Linux kernel and partly as a userspace daemon.

322 TUX web server *With a capable network card, TUX enables vectored I/O|scatter-gather Direct Memory Access|DMA from the page cache directly to the network.

323 *TUX is only able to serve static web pages.
TUX web server *TUX is only able to serve static web pages.

324 TUX web server This is largely due to its place directly within the kernel, where it can improve performance by taking advantage of facilities not available to traditional web servers, which run outside of the kernel

325 TUX web server TUX can also redirect any request it cannot process to a traditional userspace web server daemon, for example Apache HTTP Server|Apache or lighttpd

326 TUX web server One major component was the Native POSIX Thread Library, which, with the right tuning parameters, allows userspace web servers to serve web pages at a speed very close to that of a kernelspace web server like TUX but without its limitations

327 The web - Web servers The primary function of a web server is to deliver web pages in response to client requests. This means delivery of HTML documents and any additional content that may be included by a document, such as images, style sheets and scripts.

328 In-kernel web server An 'in-kernel web server' is an unlimited HTTP server that runs in kernel space or equivalent. It is also called accelerator.

329 In-kernel web server - Benefits
* Performance. The path taken by data from disk to network. Proper asynchronous zero-copy interfaces would make this available from user-space.

330 In-kernel web server - Benefits
* Scalability with respect to number of simultaneous clients. Event notification of comparable scalability seems unlikely in user-space.

331 In-kernel web server - Drawbacks
*Portability. Every kernel needs a specific implementation route.

332 In-kernel web server - Drawbacks
*Reliability. Failure in the webserver may crash the OS.

333 Michael Holve - Apache Web Server
Author of one of the first GUIs for managing the Apache web server, TkApache v1.0 ( was released into the public domain and dedicated to the Open Source and Linux communities at ApacheCon on October 15, 1998 ([ TkApache release announcement, sourcefiles.org, October 1998] TkApache release announcement,[ TkApache article, Linux Gazette #34] Tkapache article, Linux Gazette)

334 Embedded Web server An 'embedded HTTP server' is a component of a software system that implements the Hypertext Transfer Protocol|HTTP Communications protocol|protocol. Examples of usage within an application might be:

335 Embedded Web server * To provide Database index|indexing, reporting, and debugging tools during the development stage.

336 Embedded Web server * To implement a protocol for the distribution and acquisition of information to be displayed in the regular interface — possibly a web service, and possibly using XML as the Serialization|data format.

337 There are a few advantages to using HTTP to perform the above:
Embedded Web server There are a few advantages to using HTTP to perform the above:

338 Embedded Web server * HTTP is a well studied cross-platform protocol and there are mature implementations freely available.

339 Embedded Web server * HTTP is seldom blocked by Firewall (computing)|firewalls and intranet Router (computing)|routers.

340 Embedded Web server * HTTP clients (e.g. web browsers) are readily available with all modern computers.

341 Embedded Web server * There is a growing tendency of using embedded HTTP servers in applications that parallels the rising trends of Home network|home-networking and ubiquitous computing.

342 Embedded Web server - Typical requirements
Natural limitations of the platforms where an embedded HTTP server runs contribute to the list of the non-functional requirements of the embedded, or more precise, embeddable HTTP server. Some of these requirements:

343 Embedded Web server - Typical requirements
* Small Random-access memory|RAM and Read-only memory|ROM footprint. The exact size depends on the system, but in many cases anything over several megabytes is not embeddable.

344 Embedded Web server - Typical requirements
* Cross compilation support for multiple CPU and operating system combinations.

345 Embedded Web server - Typical requirements
* Easy integration with an existing application, including static linking with the operating system and application.

346 Embedded Web server - Typical requirements
* Serving Web page|pages from Application software|application Computer memory|memory if there is no file system.

347 Embedded Web server - Typical requirements
* Single Thread (computing)|thread and Multithreading (software)|multi-thread support.

348 Embedded Web server - Typical requirements
For every specific project, requirements can vary significantly. For example, ROM and RAM footprints can be a very serious constraint and limit the choices of the system designer. C++ or Java Virtual Machine|JVM availability for the system can be another constraint. Frequently performance is an issue, because typical embedded systems run multiple simultaneous tasks and an HTTP server is only one of them and may be configured as a low Scheduling (computing)|priority Task (computing)|task.

349 Apache web server In 2009, it became the first Web server software to serve more than 100 million Web sites.

350 Apache web server , Apache was estimated to serve 54.2% of all active website|Web sites and 53.3% of the top servers across all domains.[ sage of web servers for websites][ Information about the Apache Web Server

351 Apache web server - Name
When Apache is running, its process name is 'httpd', which is short for HTTP daemon.

352 Apache web server - Features
Virtual hosting allows one Apache installation to serve many different Web sites. For example, one machine with one Apache installation could simultaneously serve test47.test-server.example.edu, etc.

353 Apache web server - Features
It supports password authentication and digital certificate authentication. Because the source code is freely available, anyone can adapt the server for specific needs, and there is a large public library of Apache add-ons.[ What is Apache Web server? - A Word Definition From the Webopedia Computer Dictionary. (n.d.). Webopedia: Online Computer Dictionary for Computer and Internet Terms and Definitions. Retrieved November 12, 2012]

354 Apache web server - Performance
Instead of implementing a single architecture, Apache provides a variety of MultiProcessing Modules (MPMs), which allow Apache to run in a process-based, hybrid (process and thread) or event-hybrid mode, to better match the demands of each particular infrastructure

355 Apache web server - Performance
For delivery of static pages, Apache 2.2 series was considered significantly slower than nginx.[ Serving static files: a comparison between Apache, Nginx, Varnish and G-WAN] To address this issue, the Apache version considered by the Apache Foundation as providing high-performance is the multi-threaded version, which mixes the use of several processes and several threads per process.[ Apache MPM worker] This architecture, and the way it was implemented in the Apache 2.4 series, provides for performance equivalent or slightly better than event-based Web servers, as is claimed by the president of the Apache Foundation, Jim Jagielski.[ Apache httpd 2.4] However, some independent benchmarks show that it still half as fast as nginx.[ Apache 2.4 Faster Than Nginx?][ Performance of Apache 2.4 with the event MPM compared to Nginx]

356 Apache web server - Licensing
The OpenBSD project did not like the change and continued the use of pre-2.0 Apache versions, effectively forking Apache 1.3.x for its purposes. Later it switched to nginx.[ OpenBSD Upgrade Guide: 5.1 to 5.2][ OpenBSD Following -current]

357 Information explosion - Web servers
As of August 2005, there were over 70 million web servers. there were over 135 million web servers.

358 For More Information, Visit:
The Art of Service


Download ppt "Web server https://store.theartofservice.com/the-web-server-toolkit.html."

Similar presentations


Ads by Google