Nginx服务与LNMP架构部署
Nginx简介 在各种网站服务器软件中,除了Apache HTTP Server外,还有一款轻量级的HTTP服务器软件-------Nginx ,其稳定,高效的特征逐渐被越来越多的用户认可。本篇主要学习一下Nginx服务的基本构建,访问控制方式和虚拟主机的搭建,还有应用广泛的LNMP架构服务器的部署方式,并对PHP-FPM模块如何支持PHP语言进行讨论。 Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求)。正因为如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务。 构建LNMP平台就像构建LAMP平台一样,也需要Linux服务器、MySQL数据库和PHP解析环境,区别主要在Nginx和PHP的协作配置上。我们需要源代码安装MySQL数据库,让Nginx与PHP环境保持一致。还需要安装PHP解析环境,配置Nginx支持PHP环境. 先挂载镜像文件,搭建好yum仓库。如下图所示: cd /etc/yum.repos.d/ vim abc.repo : Yum list : 安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c++ make : 接下来创建一个能管理Nginx的用户。 如下图所示: useradd -M -s /sbin/nologin nginx # -M不让它在本地创建家目录 -s 不让它在本地进项shell登录 通过WinSCP工具将宿主机里的软件包拖到虚拟机根目录下。如下图所示: 将nginx-1.6这个包减压到opt下 # tar xzvf /opt/LNMP/nginx-1.6.0.tar.gz -C /opt : make : make install : 到此Nginx已经全部安装好了。 安装好之后我们对它要进行管理和控制 [root@Redhat1 nginx-1.6.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ 我们需要用命令killall -1 nginx 和killall -3 nginx来对Nginx进行重启和停止。我们接下来在/etc/init.d/Nginx下编译一个脚本便于用server来管理Nginx服务,这样更方便。 写好之后给这个脚本执行权限:chmod +x /etc/init.d/nginx 添加服务项chkconfig --add nginx 开机自启动 init3 init5 开启服务service Nginx start 接下来配置页面统计功能: vim nginx.conf : 用win7作为客户端进行首页访问验证: 切到虚拟目录status下进行访问,通过刷新可以看到每次访问页面做出的统计: 接下来在Nginx服务上配置虚拟主机 继续修改nginx的配置文件 vim nginx.conf : 检查nginx配置文件是否正确,并安装DNS服务并修改配置: 对区域配置文件进行修改 vim /etc/named.rfc1912.zones 接下来带权限复制一份给accp: cp -p benet.com.zone accp.com.zone 指定nameserver : echo "nameserver 192.168.10.23" > /etc/resolv.conf 然后开启DNS服务,在本机上用host解析验证一下两个虚拟主机: 创建站点首页,通过win7客户机访问验证: 到此,多个虚拟主机访问结束。 我们还可以通过配置身份验证进行访问,还可以基于客户端控制进行访问。这里就不一一做了,下面将这两种访问控制的具体操作概述一下: 身份验证访问: htpasswd -c /usr/local/nginx/passwd.db zhangsan chown nginx /usr/local/nginx/passwd.db chmod 400 /usr/local/nginx/passwd.db
location / { auth_basic "secret"; auth_basic_user_file /usr/local/nginx/passwd.db; root html; index index.html index.htm; } 基于客户端控制: location / { deny 192.168.100.20; allow all; root html; index index.html index.htm; }
接下来是我这篇的重头戏,配置LNMP。 首先需要安装一个字符终端下屏幕控制的基本库ncurses ; yum -y install ncurses-deve 接下来解压缩mysql-5.5.24 这个软件包到/opt下 # tar xzvf mysql-5.5.24.tar.gz -C /opt 查看MySQL 并安装其中我们需要用到cmake编译软件包: 手工编译安装MySQL: make: make install : 到此MySQL已经安装完毕。接下来安装PHP。 首先安装GD库及GD库关联程序 (GD库光盘自带,yum install直接进行安装) : 解压PHP包: 查看一下有没有configure: 接下来进行手工编译安装PHP: make : make install : 为PHP安装加速器: 解压 ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz到opt下 cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x cp ZendGuardLoader.so /usr/local/php5/lib/php 配置PHP识别加速器: 开启nginx的PHP支持: 配置修改完成后启用,并检查端口9000有没有开启: 接下来是让nginx支持PHP功能: 首先修改配置文件 vi /usr/local/nginx/conf/nginx.conf vi /var/www/benet/index.html : 然后复制一份到/var/www/benet/index.php mv /var/www/benet/index.html /var/www/benet/index.php 到此LNMP的架构已经全部搭建完成,可以在此基础上安装第三方的软件了(论坛等)。
** 本篇总结:** 1.NMP平台的N表是Nginx,是一款高性能的轻量级Web服务器软件,在稳定性、并发响应方面表现出色。 2.Nginx内建的访问统计功能由stub_status模块提供,需要在编译时启用“--with-http_stub_status_module”选项。 3.Nginx页面访问安全有基于授权和基于客户端两种方式。 4.Nginx虚拟主机搭建可基于IP、域名和端口。 5.Nginx对PHP的支持可以通过两种方式实现:转交给其他web服务器和调用本机的php-fpm进程。 6.在LNMP平台中部署PHP应用时,基本过程与在LAMP平台中的部署类似。