Nginx server configuration for XenForo


Active member
Hey guys,

I know the topic "XenForo running on Nginx" has been discussed before but there were little to no information on a actual running setup.

My current situation:
vBulletin 3.8, lots of (old) plugins, some custom plugins, lots of changes to individual templates, vBSEO, outdated style
10k members, 100k posts, 12k threads, 60-80 concurrent members at any given time (including bots which are the majority)

I should have pulled the plug much sooner :rolleyes:
The above is going to change over the next weeks (and probably months) and I know it will be a lot of work.
We are running this website for 14 years now (most of the time on vBulletin,) I have met a lot of nice people along the way (Hello Floris!) and this switch to XenForo will also be a great opportunity for me to learn something new.

That being said I have made a list of things I would love to use: Nginx, PHP 7, MySQL 5.7, SSL, all on Ubuntu 16.04

To get started I have chosen DigitalOcean and their datacenter in Frankfurt for two droplets.
Both running on the cheapest configuration available (for now) and Ubuntu 16.04.1 x64.
The first droplet runs Nginx (+ PHP7.0-fpm and mysql-client) and it will be XenForo and a single-page static website only.
The second droplet runs the database server (mysql-server).
XenForo is already installed on Droplet #1 and uses the database from Droplet #2.

As far as I can tell XenForo runs great on Nginx (with an almost empty database :LOL:) but I am using the default configuration of Nginx which I think can be tweaked to run even better.
The next step is to import/convert the vBulletin database and start developing the new site.

Are there any things you want to share with me? Any best practices, anything you have learned the hard way?
What to do with vBSEO, can the Nginx server configuration step in to rewrite the old urls?

I am really looking forward to your replies!
– Dominik
I personally have been running NGINX for some time. I recently moved TBGclan over. I really don't think you need 2 droplets for 80 concurrent users. However given how their storage scales it might work to your advantage. Now that they have internal networking support it's easy.

I have load tested 125 users and 1000 concurrent connections on the smallest droplet they have and out of the box an untuned server fails. Disabling performance schema in MySQL saves a ton of memory once the load picks up. That and tuning the php workers allowed the test server to perform with such a load.

A lot of people are going to recommend you do go with PHP 7. I haven't made the jump quite yet.

Don't forget to enable swap which is disabled by default on droplets.
Top Bottom