Hi
No, the problem is not with Plesk.
They do a good decision, serving statics assets from nginx and managing conections with it, and let apache to the background process.
But this a web "normal" configuration. When you put pagespeed in the equation then things changes.
If you put apache + pagespeed, then statics assets need to be served by apache because are rewrited and these rewrited static contend served from the pagespeed cache.... from apache.
This makes the initial config netx to useless.
Pagespeed need hits on the web server it run t work, so if you put a cache in front then you need a shot time for the cache to mage request go to the backend and make pagespeed wor.
This config ( nginx proxy cache -> apache + pagespeed) makes sense in a very high used web server.
And Plesk make it a plus confuse thing creating a lot of config files, but is how it work. And you cn´t taylar these config files because Plesk overwrite it when you makes changes to the files.
So my tougths in this cases is making the whole proccess step by step:
1.- Create the apache web server and do it work well.
2.- Add the pagespeed module, and try the pagespeed directives snf configurations, see what they do and what the web need.
3.- Add the nginx proxy cache, see how it works and play with the config
4.- Add CF to the whole thing.
But this a production installation, so changes can have non desired effects.
And this web have a heavy work to do because you have 100 images in each page (or near it)
So, what I think you need to do:
1.- Make sure all statics asset that pagespeed processes have a public cacheable header / cache-contol: max-age=XXXX, public)
the XXX not need to be 1 year because when pagespeed rewrites it then they have the 1 year. Try 2-3 days. 172800 - 259200, If you set it to 1 year this tell pagespeed to store the optimized resources for 1 year in the cache , why do you need to store in cache an asset not accessed by 2-3 days?
2.- Make sure ALL request go to the apache, nginx (seems that in plesk nginx can´t be bypassed) must be a transparent proxy
3.- For some time and as a "experiment" put
ModPagespeedImageMaxRewritesAtOnce -1, and see if the times for rewrite all images are acceptable.
4.- For help in 4, put
RewriteDeadlinePerFlushMs
20 (the defaul is 10). This the time pagespeed used to to optimizations in a page before it flush the page to the client
5.- Take a look on how cache is working. Remember you have 2 caches in place SHMcache and filecache. Shmcache is a in-memory thing, so increase the size consumes RAM memory
6.- Consider intrduce redis in the config, this a ram database to store the cache.