My two favourite CMSes and my two favourite web servers. Here are four config files for the same website. Let's assume we have a user devin with two directories in his public_html folder:
/home/devin/public_html/drupal /home/devin/public_html/wordpress
And then has already created the following logs folders (nginx and Apache have a habit of crashing when you try to specify a non-existent logging directory):
/home/devin/logs/apache/drupal /home/devin/logs/apache/wordpress /home/devin/logs/nginx/drupal /home/devin/logs/nginx/wordpress
And that you've got the following four domains:
WA.devinhoward.ca DA.devinhoward.ca WN.devinhoward.ca DN.devinhoward.ca
Then here are the configuration files that should work to host Drupal or Wordpress on Nginx or Apache:
Wordpress on Apache:
<VirtualHost *:80>
	  ServerName WA.devinhoward.ca
	  DocumentRoot /home/devin/public_html/wordpress
	  ErrorLog /home/devin/logs/apache/wordpress/error.log
	  CustomLog /home/devin/logs/apache/wordpress/access.log combined env=!justtesting
  <Directory /home/devin/public_html/wordpress>
	    suPHP_Engine on
	    AddHandler application/x-httpd-suphp .php .php3 .php4 .php5
	    suPHP_AddHandler application/x-httpd-suphp
    AllowOverride All
    <Limit GET POST OPTIONS PROPFIND>
	      Order allow,deny
	      Allow from all
	    </Limit>
	    <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
	      Order deny,allow
	      Deny from all
	    </Limit>
	  </Directory>
	</VirtualHost>
Drupal on Apache:
<VirtualHost *:80>
	  ServerName DA.devinhoward.ca
	  DocumentRoot /home/devin/public_html/drupal
	  ErrorLog /home/devin/logs/apache/drupal/error.log
	  CustomLog /home/devin/logs/apache/drupal/access.log combined env=!justtesting
  <Directory /home/devin/public_html/drupal>
	    suPHP_Engine on
	    AddHandler application/x-httpd-suphp .php .php3 .php4 .php5
	    suPHP_AddHandler application/x-httpd-suphp
    AllowOverride All
    <Limit GET POST OPTIONS PROPFIND>
	      Order allow,deny
	      Allow from all
	    </Limit>
	    <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
	      Order deny,allow
	      Deny from all
	    </Limit>
	  </Directory>
	</VirtualHost>
Wordpress on Nginx:
server {
	        listen   80;
	    
	        ## Your website name goes here.
	        server_name WN.devinhoward.ca;
        ## Your only path reference.
	        root /home/devin/public_html/wordpress;
	        access_log /home/devin/logs/nginx/wordpress/access.log;
	        error_log /home/devin/logs/nginx/wordpress/error.log error;
        ## This should be in your http block and if it is, it's not needed here.
	        index index.php index.html index.htm;
	        location / {
	                try_files $uri $uri/ /index.php?q=$uri&$args;
	        }
        error_page 404 /404.html;
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	        location ~ \.php$ {
	                #fastcgi_pass 127.0.0.1:9000;
	                # With php5-fpm:
	                fastcgi_pass unix:/var/run/php5-fpm.sock;
	                fastcgi_index index.php;
	                include fastcgi_params;
	        }
        location = /favicon.ico {
	                log_not_found off;
	                access_log off;
	        }
	        location = /robots.txt {
	                allow all;
	                log_not_found off;
	                access_log off;
	        }
	        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
	                expires max;
	                log_not_found off;
	        }
	}
Drupal on Nginx:
server {
	        server_name DN.devinhoward.ca;
	        root /home/devin/public_html/drupal;
	        access_log /home/devin/logs/apache/drupal/access.log;
	        error_log /home/devin/logs/apache/drupal/error.log error;
	        # Enable compression, this will help by serving Gzip versions of files.
	        gzip_static on;
	        location = /favicon.ico {
	                log_not_found off;
	                access_log off;
	        }
	        location = /robots.txt {
	                allow all;
	                log_not_found off;
	                access_log off;
	        }
	        # Very rarely should these ever be accessed outside of your lan
	        location ~* \.(txt|log)$ {
	                deny all;
	        }
	        location ~ \..*/.*\.php$ {
	                return 403;
	        }
	        # No no for private
	        location ~ ^/sites/.*/private/ {
	                return 403;
	        }
	        # Block access to "hidden" files and directories whose names begin with a
	        # period. This includes directories used by version control systems such
	        # as Subversion or Git to store control files.
	        location ~ (^|/)\. {
	                return 403;
	        }
	        location / {
	                # This is cool because no php is touched for static content
	                try_files $uri @rewrite;
	        }
	        location @rewrite {
	                # You have 2 options here
	                # For D7 and above:
	                # Clean URLs are handled in drupal_environment_initialize().
	                rewrite ^ /index.php;
	                # For Drupal 6 and bwlow:
	                # Some modules enforce no slash (/) at the end of the URL
	                # Else this rewrite block wouldn't be needed (GlobalRedirect)
	                #rewrite ^/(.*)$ /index.php?q=$1;
	        }
	        location ~ \.php$ {
	                fastcgi_split_path_info ^(.+\.php)(/.+)$;
	                include fastcgi_params;
	                fastcgi_param SCRIPT_FILENAME $request_filename;
	                fastcgi_intercept_errors on;
	                fastcgi_pass unix:/var/run/php5-fpm.sock;
	        }
	        # Fighting with Styles? This little gem is amazing.
	        # This is for D6
	        #location ~ ^/sites/.*/files/imagecache/ {
	        # This is for D7 and D8
	        location ~ ^/sites/.*/files/styles/ {
	                try_files $uri @rewrite;
	        }
	        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
	                expires max;
	                log_not_found off;
	        }
	}
Note: the nginx stuff was plagiarized and adapted, here are my sources:
- https://www.digitalocean.com/community/articles/how-to-install-linux-ng…
 - http://wiki.nginx.org/Drupal