First, it's important to turn off the Apache webserver which is configured by default by Virtualmin.
Run the following command to turn off Apache:
service httpd stop
Next, make it so that Apache isn't restarted automatically on the next boot by running the following command:
chkconfig httpd off
Those two commands will prevent Apache from running and from ever starting up automatically on boot. You can even uninstall Apache at this time if you wish, but it's not necessary.
Virtualmin supports Nginx webserver and has for a while now. In this lesson, I will show you how to set up Virtualmin to use Nginx webserver instead of Apache webserver.
For this tutorial, make sure that you have a VPS or other server with Virtualmin installed. Information on how to install Virtualmin can be found here. It is easy to do using the Virtualmin install script.
I'm using a VPS with 768 MB of RAM, but as little as 256 MB should work to. I'm also using CentOS as an operating system, but Debian and Ubuntu also work well with Virtualmin and Nginx.
So before you proceed, make sure you have a VPS with a clean install of Virtualmin. It is important to only do this on a freshly installed Virtualmin server and not to do this on a server that already has websites configured in Virtualmin. So start fresh with a clean Virtualmin install.
Once you have Virtualmin installed and running, go ahead and proceed in setting up Nginx with the instructions that follow.
Install Nginx by executing the following command:
yum install nginx
Now start the nginx webserver with the following command:
service nginx start
Now install the Virtualmin Nginx plugin:
yum install wbm-virtualmin-nginx wbm-virtualmin-nginx-ssl
This installs both the regular nginx plugin and the ssl nginx plugin. It is not necessary to install both, but both are installed in this lesson.
Now log in to Webmin using a web browser as the root user. If you're already logged in to webmin, you will need to log out and log back in again.
Verify that nginx features have been installed in Webmin by navigating to Webmin -> Servers -> Nginx Webserver. The presence of "Nginx Webserver" under the Servers section should be enough to verify that the Nginx Virtualmin plugin was installed.
Go to the "Features and Plugins" section of Virtualmin at Virtualmin -> System Settings -> Features and Plugins.
Uncheck the boxes next to the following features:
- Apache website
- SSL website
- DAV Login
- Protected web directories
- AWstats reporting
- Webalizer reporting
Then click the "Save" button.
In the event that Virtualmin reports that other features must be disabled, then disable those features too.
Go back to the "Features and Plugins" section of Virtualmin at Virtualmin -> System Settings -> Features and Plugins.
Enable the following features:
- Nginx website
- Nginx SSL website
Click the "Save" button.
You can verify that the Nginx plugin is setup by going to the main page of Virtualmin and then clicking the refresh button, which in recent versions of Virtualmin appears as only a green colored icon at the top right of the page.
Then scroll to the bottom of the page and expand the "Status" section and you should see "Nginx Webserver" listed among the services there. It should indicate that Nginx is running. Clicking the "Nginx Webserver" text will lead you to a page where you can view and modify the Nginx Webserver configuration.
Everything is set up properly and you can now create a virtual server using Virtualmin and Nginx. It's very straightforward.
- From Virtualmin, click the "Create Virtual Server" link.
- Enter the domain name you wish to use, the administration password, and any of the other optional information.
- Click the "Create Server" button.
That's it. Virtualmin will do the rest, including setting up the Nginx virtual server, along with setting up the other features such as mysql, mail, SSL, etc.
This tutorial walked you through disabling the Apache webserver that is normally configured on a basic Virtualmin install. And then you installed nginx and the nginx plugin for Virtualmin.
Virtualmin is now able to create virtual servers using Nginx just as it would with Apache.
All virtual servers that you create will be fully configured to use Nginx.