How to configure Nginx reverse proxy with cPanel in CentOS 7

Source: Internet
Author: User
Tags symlink cpanel nginx reverse proxy

How to configure Nginx reverse proxy with cPanel in CentOS 7
GuideNginx is one of the fastest and most powerful Web servers. It is famous for its high performance and low resource usage. It can be installed as an independent Web server or a reverse proxy Web server. In this article, I will discuss how to install Nginx as the reverse proxy server of Apache on the Centos 7 server where the cPanel management system is installed.Nginx acts as a front-end server and uses reverse proxy to provide services for static files. Apache acts as the backend server to provide services for dynamic files. This setting improves the overall server performance.

Let's go through the installation process of configuring Nginx as a reverse proxy on CentOS 7 x86_64 server with cPanel 11.52 installed.

First, install the EPEL library to start the process.

Step 1: Install the EPEL Library
root@server1 [/usr]# yum -y install epel-releaseLoaded plugins: fastestmirror, tsflags, universal-hooksLoading mirror speeds from cached hostfile* EA4:* base:* extras:* updates: mirrors.linode.comResolving Dependencies--> Running transaction check---> Package epel-release.noarch 0:7-5 will be installed--> Finished Dependency ResolutionDependencies Resolved========================================================================================    Package Arch Version Repository Size========================================================================================Installing:epel-release noarch 7-5 extras 14 k
Step 2: Install the nDeploy CentOS RPM library. you can install the nDeploy CentOS RPM library to install the nDeploy Web software and Nginx plug-in.
root@server1 [/usr]# yum -y install plugins: fastestmirror, tsflags, universal-hooksnDeploy-release-centos-1.0-1.noarch.rpm | 1.7 kB 00:00:00Examining /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm: nDeploy-release-centos-1.0-1.noarchMarking /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm to be installedResolving Dependencies--> Running transaction check---> Package nDeploy-release-centos.noarch 0:1.0-1 will be installed--> Finished Dependency ResolutionDependencies Resolved========================================================================================Package Arch Version Repository Size========================================================================================Installing:nDeploy-release-centos noarch 1.0-1 /nDeploy-release-centos-1.0-1.noarch 110
Step 3: Install nDeploy and Nginx nDeploy plug-ins
root@server1 [/usr]# yum --enablerepo=ndeploy install nginx-nDeploy nDeployLoaded plugins: fastestmirror, tsflags, universal-hooksepel/x86_64/metalink | 9.9 kB 00:00:00epel | 4.3 kB 00:00:00ndeploy | 2.9 kB 00:00:00(1/4): ndeploy/7/x86_64/primary_db | 14 kB 00:00:00(2/4): epel/x86_64/group_gz | 169 kB 00:00:00(3/4): epel/x86_64/primary_db | 3.7 MB 00:00:02Dependencies Resolved========================================================================================Package Arch Version Repository Size========================================================================================Installing:nDeploy noarch 2.0-11.el7 ndeploy 80 knginx-nDeploy x86_64 1.8.0-34.el7 ndeploy 36 MInstalling for dependencies:PyYAML x86_64 3.10-11.el7 base 153 klibevent x86_64 2.0.21-4.el7 base 214 kmemcached x86_64 1.4.15-9.el7 base 84 kpython-inotify noarch 0.9.4-4.el7 base 49 kpython-lxml x86_64 3.2.1-4.el7 base 758 kTransaction Summary========================================================================================Install 2 Packages (+5 Dependent packages)

Through the above steps, we have completed the installation of the Nginx plug-in on our server. Now we can configure Nginx as a reverse proxy and create a virtual host for an existing cPanel user account. Therefore, we can run the following script.

Step 4: Start Nginx as the default front-end Web server and create the default configuration file
root@server1 [/usr]# /opt/nDeploy/scripts/ enableModifying apache http and https port in cpanelhttpd restarted successfully.Created symlink from /etc/systemd/system/ to /usr/lib/systemd/system/nginx.service.Created symlink from /etc/systemd/system/ to /usr/lib/systemd/system/ndeploy_watcher.service.Created symlink from /etc/systemd/system/ to /usr/lib/systemd/system/ndeploy_backends.service.ConfGen:: saheethaConfGen:: satest

You can see that this script modifies the Apache port from 80 to another port to make Nginx a front-end Web server, and creates a virtual host configuration file for the existing cPanel users. Confirm the status of Apache and Nginx.

Apache status:
root@server1 [/var/run/httpd]# systemctl status httpd● httpd.service - Apache Web ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2016-01-18 06:34:23 UTC; 12s agoProcess: 25606 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)Main PID: 24760 (httpd)CGroup: /system.slice/httpd.service‣ 24760 /usr/local/apache/bin/httpd -k startJan 18 06:34:23 systemd[1]: Starting Apache Web Server...Jan 18 06:34:23 apachectl[25606]: httpd (pid 24760) already runningJan 18 06:34:23 systemd[1]: Started Apache Web Server.
Nginx status:
root@server1 [~]# systemctl status nginx● nginx.service - nginx-nDeploy - high performance web serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since Sun 2016-01-17 17:18:29 UTC; 13h agoDocs: PID: 3833 (nginx)CGroup: /system.slice/nginx.service├─ 3833 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf├─25473 nginx: worker process├─25474 nginx: worker process└─25475 nginx: cache manager processJan 17 17:18:29 systemd[1]: Starting nginx-nDeploy - high performance web server...Jan 17 17:18:29 nginx[3804]: nginx: the configuration file /etc/nginx/nginx.conf syntax is okJan 17 17:18:29 nginx[3804]: nginx: configuration file /etc/nginx/nginx.conf test is successfulJan 17 17:18:29 systemd[1]: Started nginx-nDeploy - high performance web server.

Nginx runs on port 80 as the front-end server. Apache configuration is changed to listen on http port 9999 and https port 4430. Please refer to their situation:

root@server1 [/usr/local/src]# netstat -plan | grep httpdtcp 0 0* LISTEN 17270/httpdtcp 0 0* LISTEN 17270/httpdtcp6 0 0 :::4430 :::* LISTEN 17270/httpdtcp6 0 0 :::9999 :::* LISTEN 17270/httpd

root@server1 [/usr/local/src]# netstat -plan | grep nginxtcp 0 0* LISTEN 17802/nginx: mastertcp 0 0* LISTEN 17802/nginx: master

In the"/Etc/nginx/sites-enabled ". This file path contains the main Nginx configuration file.

root@server1 [/etc/nginx/sites-enabled]# ll | grep .conf-rw-r--r-- 1 root root 311 Jan 17 09:02 1 root root 336 Jan 17 09:02
Example of a domain name VM:
server {listen;#CPIPVSIX:80;# ServerNamesserver_name;access_log /usr/local/apache/domlogs/ main;access_log /usr/local/apache/domlogs/ bytes_log;include /etc/nginx/sites-enabled/;}

We can start a browser to view the website to determine the working status of the Web server. After installation, read the web Service Information on the server.

root@server1 [/home]# ip a | grep -i eth03: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000inet brd scope global dynamic eth0root@server1 [/home]# nginx -vnginx version: nginx/1.8.0

Nginx will create a VM for any newly created account in cPanel. Through these simple steps, we can configure Nginx as a reverse proxy on a CentOS 7/cPanel server.

Advantages of Nginx as a reverse proxy
  1. Easy to install and configure.
  2. High efficiency and good performance.
  3. Prevents Ddos attacks.
  4. Supports using. htaccess as the rewrite rule for PHP.

I hope this article will be useful to you. Thank you for reading it. I am very pleased to receive your valuable comments and suggestions for further improvement.



Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.