会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。
简介
在企业信息化应用环境中,安全性不仅取决于硬件防护设备、系统加固、访问控制等基本措施,而且如何减少故障中断时间、提高存储及备份的完善性也是确保企业信息安全的重要措施。本章将进一步学习服务器缓存加速、高可用/负载均衡群集、服务器集中监控等高级安全应用。后续课程将采用最小化安装的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的安装顺利完成,具体安装命令如下所示。
2)创建运行用户,组
Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性,降低安全风险。例如,创建一个名为nginx的用户,不建立宿主文件夹,也禁止登录到Shell环境。
3)编译安装Nginx
配置Nginx的编译选项时,将安装目录设为/usr/local/nginx,运行用户及组均设为nginx:启用http-stub_status_module模块以支持状态统计,便于查看服务器的连接信息。具体选项根据实际需要来定,配置前可参考”/configure--help”给出的说明。
为了使Ngirnx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行
“nginx”命令就可以调用Nginx的主程序。
2.Nginx的运行控制
1)检查配置文件
与Apache的主程序httpd类似,Nginx的主程序也提供了“-t”选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录下的conf/子目录中。若要检查位于其他位置的配置文件,可使用“-c”选项来指定路径。
2)启动、停止Nginx
直接运行nginx命令即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加“-c配置文件路径”选项来指定配置文件路径。需要注意的是.若服务器中已装有httpd等其他Web服务软件,应采取修改端口、停用或卸载等措施避免端口冲突。
3)测试
在启动服务之后,我们可以打开浏览器访问本机IP,看是否能够访问到nginx服务
二,配置文件nginx.conf
在Nginx 服务器的主配置文件/usr/local/nginx/conf/nginx.conf中,包括全局配置,l/O事件配置和HTTP配置这三大块内容,配置语句的格式为“关键字值:”(末尾以分号表示结束),以‘#”开始的部分表示注释。
1.全局配置
全局配置部分由各种配置语句组成.不使用特定的界定标记。它包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本设置。
上述配置中,worker_processes表示工作进程的数量。若服务器有多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数,如设为8;如果网站访问量需求并不大,一般设为1就够用了。一般情况下,若主配置文件中没有设置或已有注释的配置项,表示自行使用默认设置,因此上述配置文中的其他三项配置均已有注释,自动采用Nginx服务自己默认的设置。例如,Nginx的运行用户在编译时指定为nginx,若编译时未指定则默认为nobody。
2. I/O事件配置
使用“events{}”界定标记用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数应根据实际需要来定,一般在10000以下(默认为1024)。
若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3万个(4096×8=32768),当然具体还要看服务器硬件、网络带宽等物理条件的性能表现。
3.HTTP配置
使用“http{}界定标记用于设定HTTP服务器,包括访问日志,HTTP端口,网页目录、默认字符集、连接保持,以及后面要讲到的虚拟Web主机、PHP解析等网站全局设置,其中大部分配置语句都包含在子界定标记“server{}”内。“server{}”代表一个具体的网站设置。
上述配置中,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配置。
新的配置生效以后,在浏览器中访问Nginx服务器的/status网站位置,可以看到当前的状态统计信息,如下图所示。其中,“Active conmections”表示当前的活动连接数;而“server accepts handled requests”表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。
2.基于IP的虚拟Web主机
基于IP虚拟Web主机通过域名区分不同的Web站点。使用Nginx搭建虚拟主机服务器时,每个虚拟Web站点拥有独立的“server{}”配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的。
具体配置参考以下过程:
1)配置虚拟网卡,实现基于IP虚拟WEB主机
2)准备网站目录及测试文件。为两个虚拟Web主机分别建立根目录,并准备测试首页,以方便在测试时区分。
3)调整主配置文件,配置两个server区域,分别对应两个WEB站点
第一个server区域:
第二个server区域:
4)重启nginx服务,分别访问不同的网站
四,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也装上。
生成服务控制文件及优化命令
3.配置Nginx支持PHP环境
4)PHP页面访问测试
以调用php-fpm解析为例,可以在PHP文档根目录下创建一个测试网页,用以测试PHP语句能否正常解析。
访问
五,在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程序拥有必要的写入权限。
重启服务
安装论坛和影院
论坛:
电影院上线:
至此,结束~~~
故事很短,道理很长,学无止境,不忘初心,砥砺前行
微信搜索 “徐阿马” 关注公众号,期待你的关注!