导读 Nginx 是最快和最强大的 Web 服务器之一,以其高性能和低资源占用率而闻名。它既可以被安装为一个独立的 Web 服务器,也可以安装成反向代理 Web 服务器。在这篇文章,我将讨论在安装了 cPanel 管理系统的 Centos 7 服务器上安装 Nginx 作为 Apache 的反向代理服务器。Nginx 作为前端服务器用反向代理为静态文件提供服务,Apache 作为后端为动态文件提供服务。这个设置将整体提高服务器的性能。

让我们过一遍在已经安装好 cPanel 11.52 的 CentOS 7 x86_64 服务器上配置 Nginx 作为反向代理的安装过程。

首先,我们需要安装 EPEL 库来启动这个进程

第一步: 安装 EPEL 库
  1. root@server1 [/usr]# yum -y install epel-release
  2. Loaded plugins: fastestmirror, tsflags, universal-hooks
  3. Loading mirror speeds from cached hostfile
  4. * EA4: 66.23.237.210
  5. * base: mirrors.linode.com
  6. * extras: mirrors.linode.com
  7. * updates: mirrors.linode.com
  8. Resolving Dependencies
  9. --> Running transaction check
  10. ---> Package epel-release.noarch 0:7-5 will be installed
  11. --> Finished Dependency Resolution
  12.  
  13. Dependencies Resolved
  14.  
  15. ========================================================================================
  16. Package Arch Version Repository Size
  17. ========================================================================================
  18. Installing:
  19. epel-release noarch 7-5 extras 14 k

第二步: 安装 nDeploy 的 CentOS RPM 库

可以安装 nDeploy 的 CentOS RPM 库来安装我们所需的 nDeploy Web 类软件和 Nginx 插件

  1. root@server1 [/usr]# yum -y install http://rpm.piserve.com/nDeploy-release-centos-1.0-1.noarch.rpm
  2. Loaded plugins: fastestmirror, tsflags, universal-hooks
  3. nDeploy-release-centos-1.0-1.noarch.rpm | 1.7 kB 00:00:00
  4. Examining /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm: nDeploy-release-centos-1.0-1.noarch
  5. Marking /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm to be installed
  6. Resolving Dependencies
  7. --> Running transaction check
  8. ---> Package nDeploy-release-centos.noarch 0:1.0-1 will be installed
  9. --> Finished Dependency Resolution
  10.  
  11. Dependencies Resolved
  12.  
  13. ========================================================================================
  14. Package Arch Version Repository Size
  15. ========================================================================================
  16. Installing:
  17. nDeploy-release-centos noarch 1.0-1 /nDeploy-release-centos-1.0-1.noarch 110
第三步:安装 nDeploy 和 Nginx nDeploy 插件
  1. root@server1 [/usr]# yum --enablerepo=ndeploy install nginx-nDeploy nDeploy
  2. Loaded plugins: fastestmirror, tsflags, universal-hooks
  3. epel/x86_64/metalink | 9.9 kB 00:00:00
  4. epel | 4.3 kB 00:00:00
  5. ndeploy | 2.9 kB 00:00:00
  6. (1/4): ndeploy/7/x86_64/primary_db | 14 kB 00:00:00
  7. (2/4): epel/x86_64/group_gz | 169 kB 00:00:00
  8. (3/4): epel/x86_64/primary_db | 3.7 MB 00:00:02
  9.  
  10. Dependencies Resolved
  11.  
  12. ========================================================================================
  13. Package Arch Version Repository Size
  14. ========================================================================================
  15. Installing:
  16. nDeploy noarch 2.0-11.el7 ndeploy 80 k
  17. nginx-nDeploy x86_64 1.8.0-34.el7 ndeploy 36 M
  18. Installing for dependencies:
  19. PyYAML x86_64 3.10-11.el7 base 153 k
  20. libevent x86_64 2.0.21-4.el7 base 214 k
  21. memcached x86_64 1.4.15-9.el7 base 84 k
  22. python-inotify noarch 0.9.4-4.el7 base 49 k
  23. python-lxml x86_64 3.2.1-4.el7 base 758 k
  24.  
  25. Transaction Summary
  26. ========================================================================================
  27. Install 2 Packages (+5 Dependent packages)

通过以上这些步骤,我们完成了在我们的服务器上 Nginx 插件的安装。现在我们可以配置 Nginx 作为反向代理和为已有的 cPanel 用户账户创建虚拟主机,为此我们可以运行如下脚本。

