centos6.8 简单部署nginx+php_Nginx网站服务及LNMP平台部署

会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。

简介

        在企业信息化应用环境中,安全性不仅取决于硬件防护设备、系统加固、访问控制等基本措施,而且如何减少故障中断时间、提高存储及备份的完善性也是确保企业信息安全的重要措施。本章将进一步学习服务器缓存加速、高可用/负载均衡群集、服务器集中监控等高级安全应用。后续课程将采用最小化安装的CentOS7.3系统,安装系统时勾选“开发工具”选项,以此为基础搭建实验环境。

        随着计算机与Internet技术的蓬勃发展,形形色色的Web站点成为直接面向用户的中坚力量。在各种网站服务器软件中,除了Apache HTTP Server外,还有一款轻量级的HTTP服务器软件—Nginx.

由俄罗斯的lgor Sysoev开发,其稳定,高效的特性逐渐被越来越多的用户认可。

本章重点

  • Nginx的基本配置

  • 构建LMP网站服务器平台

                                理论讲解

一,Nginx服务基础

        Nginx(发音为[enginex])专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求)。正因为如此,大量提供社交网络,新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务。

        本节将依次介绍Nginx的安装及运行控制、配置文件(nginx.conf),以及使用Nginx构建基于域名的虚拟Web主机。

1.安装及运行控制

        Nginx最新的稳定版本为1.12.0,其安装文件可以从官方网站http://www.ngi最大化下载。下面以稳定版-1.6.0为例,介绍Nginx的安装及运行控制。

1)安装支持软件

        Nginx的配置及运行需要pcre、zlib等软件包的支持,因此应预先安装这些软件的开发包(devel)以便提供相应的库和头文件,确保Nginx的安装顺利完成,具体安装命令如下所示。

d2cac70b4e371aaaab575a3e7565b37b.png

2)创建运行用户,组

        Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性,降低安全风险。例如,创建一个名为nginx的用户,不建立宿主文件夹,也禁止登录到Shell环境。

1233cba6bba2bf52620c67966e531334.png

3)编译安装Nginx

        配置Nginx的编译选项时,将安装目录设为/usr/local/nginx,运行用户及组均设为nginx:启用http-stub_status_module模块以支持状态统计,便于查看服务器的连接信息。具体选项根据实际需要来定,配置前可参考”/configure--help”给出的说明。

8b965ca1ab807691f871ab0c3cc5fa11.png

        为了使Ngirnx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行

“nginx”命令就可以调用Nginx的主程序。

73a2530724f73c6fdde49d12b86d87c3.png

2.Nginx的运行控制

1)检查配置文件

        与Apache的主程序httpd类似,Nginx的主程序也提供了“-t”选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录下的conf/子目录中。若要检查位于其他位置的配置文件,可使用“-c”选项来指定路径。

0f7b85dedbe89b92fa346258c5f18cce.png

2)启动、停止Nginx

        直接运行nginx命令即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加“-c配置文件路径”选项来指定配置文件路径。需要注意的是.若服务器中已装有httpd等其他Web服务软件,应采取修改端口、停用或卸载等措施避免端口冲突。

8c1470ca929942b0838d7f199868bfcd.png

3)测试

在启动服务之后,我们可以打开浏览器访问本机IP,看是否能够访问到nginx服务

3f009e72312aa80022dd3a808cadacdb.png

二,配置文件nginx.conf

        在Nginx 服务器的主配置文件/usr/local/nginx/conf/nginx.conf中,包括全局配置,l/O事件配置和HTTP配置这三大块内容,配置语句的格式为“关键字值:”(末尾以分号表示结束),以‘#”开始的部分表示注释。

1.全局配置

        全局配置部分由各种配置语句组成.不使用特定的界定标记。它包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本设置。

