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.
-
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.
-
Install PHP5 & MySQL – The One-Stop FastCGI Index Page
Add PHP5 & MySQL, but which FastCGI method is best? Here’s the benchmarking, 4 ways to install/compile, add caching modules & more.
-
Nginx (better than Apache) Web Server
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? If you do, here’s how to add subDomain.yourSite.com with an ‘A record’ and a configuration file.
-
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.
-
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.
Manage Unmanaged VPS: Ubuntu-Nginx Administration
Already set it up? We’d best maintain it then.
Toggle to the .. Ubuntu-Nginx Admin Index
Manage Unmanaged VPS: Ubuntu-Nginx Administration
Maintain your virtual private server with ..
.. cheatsheets, tutorials, tips & guides.
Head back to the .. Ubuntu-Nginx Installation Index
-
Nginx Control Panel: Here’s the Deal
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.
-
Nginx Control Panel Workarounds
For every control panel module there’s an equivalent (and faster) terminal command. Let’s compare these.
-
Upgrade to Nginx Latest Version with ZERO Downtime
Keep Nginx up-to-date – and optimized for security. This guide shows precisely how *with no missed server requests*.
-
Compile an Advanced Nginx Module Configuration
Need special web server functions? Here’s how to install or upgrade Nginx with bespoke required modules & parameters.
-
Add Web Sites Nginx Cheatsheet
Once you’ve set up your first site, adding more gets easier. Especially when you refer to this. (Let’s face it, I’m just too good to you.)
-
Adding Sub-Domains with Nginx
Rather than add somesite.tld, maybe you want some.subsite.tld? Here’s how to set your A record using a DNS manager and the vhost file for Nginx.
-
Add/Delete MySQL Database from Command Line
Need a database? Want to bin an old db? This tutorial shows you how using the terminal command line console whatnot.
-
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.
-
Backup/Export MySQL DB with CLI & mysqldump
Here’s how to backup a database from the command line using the handy mysqldump utility.
-
Import MySQL Database using Command Line
Import data to a new database with this simple mysqldump guide .. great for reinstating an old backed-up db, for instance.
-
Batch Replace/Delete Data in MySQL Database
Change repetitive db data with a single command. Rather than manually find & alter each instance, isolate the lot & update multiple content.
-
LOST a MySQL Password? How to RESET it
Lost your MySQL password? That’s a bit of a bummer .. or it would be if you didn’t have this new password setup guide, huh.
-
Backup or Upload with Secure Copy SCP (Linux to Linux)
Never mind FTP m8! Save time and download/upload your files using encrypted SCP (secure copy), the #1 Linux-Linux file transfer solution.
-
Backup or Upload with PuTTY PSFTP (Windows/Linux)
Equivalent to the above, how to transfer your files if you’re unlucky enough to be running Windows for your local PC. Not that I’m biased.
-
*USEFULLY* Park A Spare Domain with Nginx
Got a spare domain name sat around doing nothing? Put it to some use, have it point its traffic at your primary domain. Here’s the deal ..
-
Password Protect Nginx Web Files/Directories
Maybe you want a hidden website directory, say, for projects, or are developing a site and want it off-limits ’till launch day. Top tip ..
-
Redirect Web Pages with Nginx Rewrite Rule
Here’s the syntax to point a site or blog to another domain. That way, for instance, traffic from a passive site benefits an active one.
-
Nginx Error & Access Logs
Need to troubleshoot some error, or want to find out who’s trying to hack your site? Here’s a start .. those tell-tale logs.
-
Subversion for Easy CMS Updates ie WordPress/Drupal/etc
A brief introduction to install and know about the power of Subversion, the version control system to keep scripts and platforms up-to-date.
-
You Tell Me …
Something missing? Probably. Let me know what you’d like included. And if it’s listed below, shout out anyhow and I’ll try to bump it.
Nginx Admin: In the Works ..
This lot’s marked for addition already:-
- Setup or Edit DNS using Bind
- Network Tools Troubleshooting Guide
- The Comprehensive Permissions Guide
- Configuring Nginx Rewrites
- Custom Website Error Page
- Setting up Cron Jobs
- Rsync for Incremental Remote-to-Local Backup
- Cron & Rsync for Automatic Backup
- Cron & mysqldump for Auto DB Backup
- Safeguard Bandwidth with Hotlink Protection
- Block Access with Nginx’ IP Deny
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.