第四步:启动 Nginx 作为默认的前端 Web 服务器,并创建默认的配置文件
  1. root@server1 [/usr]# /opt/nDeploy/scripts/cpanel-nDeploy-setup.sh enable
  2. Modifying apache http and https port in cpanel
  3.  
  4. httpd restarted successfully.
  5. Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
  6. Created symlink from /etc/systemd/system/multi-user.target.wants/ndeploy_watcher.service to /usr/lib/systemd/system/ndeploy_watcher.service.
  7. Created symlink from /etc/systemd/system/multi-user.target.wants/ndeploy_backends.service to /usr/lib/systemd/system/ndeploy_backends.service.
  8. ConfGen:: saheetha
  9. ConfGen:: satest

你可以看到这个脚本将修改 Apache 的端口从 80 到另一个端口来让 Nginx 作为前端 Web 服务器,并为现有的 cPanel 用户创建虚拟主机配置文件。一旦完成,确认 Apache 和 Nginx 的状态。

Apache 状态:
  1. root@server1 [/var/run/httpd]# systemctl status httpd
  2. httpd.service - Apache Web Server
  3. Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  4. Active: active (running) since Mon 2016-01-18 06:34:23 UTC; 12s ago
  5. Process: 25606 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
  6. Main PID: 24760 (httpd)
  7. CGroup: /system.slice/httpd.service
  8. 24760 /usr/local/apache/bin/httpd -k start
  9.  
  10. Jan 18 06:34:23 server1.centos7-test.com systemd[1]: Starting Apache Web Server...
  11. Jan 18 06:34:23 server1.centos7-test.com apachectl[25606]: httpd (pid 24760) already running
  12. Jan 18 06:34:23 server1.centos7-test.com systemd[1]: Started Apache Web Server.
Nginx 状态:
  1. root@server1 [~]# systemctl status nginx
  2. nginx.service - nginx-nDeploy - high performance web server
  3. Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  4. Active: active (running) since Sun 2016-01-17 17:18:29 UTC; 13h ago
  5. Docs: http://nginx.org/en/docs/
  6. Main PID: 3833 (nginx)
  7. CGroup: /system.slice/nginx.service
  8. ├─ 3833 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
  9. ├─25473 nginx: worker process
  10. ├─25474 nginx: worker process
  11. └─25475 nginx: cache manager process
  12.  
  13. Jan 17 17:18:29 server1.centos7-test.com systemd[1]: Starting nginx-nDeploy - high performance web server...
  14. Jan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  15. Jan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: configuration file /etc/nginx/nginx.conf test is successful
  16. Jan 17 17:18:29 server1.centos7-test.com systemd[1]: Started nginx-nDeploy - high performance web server.

Nginx 作为前端服务器运行在 80 端口,Apache 配置被更改为监听 http 端口 9999 和 https 端口 4430。请看他们的情况:

  1. root@server1 [/usr/local/src]# netstat -plan | grep httpd
  2. tcp 0 0 0.0.0.0:4430 0.0.0.0:* LISTEN 17270/httpd
  3. tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 17270/httpd
  4. tcp6 0 0 :::4430 :::* LISTEN 17270/httpd
  5. tcp6 0 0 :::9999 :::* LISTEN 17270/httpd

  1. root@server1 [/usr/local/src]# netstat -plan | grep nginx
  2. tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 17802/nginx: master
  3. tcp 0 0 45.79.183.73:80 0.0.0.0:* LISTEN 17802/nginx: master

为已有用户创建的虚拟主机的配置文件在 “/etc/nginx/sites-enabled”。 这个文件路径包含了 Nginx 主要配置文件。

  1. root@server1 [/etc/nginx/sites-enabled]# ll | grep .conf
  2. -rw-r--r-- 1 root root 311 Jan 17 09:02 saheetha.com.conf
  3. -rw-r--r-- 1 root root 336 Jan 17 09:02 saheethastest.com.conf
一个域名的示例虚拟主机:
  1. server {
  2.  
  3. listen 45.79.183.73:80;
  4. #CPIPVSIX:80;
  5.  
  6. # ServerNames
  7. server_name saheetha.com www.saheetha.com;
  8. access_log /usr/local/apache/domlogs/saheetha.com main;
  9. access_log /usr/local/apache/domlogs/saheetha.com-bytes_log bytes_log;
  10.  
  11. include /etc/nginx/sites-enabled/saheetha.com.include;
  12.  
  13. }

我们可以启动浏览器查看网站来确定 Web 服务器的工作状态。安装后,请阅读服务器上的 web 服务信息。

  1. root@server1 [/home]# ip a | grep -i eth0
  2. 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  3. inet 45.79.183.73/24 brd 45.79.183.255 scope global dynamic eth0
  4. root@server1 [/home]# nginx -v
  5. nginx version: nginx/1.8.0

