• We value your experience with Plesk during 2024
    Plesk strives to perform even better in 2025. To help us improve further, please answer a few questions about your experience with Plesk Obsidian 2024.
    Please take this short survey:

    https://pt-research.typeform.com/to/AmZvSXkx
  • The Horde webmail has been deprecated. Its complete removal is scheduled for April 2025. For details and recommended actions, see the Feature and Deprecation Plan.
  • We’re working on enhancing the Monitoring feature in Plesk, and we could really use your expertise! If you’re open to sharing your experiences with server and website monitoring or providing feedback, we’d love to have a one-hour online meeting with you.

Resolved NGiNX - browser caching for static resources

and now i hope PLESK may can fix this issue.
to be honest with this requirements for database under wordpress, not plesk, but even god can't help you, think to double the ram, what about the cpu?

successul to install memcached on my site but i can not choose it on W3 Total Cache
probably is not successfuly installed. I used it some times ago with plesk and it shoudn't be a problem, try this method http://devblog.plesk.com/2015/08/adding-custom-php-modules-in-plesk/ it worked for me.

My server is 32GB RAM , HHD 6TB SATA with Raid 1
Think to move the database on SSD, they are not so expencive now, much faster and have much more iops.

As i am not a programmer. and i lose a lot of time MORE THAN A MONTH to trying to config my site for stable by PLESK
I will advise you to pay someone to make the config and optimisations of the server and someone to make optimisations to WP.

you have serious requirements, which will require serious work to give smooth experience to users.
 
Hi bulent,
hi cookkoo,


to be honest with this requirements for database under wordpress, not plesk, but even god can't help you, think to double the ram, what about the cpu?
Sorry, but such statements are just not true, nor helpfull for a forum-user, who ask for help. Experienced server administrators are certainly able to tweak the server and it's configuration(s), so that busy domains and depending big databases run smooth and fast and without issues.

You still should note, that this forum is a "Plesk-related" forum: we care about Plesk - issues, problems, errors and questions and even that you may find as well non Plesk-related topics and posts here in the forum, guiding a forum-user step-by-step to all possible tweaks for his whole server ( or content project ) just does not fulfill the purpose of this forum. So the answer:
I will advise you to pay someone to make the config and optimisations of the server and someone to make optimisations to WP.
... is absolutely correct and cookkoo should really consider to hire a professional server administrator for his project, because the required necessary actions, suggestions and advices go further, as this is offered in this forum.
 
Hello bulent,UFHH01

Thank you so much for your suggestion. Now i have some programmer he should help to deal with this issue and co-ordinate with PLESK support. Thank you again
 
@cookkoo,

Again, as I more or less suggested or even stated earlier: you should rethink "infrastructure".

In essence, this type of projects is benefitting from:

a) less programs, more "back to basics" structure of the Apache + Nginx stack,

b) less WP plugins (most of them are double and some of them are not even needed at all),

c) full usage of caching: a simple Redis server (not memcached, that is rubbish, certainly for caching of large database requests)

d) full usage of "twin power": two servers (i.e. one for applications, another for static content like images AND both of them for clustering or fail-over purposes)

and so on.

To be honest, you can easily make your site/project work (fast and efficient) by setting up a set of small servers (even VPS will do) and:

1) run the same application on each of them (identical copies),

2) create a Redis cluster, for

- session data,
- caching of images (i.e. static content)
- caching of database requests,
- caching of html pages (as rendered by php)

and so on,

3) split the database over the multiple (small) servers (has a lot of possibilities for clustering and fail-over)

4) run a Nginx proxy in front of it, assigning traffic to a (one) specific server in the set of (small) servers (i.e. the cluster)

and that is all.

I a pretty sure that the above mentioned approach, i.e. a redesign of "infrastructure", will resolve most of your issues.

I am also pretty sure that a "programmer" is not a good idea, since such a person will try to find solutions in code, not in infrastructure.

And code is at this moment your problem: too much code in Wordpress and various plugins AND code cannot resolve issues with the huge database.

In short, go "back to basics" and redesign infrastructure.

If you have any questions, just ask or start a personal conversation with me.

Regards....
 
Hello trialotto,

