As mentioned by this tweet, I am interested in accelerating web service.
In this article I accelerated Nginx which is service window of WordPress.
I performed benchmark before and after.
You can see where it is.

Other improvements are in this article.

What I did
I added this line in http block of Nginx configuration file.
– You can refer official document how to write.
fastcgi_cache_path /var/cache/nginx/fastcgi_cache levels=1:2 keys_zone=wpcache:30m max_size=512M inactive=600m;
This is server block.
– fastcgi cache condition.
– Expires header for static contents like png, jpeg or others.
– Link
– Open file cache introduced.
– Link
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
+ fastcgi_cache wpcache;
+ fastcgi_cache_key "$request_method:$scheme://$host$request_uri";
+ fastcgi_cache_valid 200 60m;
+ set $do_not_cache 0;
+ if ($request_method = POST) {
+ set $do_not_cache 1;
+ }
+ if ($query_string != "") {
+ set $do_not_cache 1;
+ }
+ if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
+ set $do_not_cache 1;
+ }
+ if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
+ set $do_not_cache 1;
+ }
+ fastcgi_no_cache $do_not_cache;
+ fastcgi_cache_bypass $do_not_cache;
+ add_header X-F-Cache $upstream_cache_status;
}
+ location ~* \.(jpg|jpeg|gif|png|css|js|swf|ico|pdf|svg|eot|ttf|woff)$ {
+ expires 60d;
+ access_log off;
+ }
+ open_file_cache max=100000 inactive=20s;
+ open_file_cache_valid 30s;
+ open_file_cache_min_uses 2;
+ open_file_cache_errors on;
You can reflect these changes by restart/reload Nginx.
Before vs after
I use this article image which runs on Raspberry Pi 4 as “Before”.
I measured with below condition.
- Using LightHouse in Developers Tools of Chrome browser. Checking Performance only - Taking median as representative(n = 5). - Measuring on secret tab of Chrome.
Before
<—Mobile Desktop—>

After
<—Mobile Desktop—>

Mobile improved 6 points, Desktop did 12 points!
Mobile is over 150% better than before!
Conclusion
How was it?
Yes, you can do it!



Comments