Who is running NGINX?

It's highly optimized already.
For XenForo, the only thing you have to change is set Innodb the default engine.
100 to 200MB run is use usually.

Yup, I use to ask eva2000 about optimizing my vB setup over the vb.com forums.
Glad it's working out for you, installing this bad boy on my test server atm and checking things out.
 
Anybody here checked out this?: http://centminmod.com/
It is all source install, you could break easy your server while upgrading specific rpm's.
Plus you are stuck in "cPanel world" where you depend on specific software versions. In short, get ready for eventual horrible server nightmares which are almost impossible to debug.
 
  • Like
Reactions: rdn
I know a lot of here using it already.
@p4guru is using it on his live forums.
Yeah I am using Centmin Mod on many CentOS 6 based servers without any issues for Xenforo forums. I know a few other folks here on this forum are also using Centmin Mod for their forums as well and not just for Xenforo but for Invision Board and vBulletin forums without any issues.
 
It is all source install, you could break easy your server while upgrading specific rpm's.
Plus you are stuck in "cPanel world" where you depend on specific software versions. In short, get ready for eventual horrible server nightmares which are almost impossible to debug.

No it ain't all source installed only, as some components are RPM installed from YUM repositories i.e. MariaDB 5.5, sendmail, ntp, etc.

Parts that need to regularly keep updated in line with latest releases are compiled from source i.e. Nginx, php-fpm and PHP opcode cache and Memcached server (libmemcache/memcached and memcache php extensions). So no, in fact it's the opposite:
  1. You are NOT dependent on specific versions for the software that actually matter. So if a new Nginx or PHP version gets released today, you could as end user upgrade to the new version via menu options 4 and 5 which take around 3-5 mins to upgrade. Instead of waiting on YUM repository maintainer to release the latest version which alot of times it does involve waiting.
  2. If a new Nginx module is needed that isn't included with Nginx default install, you can easily compile and add it in via source install if you are familar with source installs. For Centmin Mod, if you aren't sure, there's even an example of installing your own Nginx module at http://centminmod.com/nginx_webdav.html. Alot of YUM repositories don't even have some of the Nginx modules that Centmin Mod includes by default. Of course Debian Nginx versions some do but not many for CentOS at least.
  3. Another example of additional Nginx modules is with Nginx PageSpeed module http://centminmod.com/nginx_ngx_pagespeed.html. Yeah Nginx PageSpeed isn't needed if you have an optimised site and server in some cases.
  4. To prevent conflicts yum excludes and yum priorities are implemented so Nginx, php and MySQL RPMs can be excluded from YUM updates etc. It's also why Centmin Mod is only recommended for fresh CentOS virgin installs and not for existing CentOS live in production servers with an existing LAMP/LNMP stack.
But yes I agree with you Floren, sometimes RPMs are better for stability etc i.e for Centmin Mod, MariaDB 5.5 is installed via official MariaDB YUM repository.

Either way, Centmin Mod way or 100% RPM non-Centmin Mod way are both free to try and you can get a test DigitalOcean.com VPS server for as low as $0.007/hour or $5/month. So best end users try both and decide for themselves which to use.

For myself, I've deployed Centmin Mod on over 80+ servers of mine without any major issues. And if you do have problems, all routines are fully logged each time menu option is ran so you can get to the bottom for any issues (see FAQ 7).
 
Last edited:
Nice post, thank you for sharing your thoughts. Please see below my remarks, they are meant in a constructive way as I'm not here to put down the work of others, but rather share my Linux experience where I managed to see many disasters caused by source installations.
Parts that need to regularly keep updated in line with latest releases are compiled from source i.e. Nginx, php-fpm and PHP opcode cache and Memcached server (libmemcache/memcached and memcache php extensions).
That is what I was referring to. IMO, that is very bad... how are you going to trace all those scattered files, if you decide to perform chnages to your server? I do not know if Centminmod offers an uninstall but surely it cannot beat "yum history" command.
You are NOT dependent on specific versions for the software that actually matter. So if a new Nginx or PHP version gets released today, you could as end user upgrade to the new version via menu options 4 and 5 which take around 3-5 mins to upgrade. Instead of waiting on YUM repository maintainer to release the latest version which alot of times it does involve waiting.
Actually, you are dependent on Centminmod software.
If a new Nginx module is needed that isn't included with Nginx default install, you can easily compile and add it in via source install if you are familar with source installs.
IMO, most of external modules should be kept to a minimal. Axivo RPM's only use DAV EXT and AUTH PAM modules.
To prevent conflicts yum excludes and yum priorities are implemented so Nginx, php and MySQL RPMs can be excluded from YUM updates etc. It's also why Centmin Mod is only recommended for fresh CentOS virgin installs and not for existing CentOS live in production servers with an existing LAMP/LNMP stack.
That right there should be a show stopper and a warning for people who like to venture into unknown.
 
