Nginx服务与LNMP架构部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx服务与LNMP架构部署相关的知识,希望对你有一定的参考价值。
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已经全部安装好了。
安装好之后我们对它要进行管理和控制
[[email protected] 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平台中的部署类似。
以上是关于Nginx服务与LNMP架构部署的主要内容,如果未能解决你的问题,请参考以下文章