50abc94b4a58f1c3212e3662fb6ae455.png

        上述配置中,worker_processes表示工作进程的数量。若服务器有多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数,如设为8;如果网站访问量需求并不大,一般设为1就够用了。一般情况下,若主配置文件中没有设置或已有注释的配置项,表示自行使用默认设置,因此上述配置文中的其他三项配置均已有注释,自动采用Nginx服务自己默认的设置。例如,Nginx的运行用户在编译时指定为nginx,若编译时未指定则默认为nobody。

2. I/O事件配置

        使用“events{}”界定标记用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数应根据实际需要来定,一般在10000以下(默认为1024)。

194a057a63c09795cbde42feae9c21ca.png

        若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3万个(4096×8=32768),当然具体还要看服务器硬件、网络带宽等物理条件的性能表现。

3.HTTP配置

        使用“http{}界定标记用于设定HTTP服务器,包括访问日志,HTTP端口,网页目录、默认字符集、连接保持,以及后面要讲到的虚拟Web主机、PHP解析等网站全局设置,其中大部分配置语句都包含在子界定标记“server{}”内。“server{}”代表一个具体的网站设置。

26d0e70d51e2d253a2012cddfded4526.png

        上述配置中,listen语句限定端口的同时允许限定IP地址,采用“IP地址:端口”形式;root语句用来设置特定访问位置(如“location/”表示根目录)的网页文档路径,默认为Nginx安装目录下的html/子目录,根据需要可改为/var/www/html等其他路径,但更改后需保证nginx用户对其具有读取权限。

三,访问状态统计及虚拟主机应用

        本节将介绍Nginx服务器的两个基本应用——访问状态统计和虚拟Web主机,分别通过一个小案例来实现。

1.Nginx的访问状态统计

        Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,配置编译参数时可添加--with-http_stub_status_module 来启用此模块。要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf配置文件,指定访问位置并打开stub_status配置。

8083c951c498a8a65b8e6c7ea6dcbabe.png

        新的配置生效以后,在浏览器中访问Nginx服务器的/status网站位置,可以看到当前的状态统计信息,如下图所示。其中,“Active conmections”表示当前的活动连接数;而“server accepts handled requests”表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。

b2bd97a4d252ac3e41fa553639693624.png

2.基于IP的虚拟Web主机

        基于IP虚拟Web主机通过域名区分不同的Web站点。使用Nginx搭建虚拟主机服务器时,每个虚拟Web站点拥有独立的“server{}”配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的。

具体配置参考以下过程:

1)配置虚拟网卡,实现基于IP虚拟WEB主机

0083679fb22f9ce79fe0cd6ef12f5c38.png

2)准备网站目录及测试文件。为两个虚拟Web主机分别建立根目录,并准备测试首页,以方便在测试时区分。

08589128af2a9a37bf2dc7b399bbbd4f.png

742be11afd3cab08a1fa04cf3c337055.png

3)调整主配置文件,配置两个server区域,分别对应两个WEB站点

第一个server区域:

4270cc93e5ab2d7c46aef8c389c4e10c.png

第二个server区域:

010125b5e41f04794b8939f96daa9512.png

4)重启nginx服务,分别访问不同的网站

d7cb9569b3bd8d8778834a5ef498d6d0.png

c7081a3208a62a2ee7bbfd99d7256f8e.png

四,LNMP架构及应用部署

        众所周知,LAMP平台是目前应用最为广泛的网站服务器架构,其中的‘A”对应着Web服务软件Apache HTTP Server。随着Nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多Linux系统工程师的青睐。

        就像构建LAMP平台一样,构建LNMP平台也需要Linux服务器、MySOL 数据库、PHP解析环境,区别主要在Nginx与PHP的协作配置上。下面将以前面安装的Nginx 服务器为基础,介绍LNMP平台的构建方法。

1.安装MySQL数据库

具体教程在之前,具体参考(MySQL数据库系统)这里就不多做解释了