Floren, yes it is all just our own personal opinions and experiences that shape our choices.

1.
  • Guess it depends exactly on what you mean changes to your server ?
  • Scattered files, rarely in my many years of experience of using linux has scattered files even rated at the top of any of my concerns or problems, when source compiles are done correctly. Make clean and make distclean usually will clean up what matters during changes such as upgrading a previously source compiled software i.e. PHP at least. Nginx source compile leaves some created directories behind and well I prefer that upgrade doesn't nuke my Nginx server's config directory structure :)

2.
  • Centmin Mod is just a wrapper script, i can just as well compile Nginx and PHP-FPM from source bypassing Centmin Mod taking the recorded configure options for each from phpinfo configure line or Nginx -V or from config.status history. Anything that can be done in Centmin Mod can be done without it.
  • As to dependence, it's no different to the dependence one would have on YUM repositories. So it ultimately comes down to personal preferences :)
  • How many times I'd tried YUM repositories only to find they use outdated versions and need to wait for YUM repository maintainers to update it or
  • Where software require a higher version in terms of dependencies i.e. Apache 2.4.6 and apr* version dependency etc or compiling Facebook HHVM HipHop. or
  • Where dependent package doesn't even exist in the main CentOS repository. That's where yum priorities and yum excludes in conjunction with addition repositories (epel, rpmforge, centalt) come in for other YUM repositories to fill in the gap or source compile. Nothing wrong with additional YUM repositories if yum priorities is properly configured. Without additional YUM repositories, most folks won't even be able to take advantage of MariaDB via MariaDB's official YUM repository or use more up to date Varnish 3.x with Varnish's own provided repository :)
3.
  • Also as to Nginx external modules keeping them to minimal is also a personal choice.
  • Just look at the number of third party modules / components in the OpenResty bundled Nginx sponsored by Taobao.com and maintained by Cloudflare according to their web site http://openresty.org
  • Probably why Debian offers Nginx in several packages from lite with main modules to more feature packaged version with more Nginx third party modules. To give folks choices.
  • It's very easy to customize what modules Nginx source compiles, you can add or remove from them at will without any dependence on Centmin Mod author. Of course this is provided you know what you're doing. But you're not locked in like most Nginx RPM installs. Then again you can do what you did and build your own custom Nginx RPMs which also require you to know what you're doing.
Folks should let their own hands on personal experience dictate their choices, but also be opened to others' experiences as well. Basically, try both methods and make your choice :D
 
Last edited:
It's highly optimized already.
For XenForo, the only thing you have to change is set Innodb the default engine.
100 to 200MB run is use usually.

why do you need to change default engine to InnoDB? will this break vbulletin running on same server?
 
im currently testing centminmod for a new server build that will ultimately host a new xenforo community, a fairly busy vB community (60k users, 16.5+M posts), and a few other minor odds and ends.

