Nginx Control Panel Workarounds
No viable panel, huh? OK, so we’ll use some super-cool workarounds. Every cPanel module is listed here, together with the copy/paste code for the Nginx-equivalent alternate function.
With no feasible control panel module available for the Nginx web server, what’s missing? What do we need for virtual private server & domain administration, and to set up and maintain sites & blogs?
Perhaps the best way to analyse this is to look at what useful mod cons are bundled into a popular panel, that we don’t have in our VPS server panel. Then we can set in place the outstanding solutions.
Then – and please excuse my flippance – we’ll lose the shiny panel icons and resource drain, but gain pure Nginx performance and faster, more usable, dynamic-served front-end web applications, while retaining the functionality we’ve needed from the typical panel.
Ideally, first you should read Part 16: Control Panels & Nginx for the background to this post. Really.
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.
Without further ado ..
Control Panel Modules – the good, the bad and the bloat
So what’s hot and what’s not? Take cPanel, the most popular panel.
Let’s break down the functionality, considering each and every module. This relates to my VPS goal ..
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.
With that in mind, here are cPanel’s modules, my opinion of their relevance and a link to my alternative chunk of code, tip or guide to each mod (bear with me, all links will be fullfilled by end June ’09):-
Essential
We need these and will implement alternative solutions if we haven’t already:-
| Module | Description | Our alternative | Status |
|---|---|---|---|
| Addon domains | add domains | VPS CP configs DNS, Nginx does the rest |
Pt 13: Multiple Sites & Blogs |
| Subdomain | add sub-domains | VPS CP configs DNS, Nginx does the rest |
Pt 13: Multiple Sites & Blogs |
| MySQL databases | db admin with phpmyadmin | CLI commands & phpmyadmin/similar | guv db client/CLI guide to do Pt 15: Setup WordPress for key CLI commands |
| Backups | backup | command line or SFTP | guv guide to detail |
| email config | Postfix/RDNS/Google Apps | Pt 10: Linux Server + Email & Postfix Pt 18: Google Apps for Email |
|
| Webmail | email online | Google Apps | Pt 18: Google Apps for Email |
Useful
We want these and will implement alternative solutions:-
| Module | Description | Our alternative | Status |
|---|---|---|---|
| Parked domains | point a domain at another | VPS CP configs this | guv tip to do |
| File manager | site/server file admin | SFTP client or CLI | Pt 12: Setup FileZilla |
| Password protect directories | private folders | few lines of code | guv tip to do |
| Redirects | redirect URI to another | simple edit to vhost files | guv tip to clarify Pt 13: Multiple Sites & Blogs |
| Disk space usage | used disk space | type “df –h” or sftp | type “man df” for options |
| Error pages | 500′s, 404′s etc | create using nano | guv tip to do |
| Error log | see server errors | type “sudo nano /usr/local/nginx/logs/error.log” | guv tip to do |
| Cron jobs | automate tasks | process setup from CLI | guv guide to do |
| Network tools | 2 random tools:- DNS lookup; Trace route |
DNS: type “dig www.domain.com”; tracert: type “tracert www.domain.com” |
guv tip to do |
| MIME types | identify file types to web browser | included already | google for more |
| Manage openPGP keys | authentication keys | PuTTY & openSSH | Pt 5: Encrypt Data – OpenSSH & PuTTY |
| HotLink protection | stop sites linking to media, pinching bandwidth | small edit to vhost file | guv tip to do |
| Index manager | hide files (like htaccess rewrite) | small edit to vhost file | guv tip to do |
| IP deny manager | block IP addresses | use config files | guv tip to do |
| Fantastico | installs platforms easily | Subversion, or type “aptitude install [pkg_name]” or “wget [ftp://path/to/pkg]“ | guv guide to do; Svn – Pt 15: Subversion for Platforms/Plugins |
| PostgreSQL Databases | db admin | CLI commands & database client | just use MySQL |
Ruddy nonsense
Just a load of bloatware dross:-
| Module | Description | Our alternative | Status |
|---|---|---|---|
| Templates | link to a site selling tpls | use Joomla/WP/Drupal, download with Subversion | google web templates |
| FTP manager | Setup FTP connections | SFTP client or command line | Pt 12: Setup FileZilla |
| E-Commerce | link to site selling software | more honest | cr@Panel |
| FrontPage extensions | if you’re reading this, you despise FrontPage | .. me too | balls |
| Web/FTP stats | web stats | Google Analytics, m8 | yaaaaaawn |
| Raw access logs | web stats | ditto GA | mega ditto |
| Raw log manager | web stats | I’m falling asleep | zzzzzzzzz |
| Subdomain stats | web stats | or Mint. Woopra’s good too | .. better than cPanel, that’s for sure |
| CGI center | 8 pointless scripts they want to sell | isn’t it sad | but the GUI looks pretty |
| Statistics software configuration | no idea. Tried it and it doesn’t work anyway | you don’t want one | nice icon tho’ |
| Enable/disable PHP 5 | disables PHP5 | disable cPanel instead | and keep PHP5 |
| PhpMyChat | dunno what it is, some e-cart I don’t want | google a cool cart instead | bored |
| Scripts library | the same useless script as above, but with a lovely shiny icon to click through to find it | do they think I’m dim? | ciaoPanel |
| cVirus | sends a bug to cyncial cPanel marketing execs | .. who all run away into StarBucks | actually this mod, sorry I made it up |
Not relevant
Not irrelevant, just not relevant:-
| Module | Description | Our alternative | Status |
|---|---|---|---|
| Apache handlers | identify file types to Apache | we don’t do Apache | nada |
| Change language | change cBanal lingo | n/a | fancy a pint? |
OK. Sorry about the sarcasm. It got me thru’ the cynicism. (You should hear me when I’m hacking Internet Poorer.)
VPS Provider Control Panel Modules
I can only speak for Linode with certainty, ‘cos I’ve not VPS-hosted elsewhere, but here is a list of additional modules they have in their server Manager, and that any quality VPS provider should have, so check. I’m being lazy and copying this from Linode’s features page:-
- Deploy multiple Linux distributions
- Create Configuration Profiles which associate disk images and device nodes
- Boot between configuration profiles
- Share disk images between configuration profiles
- Resize disk images
- Network and CPU usage graphs
- Multiple IP address support
- Managed/hosted DNS service with slave support
- Custom reverse DNS (rdns)
- Access Out of band console access using Lish
- Lish menu system to issue jobs to your Linode
- Lish access via SSH keys
- Support for booting into single user mode, init=/bin/bash
- Support for booting with a custom “root=” kernel parameter
- Support for booting with an initrd
- Bootable recovery distribution (Finnix)
- Add and remove extra resources to and from your Linode
- Shutdown Watchdog will automatically reboot your Linode in case of a crash
- Clone a Linode to another
- Move IPs from one Linode to another
- IP address fail over support for high availability setups
.. Now that’s what I call the real deal.
In addition to that lot, Linode’s launching a comprehensive backup service which I’ll cover as one option in the appropriate ‘guv guide to detail’, as mentioned above.
For more information on individual features, check out Linode’s wiki or the forum, else leave a comment here.
Why do I recommend Linode?
Because I use them. Having spent a lot of time researching the market. I’m not a reseller, not a crony and not family. I’m just a blogger.
wget Guides Galore!
Basically, you can see what we still need, from the cPanel example tables above. You can see that the vast majority of popular control panel mods are either rarely if ever used, duplicate content or thinly-veiled affiliate ads that do little more than bulk up the app and make it look like the panel is actually worth buying.
The serious stuff, tho’, and the even remotely useful stuff .. is important, sooner or later. So I’ll write up some series appendix guides for each and every one of those. They’ll all be linked from the tables above, as well as from a dropdown on the series index.
Command Line Confidence
With all these modules’ Nginx alternatives, the change or command we need to make is simple, and I will lay it out for copy/paste anyway. For real, if you’ve followed this guide up to here, you will have zero problems.
In the Pipe …
Damn, better sort the email, huh? In Part 18: Google Apps for Domain-Specific Email I’ll explain why we’re better off with this hyper-handy off-server solution, and how to set it up with POP or SMTP access to your local machine. Then it’s moving day.
Here’s the index, I’m off to write cVirus ..
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.





















VPS BIBLE - Nginx Maintenance Tutorial Series - VPS ADMIN - GUVNR July 14th, 2009 at 8:55 pm
[...] Part 17: Nginx Control Panel Workarounds [...]
braindumps July 17th, 2009 at 12:27 pm
Nice blog! Keep blogging. Thanks for sharing this article! Looking forward to the work-arounds.
the_guv July 19th, 2009 at 11:20 am
@braindumps .. on the way, thank you.
henry August 23rd, 2009 at 11:15 pm
Really really great blog you’ve got here Guvnor! Keep up the great work! You’ve made a Linux newb very happy here
Look forward to the Nginx module follow-on!
the_guv August 24th, 2009 at 1:37 am
@Henry .. mighty kind, Sir, big cheers. Much more on the way, tapping some out tonight, as it ‘appens.
WHY BOTHER? Add a Control Panel to NGINX - VPS BIBLE Pt 16 - GUVNR November 30th, 2009 at 9:04 pm
[...] a hurry? Read Part 17: Nginx Control Panel Workarounds for instant solutions. Best to read this first [...]