Nginx Control Panel
You’re migrating shared-to-VPS and want a GUI like cPanel? No you don’t, not after you read this! What’s more, you don’t need one either …
When I first looked at unmanaged VPS options, as a Linux newbie, one thing that concerned me was to have a control panel. So I set up Ubuntu, tacked on familiar Apache, and added one, before repeating the process with alternative combos. In the process, delving deeper into the pros and cons of server setups, amongst other things I realised I didn’t really need the control panel which, after all, wastes resources and adds a security risk.
That was an epiphany.
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
.. from blank box to cute-as server ..
with this easy-to-follow copy/paste guide.
22+ parts with video, here’s the index.
I’ve had similar awakenings before; when I first tried Firefox I quickly ditched Internet Poorer. Or Skype vs the landline, or Google Apps over an smtp mail server, which I’ll be covering in Part 18: * Google Apps for Domain-Specific Email. But I digress.
In a hurry? Read Part 17: Nginx Control Panel Workarounds for instant solutions. Best to read this first tho’.
Here’s the key question ..
Do you Want a Control Panel, or to Host Web Sites?
What I really wanted from my virtual private server, my goal, came down to:-
Serving sites and blogs on a budget, at the fastest possible speed, with the least downtime, in the most secure environment and future-proofed for easy website additions, maintenance and administration.
(and that is precisely the setup this VPS Bible steps out.)
Load-balancing the Virtual Requirement
One thing was clear. I had to have Nginx. But strapping on a control panel looked problematic. I decided that to lose the CP was a risk worth taking, and true to my goal. Especially with Linode, where many of the key tasks are performed with my Manager panel anyway (plus many advanced options that are unavailable with popular panels).
As it turned out, what with a newly-acquired tentative grasp of Linux, the VPS Manager, an FTP client to hold my hand and slowly growing confidence in using the command line interface, I decided that, after all, I didn’t want a cPanel-type GUI anyway. Indeed, what a waste of resource.
But for this tutorial series it was another matter. I’m trying to help out Linux newbies here, whose concerns are very like mine were, just a few months back.
So, folks, the long and short of all that is, I’ve got some bad news, some encouraging news and some good news. Most importantly, I’ve got a watertight solution, or rather a bunch of them because, as with all the modules in a panel, there are a lot of functions to workaround (not that you’ll use many of those, most likely.)
The Bad News
There ain’t a control panel. Sorry.
After literally several solid days of asking, begging and pleading, of frequenting all the forums and scanning all the sites, my conclusion is that there is no viable panel.
There are some claims to fame but they are either poorly maintained, else depend on Apache running consecutively, with no guarantee the server will be seamlessly upgradeable. Even then, Nginx has handicapped performance, largely negating the reason to install it, will likely require system administrator costs and will inevitably involve lengthy downtime. I could expand on that, and probably will in the comments.
Someone – please tell me I’ve missed something here. I want to be proven wrong!
The Encouraging News
There are some projects in the works and, believe-you-me, as soon as there are betas I’ll be testing them and telling you about them.
The Good News
You don’t need a control panel!
With a VPS provider like Linode or, as I understand, Slicehost, the Manager panel carries out many common tasks and, as I say, provide advanced configurations and functions unavailable with popular control panels. These include backup jobs, domain settings and server admin. We’ll look at those more in Part 17: Nginx Control Panel Workarounds.
I’m not saying there aren’t missing modules; there are. The typical CP mostly facilitates web site management, but ..
.. Given some facts, the complete copy/paste workarounds, a few keystrokes and a goal like mine – you won’t want a CP. Let’s consider that ..
You Don’t Need a Control Panel
You want a CP because:-
- of a lack of command line confidence
- it’s a reassuring visual interface
- of habituation; your shared host provided one
- it gives easy (but restricted) website/server setup & maintenance
You don’t need a CP because:-
- you have one already for server & domain administration with most VPS providers
- it wastes a lot of time, as well as server resources
- it’s an added security risk
- most of what it does we don’t use anyway
- you’ve got an SFTP client to explore and administer sites
- you can add a database client such as phpmyadmin to explore and administer databases
- whatever website/server setup & maintenance operations are not handled in the above few points, are performed more easily with a few simple CLI commands ..
- .. and that lovely guv_chap is gonna prep copy/paste cheats, just for you
So, with many CP functions catered for by your VPS Control Panel, and having your sftp client, really it comes down to confidence, and a few chunks of code which, in most cases, you’ll never need use anyway.
And having followed this copy/paste VPS Bible through each step, I’ll bet my back teeth you’re beginning to feel happier using the command line, no? And I’ll bet the front teeth that you don’t want to waste server resources.
But You Do Need This!
In Part 17: Nginx Control Panel Workarounds I look at every single module used in the most popular panel, cPanel, and consider what of those we need, don’t need and why.
Linked from there I will add, over the next few weeks and as an appendix to this series, each and every mod con workaround.
Because I’m Stubborn
When there’s an Nginx-compatible CP available that’s worth its salt and works with Webmin, ISPconfig, Virtualmin, Plesk or whatever, like I say, I’ll let you know.
But, given the same goal as me, by the time you’ve tried out my control tweaks, I vouch you won’t much care.
.. Now that’s epiphany we can believe in.
Cued Up
Other than sorting the CP mods, we’ll crack out the email, move the site seamlessly (or as close as that’s possible) and then I’m gonna go get sleep.
Index ..
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
with this easy-to-follow copy/paste guide.
“My local PC runs Windows” Show me for Linux
“My local PC runs Linux” Show me for Windows
22+ parts with video, here’s the index ..
-
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Introducing vpsBible’s how-to guide for setting up a super-charged unmanaged VPS featuring Ubuntu and Nginx.
-
VPS (Virtual Private Server) vs Shared vs Dedicated
Before getting stuck in, let’s compare the web host types in detail and weigh up the differences between managed & unmanaged VPS.
-
Set Up a VPS Linux Distribution
Opening a VPS hosting account, we’ll choose, configure & launch a Linux server ‘distribution’.
-
Set Up Command Line Interface (CLI) using PuTTY
Now we’ve got a server to play with, we’ll connect to it, using the ’ssh’ protocol for a super-secure link.
-
Create a Linux User & Set Permissions
Initially you’ve logged into your remote Linux machine as ‘root’. We’ll add you as a user now, with root or SuperUser permissions.
-
Encrypt Data with OpenSSH & Auto-Login with PuTTY
Now we can use ‘authentication keys’ to shore up our connection while simplifying login to an automated, password-free yet secure process.
-
Harden the Secure Shell (SSH) & Create a Firewall
The final security step: galvanizing the OpenSSH protocol and setting up an ‘iptables’ firewall. Now the server is rock ruddy solid.
-
Edit bashrc for User-Friendly Linux, plus System Updates
We use the terminal a whole lot so let’s cut ourselves a break and create some command shortcuts, then update the server.
-
PHP5, MySQL and Xcache (for Platforms like WordPress)
We have our foundation, let’s lay some bricks: PHP for server-side web applications, Xcache to speed things up & MySQL for databases.
-
Add a Domain Zone to Your VPS
To make your server aware of yourDomain.com you’ll need a few ‘DNS’ records. Damn this is simple I’m practically asleep!
-
Prepare Linux Server for Email with Postfix
In order to send and receive email from our web applications we’ll install some software and tweak the ‘RDNS’ record.
-
Nginx (better than Apache) Web Server
OK I woke up .. let’s install this supersonic web server, tweaking its file structure & adding default configuration files.
-
Setup FileZilla for Secure FTP (SFTP)
There’s FTP, and then there’s ‘Secure FTP’. We’ll set up FileZilla using SFTP – and those authentication keys – for secure file transfers.
-
Serve Multiple Sites & Blogs with Virtual Hosts
We want a website folder structure, some permissions, some site-specific configuration files and, hey, we’ll hook up ‘FastCGI’.
-
Adding Sub-Domains with Nginx
Need a sub-domain? Here’s how to add www.sub.domain.com with an ‘A record’ and a configuration file. (I’ll allow you to skip this bit.)
-
Integrate A CMS Like WordPress, WP MU, Drupal etc
For those of you wanting to use a specific content framework, such as a CMS, blogging or forum software, pop in here and we’ll sort that out.
-
Configure phpMyAdmin for Nginx to Maintain MySQL
Rather than have to crunch databases via the command line, we can make life easier by adding this splendid tool to manage them.
-
Google Apps for Domain-Specific Email
GA’s free Standard Edition for catchall webmail – POP-ping or IMAP-ped to your desktop client – saves precious server resources for your webs.
-
Moving Day! How to Move Your Blog or Site
Nearly there. Here’s the web site or blog migration guide, relocating to your VPS with minimal or no downtime.
-
Appendix 1a: Nginx Control Panel
You’re migrating shared-to-VPS and want a GUI like cPanel? No you don’t, not after you read this! What’s more, you don’t need one either.
-
Appendix 1b: Nginx Control Panel Workarounds
For every control panel module there’s an equivalent terminal command. They’re all linked from here so, hey, no excuses!
-
Appendix 2: Add Web Sites Nginx Cheatsheet
Once you’ve set up your first site, adding more gets easier. Especially when you can refer to this. (Let’s face it, I’m just too good to you.)
Got a Question? Want to Comment?
This site has no comments system. We've got a better system!
Please use the link at the top of the post and goto this topic's forum thread:-
- to help build community
- for a superior knowledge base
- to keep info in one place, not diluted between forum & comments.
For those posts ported from Guvnr.com (pre-Feb/2010), archive comments remain.
Handy info from these comments is in the process of being ported to the forum and attributed to the original author.
If you think this idea sucks, let me know.
Thank you.





















