Nginx can be used to serve static pages on a server running cPanel with Apache. Apache will handle the dynamic content for PHP and cgi scripts, while nginx will handle the static pages such as .htm and .html
1. Make a copy of your httpd.conf file
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
2. Go to WHM > Tweak Settings and change the Apache port:
The port on which Apache listens for HTTP connections. Specifying a specific IP will prevent Apache from listening on all other IPs. (default: 0.0.0.0:80) To: 0.0.0.0:8081
Do not change the https port listed.
Click the “Save” button.
3. Grab a copy of the nginx installation script:
mkdir /root/cpacct && cd /root/cpacct
tar xf nginxadmin.tar
If you receive this error when trying to install:
access key doesn't exist create it in WHM
Then go to WHM > Cluster/Remote Access > Setup Remote Access Key and click on the “Generate New Key” button.
At that point, then re-run “./nginxinstaller install” command.
4. Rebuild Apache and then restart nginx and Apache
Now, your static pages should be serving from nginx, while PHP and cgi ones should be serving from Apache. Both httpd and nginx processes will be running on the machine.
Please note that sites will still show up on port 80 in a browser (so you don’t have to worry that pages in a browser will require a different port). nginx works as a proxy on port 80, so it handles the incoming requests on that port to see if they are dynamic or static, then it hands off the dynamic pages to Apache (running on port 8081). Your site visitors will have no idea that Apache is running on a different port due to the proxying nginx performs on the machine for it.
If you decide you want to uninstall nginx at any point, simply run this command:
You would also need to go to WHM > Tweak Settings and change the Apache port back to 80:
The port on which Apache listens for HTTP connections. Specifying a specific IP will prevent Apache from listening on all other IPs. (default: 0.0.0.0:80) To: 0.0.0.0:80
Then “Save” that area. Finally, rebuild and restart Apache: