This mod is suited for medium and big boards. It reduces server load, caused by thumnails and big attachments.
what's the problem with?
In original vB all thumbnails a downloaded via php. So, if you page contains 10-20 attached images, then each page php request will be followed by 10-20 thumbnails php requests. That's very bad.
When attachments body transfered via php, that's much more waisteful, than direct transfer of static file. Especially for big files.
what this mod does:
All thumbnails will have DIRECT links (served as static files). Much lower reply latency and server load.
If you have nginx webserver, you php-fcgi will not participate in file transfer any more. It will reply with X-Accel-Redirect header. Then nginx will proceed attachment as static file.
No more problems with multiple downloads of 10-mb files.
No needs to restrict attachments and full-size images for guests and search bots.
That works for forum posts, blogs, albums. Everywhere!
how to install:
Make sure, this files are stored on disk, NOT in database:
post attachments & thumbnails
blog attachments & thumbnails
album images & thumbnails
Make sure, that thumbnails are in web-accessible area. If not - reconfigure your web-server first. If you own big board - then you know how to do that .
Check manually, that you can download any .thumb file via browser.
Import this product, and set options for you configuration.
Be happy to reduce server count in your cluster
PS. It's tested and works fine at my production site for 1 week. But I'll be happy to know server load statistics from big boards owners.
Q1. I don't have nginx. Will this mod work for me?
Yes, partially. Enable direct thumbnail links, but disable nginx acceleration. You'll still have serious benefit, if your forum is plenty of attachments.
Q2. What about lignttpd, apache and so on? They have X-Sendfile, alternative to nginx X-Accel-Redirect.
I know, but:
I don't have such configurations to test, and I don't have time to implement that. You can do it yourself or hire someone (NOT ME) for this work.
X-Sendfile don't support partial content download . Nginx's X-Accel-Redirect it the best you can use.
Q3. Is it safe to give direct access for thumbnails?
Why not? You can give direct access for thumbnails, but disable direct access to original files. Just configure your server properly. See examples below.
Q4. Thumbnails looks like files with strange extention and mime-type. Will those be ok in browser?
Yes. HTML-page address those files via imagetag. So, browser show those properly, even with wrong mime and strange extention.
Q5. Why don't you fix that for sure?
Because that requires vB sources modification, and i hate such things. And if everyting works fine, who cares about mimes ?
Q6. My forum has 20 users online, and I don't see difference at my 32-core server with 128Gb ram and 8 SSD raid array.
You a happy man, really.
Q7. Does it work with VBSEO ?
If attachment rewrite is disabled - yes, it works. And check, that attachments path is separated in vbseo rewrite rules in webserver config. I use vbseo in this mode with no problems. Sorry, no plans now to make better integration with vbseo. But code is reuseable, or you can send your patches
Server configuration examples
let's say, whe have the following folders structure:
/uploads
/uploads/blogs/* <- blog attachments & thumbnails
/uploads/posts/* <- forum attachments & thumbnails
/uploads/albums/* <- album images
/uploads/al_thumbs/* <- album previews
So, we have to setup direct access for thumbtails, but protect original files.
Nginx
# globally disable external access, but enable for X-Accel-Redirect
location /uploads {
internal;
}
# enable direct access to blogs & posts thumbnails, but nothing else!
location ~* /uploads/(.*)\.thumb$ {
}
# enable direct access to album thumbnails
location /uploads/al_thumbs/ {
}
Everything is relative in this life . That depends on attachments count and CPU/IO load. If you have no attachments at all, you'll have nothing with this mod.
But nobody prohibit you to try and compare if server load changes . At least, direct linked thumbnails will be loaded faster for your users.
Quote:
Originally Posted by JamesAB
I'm not using this mod, but I recently looked into serving static thumbnails on vBulletin.
In apache httpd.conf, I know you can use:
Code:
AddType image/jpeg .thumb
Yes. Exactly. But in fact that's not required. My rule is simple: the less customisations - the less possible mistakes in the future . You can always add it later, if something goes wrong.
what is this nginx ?i have centos OS and apache .. will this increase performance on that?
Yes. Nginx/lighttpd/lightsphere/zeus + php-fcgi will give you serious benefits over apache + mod_php on burst loads.
In fact, that should be done before any futher vb optimizations. Maybe I'm a bit categoric, but in my opinion apache+mod_php system is absolutely inpredictable at big loads.
Server optimisation should be done prior to any scripts optimization. That's essential.