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: 66.23.237.210* base: mirrors.linode.com* extras: mirrors.linode.com* 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 http://rpm.piserve.com/nDeploy-release-centos-1.0-1.noarch.rpmLoaded 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/cpanel-nDeploy-setup.sh enableModifying apache http and https port in cpanelhttpd restarted successfully.Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.Created symlink from /etc/systemd/system/multi-user.target.wants/ndeploy_watcher.service to /usr/lib/systemd/system/ndeploy_watcher.service.Created symlink from /etc/systemd/system/multi-user.target.wants/ndeploy_backends.service 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 server1.centos7-test.com systemd[1]: Starting Apache Web Server...Jan 18 06:34:23 server1.centos7-test.com apachectl[25606]: httpd (pid 24760) already runningJan 18 06:34:23 server1.centos7-test.com 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: http://nginx.org/en/docs/Main 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 server1.centos7-test.com systemd[1]: Starting nginx-nDeploy - high performance web server...Jan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: the configuration file /etc/nginx/nginx.conf syntax is okJan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: configuration file /etc/nginx/nginx.conf test is successfulJan 17 17:18:29 server1.centos7-test.com 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 0.0.0.0:4430 0.0.0.0:* LISTEN 17270/httpdtcp 0 0 0.0.0.0:9999 0.0.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 127.0.0.1:80 0.0.0.0:* LISTEN 17802/nginx: mastertcp 0 0 45.79.183.73:80 0.0.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 saheetha.com.conf-rw-r--r-- 1 root root 336 Jan 17 09:02 saheethastest.com.conf
Example of a domain name VM:
server {listen 45.79.183.73:80;#CPIPVSIX:80;# ServerNamesserver_name saheetha.com www.saheetha.com;access_log /usr/local/apache/domlogs/saheetha.com main;access_log /usr/local/apache/domlogs/saheetha.com-bytes_log bytes_log;include /etc/nginx/sites-enabled/saheetha.com.include;}
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 45.79.183.73/24 brd 45.79.183.255 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
- Easy to install and configure.
- High efficiency and good performance.
- Prevents Ddos attacks.
- 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.
From: https://linux.cn/article-7751-1.html
Address: http://www.linuxprobe.com/centos-cpanel-nginx.html