Nginx 将会为任何最新在 cPanel 中创建的账户创建虚拟主机。通过这些简单的的步骤,我们能够在一台 CentOS 7 / cPanel 的服务器上配置 Nginx 作为反向代理。

Nginx 作为反向代理的优势
  1. 便于安装和配置。
  2. 效率高、性能好。
  3. 防止 Ddos 攻击。
  4. 支持使用 .htaccess 作为 PHP 的重写规则。

我希望这篇文章对你们有用。感谢你看它。我非常高兴收到你的宝贵意见和建议,并进一步改善。

如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理的更多相关文章

  1. CentOS 7 学习(二) 配置Nginx反向代理

    CentOS 7 学习(二) 配置Nginx反向代理 Nginx可以通过php-fpm来运行PHP程序,也可以转向apache,让apache调用php程序来运行. 不过对于Nginx来说,其反向代理 ...

  2. 为docker私有registry配置nginx反向代理

    公司的Docker私有registry已经搭建好了,用官方的registry image很容易就搭建好了.现在就是要用nginx的反向代理把它放出来,以便在外网可以访问. 我的上一篇blog 讲了如何 ...

  3. 使用SSL配置Nginx反向代理的简单指南

    反向代理是一个服务器,它接收通过Web发出的请求,即http和https,然后将它们发送到后端服务器(或服务器).后端服务器可以是单个或一组应用服务器,如Tomcat,wildfly或Jenkins等 ...

  4. 配置LANMP环境(7)-- 配置nginx反向代理,与配置apache虚拟主机

    一.配置nginx反向代理 1.修改配置文件 vim /etc/nginx/nginx.conf 在35行http下添加一下内容: include /data/nginx/vhosts/*.conf; ...

  5. Centos 7.6配置nginx反向代理,直接yum安装

    一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web ...

  6. Centos 7.6配置nginx反向代理负载均衡集群

    一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web ...

  7. Centos 7配置nginx反向代理负载均衡集群

    一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76    nginx负载均衡器 192.168.2.82    web ...

  8. node项目发布+域名及其二级域名配置+nginx反向代理+pm2

    学习node的时候也写了一些demo.但是只是限于本地测试,从来没有发布.今天尝试发布项目. 需要准备的东西 node 项目:为了突出重点,说明主要问题.我只是拿express 写了很简单的demo. ...

  9. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

随机推荐

  1. mysql导出到ms sql

    导出为ms access数据库,然后在ms sql server管理器中导入就可以了,用csv.sql文件的方式都没成功

  2. Navicat 的使用(二)

    一,navicat如何写sql语句查询? 方法1:ctrl+q就会弹出一个sql输入窗口,就可以在里面写sql了.写完sql后,直接ctrl+r就执行sql了. 还有一点,写sql语句时,navica ...

  3. 利用POI 技术动态替换word模板内容

    项目中需要实现一个功能,动态替换给定模板里面的内容,生成word文档提供下载功能. 中间解决了问题有: 1.页眉的文档logo图片解决,刚开始的时候,HWPFDocument 对象无法读取图片对象(已 ...

  4. 远程连接实验室的VPN

    Windows 7 (win8类似)的用户请按以下步骤进行操作:1.点击“开始”菜单,然后点击“控制面板”,然后点击“查看网络和任务”.2.点击“设置新连接或网络”.3.点击“连接到工作区”,然后点击 ...

  5. python学习笔记-(九)模块

    基础知识 1. 定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑----实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块就是test) 包:用 ...

  6. JavaScript格式化日期

    查找格式化日期的方法大都是写日期扩展方法,也许是为了维持jquery easyUI 源码完整性, // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h ...

  7. Android学习笔记——Button

    该工程的功能是实现在activity中显示一个TextView和一个Button 以下代码是MainActivity中的代码 package com.example.button; import an ...

  8. ecshop去掉“云服务中心”或者是“模板堂知识库”

    ECSHOP开发中心(www.68ecshop.com)教程介绍一下如何去除后台云服务中心菜单: 打开admin/templates/menu.htm,把415行的 document.getEleme ...

  9. Linux基础整理-软件的安装与卸载

    redhat/centos/fedora/suse系列: 摘自网址:http://www.runoob.com/linux/linux-yum.html yum( Yellow dog Updater ...

  10. Could not load file or assembly Microsoft.Web.Infrastructure

    Error info:Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=n ...