如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理

如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理,第1张

第一步: 安装 EPEL 库

root@server1 [/usr]# yum -y install epel-release

Loaded plugins: fastestmirror, tsflags, universal-hooks

Loading mirror speeds from cached hostfile

* EA4: 66.23.237.210

* base: mirrors.linode.com

* extras: mirrors.linode.com

* updates: mirrors.linode.com

Resolving Dependencies

-->Running transaction check

--->Package epel-release.noarch 0:7-5 will be installed

-->Finished Dependency Resolution

Dependencies Resolved

========================================================================================

Package Arch Version Repository Size

========================================================================================

Installing:

epel-release noarch 7-5 extras 14 k

第二步: 安装 nDeploy 的 CentOS RPM 库

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

root@server1 [/usr]# yum -y install http://rpm.piserve.com/nDeploy-release-centos-1.0-1.noarch.rpm

Loaded plugins: fastestmirror, tsflags, universal-hooks

nDeploy-release-centos-1.0-1.noarch.rpm | 1.7 kB 00:00:00

Examining /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm: nDeploy-release-centos-1.0-1.noarch

Marking /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm to be installed

Resolving Dependencies

-->Running transaction check

--->Package nDeploy-release-centos.noarch 0:1.0-1 will be installed

-->Finished Dependency Resolution

Dependencies Resolved

========================================================================================

Package Arch Version Repository Size

========================================================================================

Installing:

nDeploy-release-centos noarch 1.0-1 /nDeploy-release-centos-1.0-1.noarch 110

第三步:安装 nDeploy 和 Nginx nDeploy 插件

root@server1 [/usr]# yum --enablerepo=ndeploy install nginx-nDeploy nDeploy

Loaded plugins: fastestmirror, tsflags, universal-hooks

epel/x86_64/metalink | 9.9 kB 00:00:00

epel | 4.3 kB 00:00:00

ndeploy | 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:02

Dependencies Resolved

========================================================================================

Package Arch Version Repository Size

========================================================================================

Installing:

nDeploy noarch 2.0-11.el7 ndeploy 80 k

nginx-nDeploy x86_64 1.8.0-34.el7 ndeploy 36 M

Installing for dependencies:

PyYAML x86_64 3.10-11.el7 base 153 k

libevent x86_64 2.0.21-4.el7 base 214 k

memcached x86_64 1.4.15-9.el7 base 84 k

python-inotify noarch 0.9.4-4.el7 base 49 k

python-lxml x86_64 3.2.1-4.el7 base 758 k

Transaction Summary

========================================================================================

Install 2 Packages (+5 Dependent packages)

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

第四步:启动 Nginx 作为默认的前端 Web 服务器,并创建默认的配置文件

root@server1 [/usr]# /opt/nDeploy/scripts/cpanel-nDeploy-setup.sh enable

Modifying apache http and https port in cpanel

httpd 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:: saheetha

ConfGen:: satest

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

Apache 状态:

root@server1 [/var/run/httpd]# systemctl status httpd

● httpd.service - Apache Web Server

Loaded: loaded (/usr/lib/systemd/system/httpd.serviceenabledvendor preset: disabled)

Active: active (running) since Mon 2016-01-18 06:34:23 UTC12s ago

Process: 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 start

Jan 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 running

Jan 18 06:34:23 server1.centos7-test.com systemd[1]: Started Apache Web Server.

Nginx 状态:

root@server1 [~]# systemctl status nginx

● nginx.service - nginx-nDeploy - high performance web server

Loaded: loaded (/usr/lib/systemd/system/nginx.serviceenabledvendor preset: disabled)

Active: active (running) since Sun 2016-01-17 17:18:29 UTC13h ago

Docs: 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 process

Jan 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 ok

Jan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: configuration file /etc/nginx/nginx.conf test is successful

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。请看他们的情况:

root@server1 [/usr/local/src]# netstat -plan | grep httpd

tcp 0 0 0.0.0.0:4430 0.0.0.0:* LISTEN 17270/httpd

tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 17270/httpd

tcp6 0 0 :::4430 :::* LISTEN 17270/httpd

tcp6 0 0 :::9999 :::* LISTEN 17270/httpd

root@server1 [/usr/local/src]# netstat -plan | grep nginx

tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 17802/nginx: master

tcp 0 0 45.79.183.73:80 0.0.0.0:* LISTEN 17802/nginx: master

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

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

一个域名的示例虚拟主机:

server {

listen 45.79.183.73:80

#CPIPVSIX:80

# ServerNames

server_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

}

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

root@server1 [/home]# ip a | grep -i eth0

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc pfifo_fast state UP qlen 1000

inet 45.79.183.73/24 brd 45.79.183.255 scope global dynamic eth0

root@server1 [/home]# nginx -v

nginx version: nginx/1.8.0

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

Nginx 作为反向代理的优势

便于安装和配置。

效率高、性能好。

防止 Ddos 攻击。

支持使用 .htaccess 作为 PHP 的重写规则。

1、需求

