Apache is one of the best-known web servers, running on all platforms but usually on Linux in production mode. Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. Both static files (CSS, JS, HTML, image files) and dynamic files (PHP, Perl, Python, etc.) are served equally using the same amount of resources. This will cause a bottleneck in system performance when your website has a lot of static files and a lot of traffic.
To prevent this, we can use nginx (read: engine x) to serve static files and use Apache to serve dynamic files. To do this you can configure both nginx and Apache web server to work together, with nginx installed as a reverse proxy. So nginx will filter all the requests, where static files will be served by nginx and dynamic files will pass to Apache.
This technique will certainly improve your server performance, since nginx is incredibly fast in serving static files and Apache will use resources efficiently (because it only serves dynamic files/server scripts). The next step is to load balance nginx with other nginx instances. So it is possible for you to make your own CDN (content delivery network). You just need to buy another small server in another location to serve your visitors from the nearest location to your server.