gordon yeong July 15th, 2009 at 11:48 am
hi there, guv!
this is a good write up especially on nginx.
The parts that explain stuff like permalinks are good!
the_guv July 15th, 2009 at 11:51 am
big cheers Mr Yeong. Appreciate that, Sir
VPS BIBLE - Nginx Maintenance Tutorial Series - VPS ADMIN - GUVNR July 16th, 2009 at 12:31 pm
[...] Part 16: Nginx Control Panel [...]
Marnen Laibow-Koser October 2nd, 2009 at 4:54 am
Um, why do you say that a control panel will slow down other sites being served from the same box? I can’t come up with a good reason why this should be the case — and I’m a Web developer.
the_guv October 6th, 2009 at 5:51 am
@Marnen .. well, it’s simply that using a CP is less resource-efficient than using the terminal. F’rinstance, carry out a syntaxed task and it’s a command, done dusted .. but to do the same thing in a typical panel, and you have to jump through a bunch of hoops to even arrive at the relevant link. I don’t think that’s as important as is the time it saves the user to do things via the terminal tho ..
Marnen Laibow-Koser October 12th, 2009 at 1:07 am
I was responding to your claim that a CP “wastes resources, slowing down sites and blogs”, which I do not believe. I was trying to get you to justify that claim, but your comment does not do so. Instead, it raises a whole set of completely different objections to a CP, irrelevant to my original question.
Further, I don’t think your new set of objections is valid either:
“F’rinstance, carry out a syntaxed task and it’s a command, done dusted”
Yeah — except that you have to remember what the command is. I use a CP on my boxes so I don’t have to remember all the Apache configuration syntax. Perhaps if I were working as a sysadmin and using these commands every day it would be a different thing, but that’s not the case currently.
” .. but to do the same thing in a typical panel, and you have to jump through a bunch of hoops to even arrive at the relevant link.”
Then you’re using a bad control panel. Are you familiar with Webmin?
“I don’t think that’s as important as is the time it saves the user to do things via the terminal tho”
Using a CP absolutely saves me time.
The command line is great for some things. It is not good for entering infrequently-used commands whose syntax must be precisely right or else it hurt the configuration of a critical system (which is what your Web server is). I’m glad I know how to use the command line, but I prefer not to have to use it for everything all the time. That’s why I don’t run on a greenscreen dumb terminal.
the_guv October 12th, 2009 at 10:48 am
hey Marnen .. tx for that. I surrender, you’ve put me right! duly edited.
but! every action on a cp/terminal is a server resource cost, diverting those from availability for your sites. (yes, that is worded differently)
i prefer webmin too. you’ll find me at their forums, pushing for an nginx module. but even with webmin there are more steps involved than with the terminal.
.. in an ideal world, we’d have a light cp for convenience, yet using the terminal for regular tasks. but we don’t have an ideal world, if you want the mega-efficiency of nginx (compared to Apache).
for those that don’t feel comfortable with the terminal, read Edit bashrc for User-Friendly Linux, plus System Updates, use reference like Maintain Unmanaged VPS (4 Newbies) .. V-P-S Admin, and just type memorable shortcuts into the terminal. cron aside, for example, if i wanna back up this db, i type “guv” to go remote, then “dbguv” to backup.
would be good to hear .. what infrequent commands? please lemme know. am considering waht’s missing in VPS Admin. i am aware there’s a few key things that aren’t in the index that should be.
Marnen Laibow-Koser October 12th, 2009 at 5:42 pm
Sure, every action on a CP has a server resource cost, but on a decent CP, the overhead will be pretty minimal — and most of the resource cost will be that associated with the command, which you’d be running in any case, whether from the CP or the command line. If your server resources are so tight that a CP really makes a significant difference, then you’ve got much worse problems.
the_guv October 14th, 2009 at 4:50 pm
hmmn ..
“guv” to go remote, then “dbguv” to backup.
.. just realised, can better that ..
create new alias in local bashrc:-
#copy guv db to local
alias guvdumpcp=”scp -P 1234 username@12.34.56.78:/remote/path/to/dbBACKUP.sql /local/path/to/store/dbBACKUP.sql”
Full details for local Linux to remote Linux ..
Backup or Upload with Secure Copy SCP (Linux/Linux)
Full details for local Windows to remote Linux ..
Backup or Upload with PuTTY PSFTP (Windows/Linux)
Then, from local, after updating bash, anytime you wanna download db, just type:-
guvdumpcp
.. or whatever alias you want.
Better still, run a script and download a bunch of db’s at the click of a desktop icon/launcher … will tutorialise that massive time-saver (esp for web devs and sysadmins) in VPS Admin, have made a note.
Sure wish programming my VCR was that simple.