我们拿这个虚拟主机来做什么?是做博客呢还是做电子商务的网站,还是垃圾站等等。如果做博客,我们需要的空间不需要很大,99%的在线率也就够了,如果做电子商务,我们可能需要更好的稳定性,对于一些网站可能有很多的图片,可能需要更大的存储空间。当然我们希望主机越稳定、空间越大越好,但是所需要的钱也就越多。此外,还要考虑到程序,如果是PHP或者Perl的程序,那么推荐使用Linux主机,如果使用的是ASP.NET,那么就得选择Windows。在选购主机之前要考虑清楚我们自己的需求。

2、价格

价格往往是我们最先考虑的因素,但价格不是最后决定的因素。一分钱一分货,虽然有的主机很便宜,但是它可能不适合我们。所以,一味地从价格因素来考虑主机是一个不是很明智的选择。

3、主机商所擅长的领域

绝大部分的主机上有他们自己的擅长的领域,比如Bluehost就擅长shared hosting,而linode就擅长VPS,Media Temple算是全一点,在shared hosting,VPS方面都做得挺不错的。

4、主机的限制

我们在第一点提到的程序的限制,如果你使用的是ASP.NET的程序,那么你就得选择Windows的主机。

除外,很多主机提供商说是没有任何的限制,但是会包含一些隐含的限制,我们在选购的时候要了解清楚这些隐含的限制,Bluehost就有这些限制。有些空间商会有一些硬件上的限制,比如说最多分配给你多少的CPU或者RAM资源,使用超过了可能要另外付钱。

5、技术支持

对于我们从国内购买国外主机的用户来说,这点特别重要。由于时差的关系,我们的问题经常要到第二天才可以得到答复。在选购主机的时候,我们要了解该提供商有么有提供即时在线咨询,用户对他们的技术支持是否满意等等。还有,现在很多的国外主机提供商开始支持中文,你是否有这个需要呢。

7、服务器的硬件配置、机房的配置

服务器的硬件和机房的硬件设备涉及到了服务的稳定性和速度。一些主机提供商采用了配置很高的服务器,而一些却有可能采用PC级别的。比如Dreamhost的服务器就比较差一点,而 Bluehost则会好点。此外,机房也是一个很重要的因素,机房的网络设备的好坏也是决定服务好坏的一个重要因素。

8、用户口碑

比如在国内比较出名的几家国外主机提供商,Bluehost、MediaTemple和Hostgator等,我都是从其他博客上得知的,所以,用户的口碑也是我们选购主机的一个重要因素。当然,也有蛮多人说这些主机商不是很满意,但是,我们要理性地过滤那些情绪上的因素。

9、控制面板

这点在选购主机商的时候不是很重要,但是,可能会影响到情绪。比如你以前常用的是CPanel,转到Dreamhost之后,看到他的后台面板很不熟悉,可能会影响情绪。当然,好的主机控制面板很容易上手,使我们维护变得简单很多。Media Temple的后台也是自己开发的,使用起来很容易上手。

10、可扩展性

当网站或者博客的发展,现有的主机可能不能满足需求了,能否进行无缝升级。一些主机有提供shared hosting和VPS,能否从shared hosting升级到VPS呢?Dreamhost这点不错,能从shared hosting升级到VPS,但是 Media Temple 就差点,需要手动搬家升级,比较麻烦。

选购注意事项

一、惕免费域名的花招有送一个免费域名是好事,但是注意免费域名的背后。首先,这个域名的所有者是谁?第二,第二年怎么办?续费的价格怎么样?二、把域名注册商和空间商分开推荐不要在空间提供商那里注册域名。如果了解以后该域名转出没有问题,所有者是我们的话,那也没什么大不了的。比如我域名在Godaddy注册,空间可以去购买 Bluehost或者 MediaTemple的。三、阅读带宽和空间大小的条款说明现在大部分的国外空间都是无限量空间,到低多少才是无限量?其实,无限量空间是不存在的,在使用之前一定要阅读以下条款。比如Bluehost说是无限量,其实有一定的限制,这里是关于Bluehost的限制。部分是有限制的,如果博客或者网站访问量突然增大,要了解那超出部分的带宽怎么计算?有人使用MediaTemple的GS,由于一些原因,超了很多GPU,因此花了一大笔钱。四、阅读空间提供商的博客博客营销在国外做得不错,所以几乎所有的虚拟主机提供商都有自己的博客。看看他们对技术的专注程度。我觉得这点Bluehost做得很好!他们的老大Matt会在自己的博客上介绍最近的一些工作情况,最近做了哪些优化等等。五、使用优惠码国外空间绝大部分都有返券或者优惠码,使用优惠码可以省不少,像我使用的MediaTemple GS,如果使用优惠码之后可以终身打八折,原价是20美金一个月,现在只要16美金一个月。六、最好使用Paypal,不要使用信用卡如果可以使用Paypal的话,就是用Paypal,不要使用信用卡,除非该虚拟主机提供商的声誉不错。对一些自己不是很熟悉的虚拟主机提供商,不要贸然使用信用卡。七、一年一年购买很多主机提供商都提供了多年购买优惠措施,我并不反对大家多年购买,但是推荐大家一年一年购买。虚拟主机有很多不确定的因素,比如IP被墙等等,我们一年一年或者一个月一个月购买的话,出问题了,马上转移。我现在就是一个月一个月使用MediaTemple的GS。我们不用担心,他们都会自动从我们的Paypal或者账户里面扣钱的


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/217644.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存