2.安装PHP解析环境

        较新版本(如5.5)的PHP已经自带FPM(FastCGl Process Manager,FastCGl进程管理器)模块,用来对PHP解析实例进行管理、优化解析效率。单服务器的LNVMP架构通常使用这种方式,因此在配置PHP编译选项时应添加“--enable-fpm 以启用此模块。

以源码包php-5.5.38为例,具体安装过程如下。为了提高PHP解析效率,建议将相应版本的ZendGuardLoader也装上。

f1bc6217163c3d792e1f73a45e5fe548.png

73b7ccb158217fffe723dd93ff9061d4.png

91ec639ebfd2a408d762e3e0a2cf7f5f.png

530674160b93bae0d130309608f7cd2f.png

生成服务控制文件及优化命令

0fe5b7fd0167699ce982e2429ea0783c.png

3.配置Nginx支持PHP环境

18afcc817470aef16bf5b91a9ebc7837.png

bbe9d115fccaabd4deeac6faceb00019.png

93af8cddab5a34eb2edb5814fcfc992a.png

4f59d660f46afa550639fcaa03257a19.png

4)PHP页面访问测试

        以调用php-fpm解析为例,可以在PHP文档根目录下创建一个测试网页,用以测试PHP语句能否正常解析。

1ee6e6fe8fbc4fb190eb6850e0b0a63a.png

c45ed64a5607a26226a9fe95172ab743.png

5a2d67c077f05e2ce3eccb4686ea119a.png

50875315d8190bf006bf031d8f72b08d.png

访问

c8a9a606ccd68c77999ed820fa92e4a6.png

1da1afedfa6ff0d3f970e1917a492444.png

五,在LNMP平台中部署Web应用

LNMP平台与LAVMP平台是非常相似的,区别主要在于所用Web服务软件的不同,而这与使用PHP开发的Web应用程序并无太大关系,因此PHP应用的部署方法也是类似的。下面将以“Discuz!

社区论坛”为例,介绍在LNMP平台中的部署过程。

1.下载并部署程序代码

“Discuz!社区论坛”是一个采用PHP与MySOL等多种数据库构建的性能优异、功能全面且安全稳定的社区论坛(BBS)软件,其官方网站为http://www.discuz.net/。

将下载的Discuz!源码文件解压,找到其中的upload/文件夹并将其放置到LNMP服务器的网站根目录,然后适当调整权限(若此处不调整,也可参考安装页面的提示再调整),以允许nginx.php-fom程序拥有必要的写入权限。

8b2c5e44f7b821fbc628dad12b507c75.png

e490f1830ce38b12f2a34ddeebed68e6.png

2703df6fd4228dfa4aeffcaacd8f4b79.png

4e5d086f2f6cb2a912f3354d875eef9a.png

6e2a44b860134e7ab877e9407aa0f0dd.png

4d5a4ed4d527dc2fae0179cd87d66085.png

重启服务

安装论坛和影院

论坛:

8169fafb5f7483e201d845157d2ba1ea.png

2ed01015782d7a893834fb377d40fe04.png

83693c2ea90ee9bb13d68f6cd75da0f8.png

34e989f62bafb7f303dbf6534844e490.png

2915875e6594607b319e28b0f10bc0ec.png

0dcdd786dbacb57a40c10464b9eece01.png

6d1d22bda9c174f4a868523990bdd818.png

电影院上线:

991994ca3f1947bdb896f4fb13c7056a.png

5bb82088cbc38e46123812961118e58b.png

9b0d8e55a6dfc89c9f3efd8208a53458.png

be842f4463461c2bd5e3413247fa0dc3.png

338aacd59612e769f49dbc4037e66977.png

至此,结束~~~                                                                                                       

故事很短,道理很长,学无止境,不忘初心,砥砺前行  

微信搜索 “徐阿马”  关注公众号,期待你的关注!

9f2b9d8c661f9bcf33a4d29ea0a9b076.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值