Web server

Apache (Recommended)

Apache is the most commonly used web server for Drupal. Drupal will work on Apache 2.x hosted on UNIX/Linux, OS X, or Windows.

The majority of Drupal development and deployment is done on Apache, so there is more community experience and testing performed on Apache than on other web servers. Drupal 7 and 6 will likely work on Apache 1.3.

You can use the Apache 'mod_rewrite' extension to allow for clean URLs. Note that with Drupal 8, clean urls are enabled by default and can't be disabled, so mod_rewrite needs to be installed and enabled for Drupal 8 to work.

The Apache Virtualhost configuration must contain the directive AllowOverride All to allow Drupal's .htaccess file to be used.

Nginx

Nginx is a commonly used web server that focuses on high concurrency, performance and low memory usage.

Drupal will work on Nginx legacy versions (0.7.x, 0.8.x, 1.0.x, 1.2.x), stable 1.4.x versions, and mainline 1.5.x versions hosted on UNIX/Linux, OS X, or Windows. Nginx is a popular alternative to Apache, so there is also significant community experience and testing performed on Nginx.

For information on enabling clean URLs, see Clean URLs with NGINX. Note that with Drupal 8, clean urls are enabled by default and can't be disabled, so ngx_http_rewrite_module needs to be installed and enabled for Drupal 8 to work.

Hiawatha

Hiawatha is a web server with a strong focus on security. It also aims at being easy to use and being lightweight. Research performed by independent researchers proves that Hiawatha offers a performance comparable to other web servers under normal conditions, but much better while under attack.

Hiawatha is fully compatible with Drupal. For information about the required URL rewriting rules to use Drupal with Hiawatha, read Clean URLs with Hiawatha.

Microsoft IIS

Microsoft IIS is a web server and set of feature extension modules for use with Microsoft Windows.

Drupal core will work with IIS 5, IIS 6, or IIS 7 if PHP is configured correctly.

To achieve clean URLs you may need to use a third party product. For IIS 7 you can use the Microsoft URL Rewrite Module or a third party solution.