Broadly there are two views to handling more requests, and serving faster. One view is to write extremely efficient code. The other view is to be have extremely efficient serving (server). You can try for best of both, but it is tough to achieve. Most of the sites are located somewhere between these two extremes. For both these approaches I can recommend switching over to nginx completely, if not for only serving your static files, as nginx outperforms apache in both these respects by an order of magnitude. nginx is non blocking server and doesn't have the overhead of php for serving non php files unlike apache.
New programmers and hobbyists tend to end up developing with pre-made frameworks, and platforms. These codes are not optimum as they are intended to serve a large audience. This group of people takes the view of optimizing their serving (servers) as they can not leave their framework and hence can not fully optimize their code. In this approach, in context of nginx on linux you can tune your server to squeeze the maximum performance you can from it:
- You would want to optimize your tcp stack that comes on your os.
- Increase the number of open file descriptors.
You might want to place your www directory on a ramdisk.
You would want to increase worker connections and processes in nginx and the number of workers if you decide to use nginx.
- You would probably want to set up caching to compensate for badly written code.
- You are currently using APC which is an object cache, you might want to set up page
caching using APC too, which will again offer improvements by an order of magnitude.
- You might want to memcache your database queries which should provide space to database bottlenecks.
- Use larger buffers in your web and database server.
The other group, generally experienced programmers who write their own code from ground up, or can manage to do so at a later point in time, try to write super efficient code, and be minimalistic in their 'design' efforts to server lean http responses which performs optimally on any stack. I have no tips to offer here but merely to suggest to follow best practices from authorities in the respective domain. Though, I can tell you Facebook's story in this regard.
Facebook's is an iconic tale of progress from server optimization to code optimization. Originally built on PHP with apache, they soon ran into performance issues, at which point in time they started optimizing their servers heavily. The OS, PHP stack everything was optimized. Soon they had to start using memcache, which was quite recent from my memory. But no sooner they started experiencing service disruptions again. At which point, since they could'nt optimize PHP itself any further, they actually compiled it into machine code! Which is the end of line as far as improvements are concerned. Now they can only add more servers. Unless they switch their language. Which will also stop yielding benefits at a point.
So these are the two options ahead of you. Choose wisely!
Finally I can add that you should follow the handy set of rules and guidelines at Yahoo Yslow and Google Pagespeed for improving performance. Minify your JS, HTML, PHP, CSS, and place at top and bottom accordingly. Use a CDN. Design lighter pages etc. Best of luck!