Thank you so much for your help,

After i've study on the net. I'm very intersting in your suggestion to use Radis.
1. I was already have Radis service in Tools & Settings > PHP Settings > 5.6.15 FPM application
2. I'm start up by using https://wordpress.org/plugins/redis-cache/ as i am not a programmer.
3. And i've successful to install Redis by follow this link https://serverpilot.io/community/articles/how-to-install-redis.html

But the issue is , In Radis plugin it's display - Radis Status - Not installed. Please help

Thank you
 
Hello trialotto,

Sorry in wrong information. After i click Enable Radis plugin. Now the Radis is already working the details as below:

Redis Object Cache
Redis Status Connected
Configuration
Client: PCEL Extension
Protocol: TCP
Host: 127.0.0.1
Port: 6379
Database: 0

I am checking and monitoring my site by pagespeed , gtmetrix.com as we will wait and see.
Please help for more suggestion to edit for more performance in Radis by Wordpress Radis plugin from this link https://wordpress.org/plugins/redis-cache/other_notes/

Thank you
 
@cookkoo,

It seems to be the case that you forgot to start the redis server and I must admit, the serverpilot.io "manual" is not clear about that (AND it certainly is not the best manual online).

I have to emphasize that you have to configure Redis server properly, have a look and search on redis.io and digitalocean.com (the community pages).

Furthermore, the Redis object cache plugin for WordPress is the most unfortunate choice.

In essence, there three (major) methods of adding redis cache to WordPress and the Redis object cache plugin is not the best one, given the facts that it

- only caches objects,
- actually does not cache pages (which decrease page speed performance to amazing levels)
- actually does not cache database related items (which in your case is fairly relevant, given your huge database)

I personally cannot give you a clean-cut solution, since in your case a separate and custom "wp-redis-index.php" has to be constructed, in order to allow for Redis

- serving html content directly (page caching: the html from php scripts is rendered once and cached, except for those php scripts related to logged in customers/admins),
- serving database requests directly (database caching: common database requests are stored to some degree, allowing fast serving of requests, without connecting to the database)

and even though the above sounds somewhat complicated, it really is not.

However, given your (elaborate) setup in WordPress, one has to be careful in designing an appropriate "wp-redis-index.php" file.

Note that you can test the whole concept of an "wp-redis-index.php" by looking at https://github.com/BenjaminAdams/wp-redis-cache/blob/master/index-wp-redis.php.

It is very outdated, but it should work to some degree.

Note that, if you are testing with the "Benjamin Approach", you do not have to install the php5 redis extension: it is included in Plesk 12.5.30, when using PHP version 5.6.x.

Hope the above helps.

Finally, I will send you a personal mail, in order to tackle the (many) issue you encounter or may encounter.

Regards.....
 
Hello trialotto,

From your suggestion above,

"In essence, there three (major) methods of adding redis cache to WordPress and the Redis object cache plugin is not the best one, given the facts that it
- only caches objects,
- actually does not cache pages (which decrease page speed performance to amazing levels)
- actually does not cache database related items (which in your case is fairly relevant, given your huge database) "

I forgot to tell you in something. I've W3 Total Cache and take care only as below:

- Page Cache: Disk Enhanced
- Database Cache: Disk
- Browser Cache: Enable
- Network Performance & Sucurity power by Cloudflare: Enable
- Miscellaneous: Verify rewrite rules

And now i am Enable plugins 31 items as below:

Akismet
bbPress
BP Profile Search
BuddyPress
BuddyPress Avatar Bubble
BuddyPress Cover Photo
BuddyPress Follow
Buddypress Friend of a Friend (FOAF)
BuddyPress Message Attachment
Contact Form 7
Custom Facebook Feed
Google XML Sitemaps
Instagram Feed
K Elements
MailChimp for WordPress
Nav Menu Roles
Paid Memberships Pro
Quick Chat
Quick Flag
Redis Object Cache
rtMedia for WordPress, BuddyPress and bbPress
Skt NURCaptcha
Slider Revolution
Social Articles
Taxonomy Metadata
TinyChat Room Spy
Visitor Maps and Who's Online
W3 Total Cache
Wordfence Security
Wordpress Video Chat
WPBakery Visual Composer

