Home >Backend Development >PHP Tutorial >Server-side Optimization with Nginx and pm-static
This article details optimizing a multi-image gallery blog application, reducing its initial load time from a sluggish 28 seconds to a swift 0.7 seconds. The optimization journey focuses on on-the-fly thumbnail generation.
After optimization, production-ready speeds were achieved:
Key Improvements:
pm
setting (process manager) significantly impacted performance. While pm=static
consumed more resources, it eliminated process spawning overhead, resulting in a 20% performance boost.Troubleshooting:
If using Homestead Improved on Windows, shared folder issues may arise. Adding type: "nfs"
to the folder in Homestead.yaml
often resolves this:
Run vagrant up
with administrative privileges if problems persist. Before these fixes, load times were 20-30 seconds per request:
Testing Methodology:
Locust load testing was used with 100 concurrent users. The server stack comprised PHP 7.1.10, Nginx 1.13.3, and MySQL 5.7.19 on Ubuntu 16.04. Ngrok tunneled HTTP connections for testing via a static URL.
PHP-FPM and pm
Setting:
The pm
setting in /etc/php/7.1/fpm/pool.d/www.conf
controls PHP-FPM process management. dynamic
, ondemand
, and static
modes were tested. static
provided the best performance but at the cost of higher resource utilization.
Nginx and FastCGI Caching Configuration:
Nginx caching was implemented using proxy_cache
for static assets and fastcgi_cache
for dynamic content. This significantly reduced response times and failure rates.
Pingdom testing confirmed the substantial performance improvements:
Conclusion:
This optimization demonstrated the significant impact of server-side tuning using Nginx caching and strategic PHP-FPM process management. The results highlight the potential for substantial performance gains even with modest server resources. A HAR file of the final test is available (not included here). Further optimization strategies are welcome.
(The initial image remains at the top, and all subsequent images maintain their original order and format.)
The above is the detailed content of Server-side Optimization with Nginx and pm-static. For more information, please follow other related articles on the PHP Chinese website!