performance with centminmod isnt too bad. ive been able to hit :
Requests per second: 87663.63 [#/sec] (mean) with static content and Requests per second: 5686.19 [#/sec] for php content.

The only caching involved is APC/memcache as installed by centminmod. No varnish, no cloudflare, etc. The server is a decent box, 4x64g SSD in Raid5, 24gig DDR3 memory, Dual X5675 Hexcore CPUs @ 3.06GHz - 24 cores with HT enabled. I was hoping to get over 100k req/sec with static but couldnt break thru 90k. Should I expect a heck of a lot more performance out of this box? A default install of Xenforo nets around 600 req/sec at the homepage of the install. Was expecting much higher with APC in the mix.

That brings me to my centmindmod concern, why is a newer version of php bundled, why is suhosin still being used(it hasnt been updated in FOREVER), and why is the new Opcode cache contributed by zend not being used versus the deprecated APC? Centminmod has newer version of MariaDB but still a much older ver of PHP.
 
That brings me to my centmindmod concern, why is a newer version of php bundled, why is suhosin still being used(it hasnt been updated in FOREVER), and why is the new Opcode cache contributed by zend not being used versus the deprecated APC? Centminmod has newer version of MariaDB but still a much older ver of PHP.
The choice was mostly due to what "works". Nothing stops you from updating to newer version of PHP, nginx, etc
In fact, I use nginx 1.5.3 and PHP 5.5.2 right now with centminmod
 
im currently testing centminmod for a new server build that will ultimately host a new xenforo community, a fairly busy vB community (60k users, 16.5+M posts), and a few other minor odds and ends.

performance with centminmod isnt too bad. ive been able to hit :
Requests per second: 87663.63 [#/sec] (mean) with static content and Requests per second: 5686.19 [#/sec] for php content.

The only caching involved is APC/memcache as installed by centminmod. No varnish, no cloudflare, etc. The server is a decent box, 4x64g SSD in Raid5, 24gig DDR3 memory, Dual X5675 Hexcore CPUs @ 3.06GHz - 24 cores with HT enabled. I was hoping to get over 100k req/sec with static but couldnt break thru 90k. Should I expect a heck of a lot more performance out of this box? A default install of Xenforo nets around 600 req/sec at the homepage of the install. Was expecting much higher with APC in the mix.

That brings me to my centmindmod concern, why is a newer version of php bundled, why is suhosin still being used(it hasnt been updated in FOREVER), and why is the new Opcode cache contributed by zend not being used versus the deprecated APC? Centminmod has newer version of MariaDB but still a much older ver of PHP.
Suhosin isn't installed by default at all, so it shouldn't have been compiled ?? Or you mean the menu option for Suhosin to be installable by choice if user wants to ?

Reason for PHP 5.3 is actually listed on the web site http://centminmod.com/phpfpm.html. There's no guarantee that XF add ons are all fully PHP 5.4/5.5 supported. Not everyone just runs XF standalone, for alot of folks, I am sure other PHP scripts are used on same server. So PHP compatibility is left to each user to decide and evaluate against.

Like Andy, I have Centmin Mod with PHP 5.4.18 right now and APC Cache. From my own experience, I get better performance with APC 3.1.13 + igbinary default in Centmin Mod vs PHP 5.4/5.5 Zend OPCache. If you run centmin.sh and menu option 5 to upgrade PHP and enter PHP 5.5.2, you will be asked if you want to use Zend OPCache or stick with APC 3.1.13 + igbinary. So you can test either method ;) Although, I have reports of folks having instability with Zend OPCache with some PHP scripts.

As to PHP performance, what benchmarking tools you use ? siege benchmark (which is built in and installed in Centmin Mod by default i.e. http://centminmod.com/benchmarks.html) or apache bench ? For your requests per second format looks like apache bench used ? If you are benching against PHP with MySQL backend, then you are partially testing MySQL backend performance as well. So you need to tune for PHP and MySQL as well. What was the exact apache bench command and testing parameters used ?

As to performance, you have 24 cpu threads. So you might want to tune nginx.conf and php-fpm conf via respective short cut commands, nginxconf and fpmconf. Default Centmin Mod only uses 1 worker_processes as the original intention was for low memory servers <512MB VPS usage which usually only come with 1-2 cpu threads. And default php-fpm conf uses ondemand and low number of pm.max.children and pm.max_requests value. You can through trial and error find more optimal values suited to your server hardware i.e balancing number of worker_processes and pm.children amongst your 24 cpu threads.

Also requests per second value is also a function of the test parameters used for apache bench or siege benchmark.
 
Last edited:
Suhosin isn't installed by default at all, so it shouldn't have been compiled ?
IMO, Suhoshin was designed for people who don't know how to code PHP. This is not the case for XenForo.
You are killing the server performance, by installing it. I never used Suhoshin... and never will. :)
 
I've been running an Nginx reverse proxy for a long time with an apache back end. Tried converting to fastcgi a couple of times, but I think I ran into problems with big attachment uploads failing. Honestly, it's been so long since I tried, I can't remember now what the problem was.

But my biggest and most persistent problem is that I've never been able to use full friendly URLs with nginx. It's clearly a problem with *this* specific box (since my VMs work just fine, and apache works just fine if running solo), but if I turn full friendly URLs on, /forum/account/avatar always 404s at nginx. I've gone through every conf file, rewritten them from scratch, searched for any references to "account" or "avatar" that might have been resulting in a bad rewrite, etc.... nothing.

But Nginx in front of Apache is hugely faster than Apache solo.
 
But my biggest and most persistent problem is that I've never been able to use full friendly URLs with nginx. It's clearly a problem with *this* specific box (since my VMs work just fine, and apache works just fine if running solo), but if I turn full friendly URLs on, /forum/account/avatar always 404s at nginx. I've gone through every conf file, rewritten them from scratch, searched for any references to "account" or "avatar" that might have been resulting in a bad rewrite, etc.... nothing.

But Nginx in front of Apache is hugely faster than Apache solo.
Works fine for me.
 
I'm running the latest version of Apache (via Cpanel at least), with NginxCP - http://nginxcp.com/
I also run Xcache, but I Think I have that turned off on my xenforo installation, it seemed to cause caching issues.
 
Top Bottom