And my site run VERY GREAT after you suggestion to use Radis. But i can not be relaxed as i should to prepare to import users from 2.1 million users+Database 33 GB TO 18 million users+Database 250 GB , include with PLUGINS more than 50 plugins (It is the structure of content).

Please help to suggestion.

Best Regards,
 
@cookkoo

I was aware that you used W3TC, making the choice for the Redis object cache plugin for WordPress the most unfortunate choice.

As mentioned earlier, I will mail you (probably tomorrow), so keep an eye on your inbox on this forum.

Regards....
 
Hello trialotto,

Thank you for your help again, I already explain about my past bad experience as earlier. when i host with ipage , dreamhost , google cloud and amazon cloud and lost the time more than a year and don't successful for speed up my site included with expensive to pay. (my site never have the income more than 10 years ago :)

And from your suggestion above. i will focus ONLY MY MAIN ISSUE as below:

3) split the database over the multiple (small) servers (has a lot of possibilities for clustering and fail-over)

Now, my site has 33 GB of database excluded with file server, and my target the server it's need 5.6 TB for 250 GB of database+images file on web server.

From https://www.digitalocean.com/pricing/ , $ 640/mo , 640 GB SSD . and disk it's not enough for my web requirement. Especially only on this point i can not go ahead by your suggestion.

Or https://redistogo.com/instances/new?language=en , it can not support my site requirement too.

Then why i don't follow from your suggestion ? and try to find the others solution like https://wordpress.org/plugins/redis-cache/ or something like that.
OR may i understand something wrong in Radis system ? Please help

Best Regards,
 
Hello trialotto,

This time, my site is work fine with my config above. But i wish to test your suggestion too, because i need to make sure for 18 million users (250 GB database and Total is 5.6 TB)

Now i already setting up new account at Digitalocean.com with specification as below:
- 512MB Ram
- 20GB SSD Disk
- San Francisco
- Ubuntu Redis 3.0.5 on 14.04

And my question is,
1. My infrastructure is original server at German included with Redis > Cloudflare and now we have Redis server at US (San Francisco) . I am worry in bandwidth COST. How about your idea ?
2. Please help, How to config for every server node ?

Thank you
 
Hi Plesk Team,
the issue with "NGiNX - browser caching for static resources" is still present.
Is there any ETA for this problem ?
 
@bulent,

Could you, for the sake of convenience and clarity, please start a new topic thread with your latest Nginx settings and a (thorough) description of your issues?

I will try to make an effort to guide you through the issues.

Note that you can also opt to start a personal conversation with me, if you prefer that.

Regards.....
 
@trialotto

The discussion was exactly for this topic. It will be better to continue here.
So here are two printscreens for two configs - one with apache and the other one with nginx
apache.jpg

nginx.jpg

I had the same Nginx config in Plesk 12.0 and I havent problems with expire headers
 
@trialotto

apache1.jpg apache2.jpg apache3.jpg

These above are settings with Apache whre expire headers are set correctly.
Below are settings with Nginx, where expire headers are missing.

nginx1.jpg nginx2.jpg nginx3.jpg
 
@bulent,

In a sense, it is expected behaviour when using Nginx as a webserver (i.e. FPM served by Nginx enabled).

In essence, Nginx is not used a reverse proxy, removing some of the options to adjust the headers with Nginx directives.

In short, it is not really a bug.

However, there should be a work-around for before mentioned behaviour, which work-around cannot be created in the current default Plesk configuration of Nginx.

The problem is that the current default Nginx templates are somewhat restrictive, i.e. prohibiting any work-around for this particular behaviour.

This problem has already been brought under the attention of the Plesk Team, i.e. it is work in progress.

For the time being, one has to use FPM served by Apache (with Nginx being a proxy) and let us hope that the default Nginx templates will be adjusted soon.

Hope the above helps.

Regards.....
 
any news on this issue?

It does not matter if "Serve static files directly by nginx" is checked or not, or if the file extensions are not in the list.

with:

location ~* \.(?:ico|gif|jpe?g|png)$ {
add_header testHeader test;
}

the testheader is never added to the specified files...
 
Back
Top