Apache自1990年发布以来,一直是web服务器市场的王者。Nginx出现较晚,因其在高并发下卓越的表现,最初是作为Apache在高并发情况下的补充,当时Nginx Apache是流行的架构. 现在Nginx的功能已经十分完善,多数场合下不需要Nginx Apache这样复杂的架构,那么问题来了,选择Nginx 还是 Apache? Apache自1990年发布以来,一直是web服务器市场的王者。Nginx出现较晚,因其在高并发下卓越的表现,最初是作为Apache在高并发情况下的补充,当时Nginx Apache是流行的架构. 现在Nginx的功能已经十分完善,多数场合下不需要Nginx Apache这样复杂的架构,那么问题来了,选择Nginx 还是 Apache? Apache自1990年发布以来,一直是web服务器市场的王者。Nginx出现较晚,因其在高并发下卓越的表现,最初是作为Apache在高并发情况下的补充,当时Nginx Apache是流行的架构. 现在Nginx的功能已经十分完善,多数场合下不需要Nginx Apache这样复杂的架构,那么问题来了,选择Nginx 还是 Apache? Apache自1990年发布以来,一直是web服务器市场的王者。Nginx出现较晚,因其在高并发下卓越的表现,最初是作为Apache在高并发情况下的补充,当时Nginx Apache是流行的架构. 现在Nginx的功能已经十分完善,多数场合下不需要Nginx Apache这样复杂的架构,那么问题来了,选择Nginx 还是 Apache?
a.小巧的LNMP
web历史上最流行最经典的环境是LAMP(Linux Apache Mysql PHP),至今仍有大量网站采用此架构,Apache默认配置在未优化的情况下比较占用CPU和内存。借助于Nginx的轻量和高性能,LNMP架构只是将LAMP环境中的Apache换成Nginx,于是另一经典LNMP架构就诞生了。LNMP在服务器硬件配置相同时,相对于LAMP会使用更少的CPU和内存,是小型网站,低配服务器,和VPS的福音。LNMP架构后续会有实战,大家后续会详细了解到。 b.互补的LNAMP
LNAMP是一种互补型的架构,前面介绍过,Nginx的负载均衡和反向代理配置灵活,并发能力强,处理静态资源性能强,这些特性十分适合在前端调度。缺点是处理动态资源差一些,这正是Apache的强项,所以动态资源交给Apache处理。此架构充分利用了Nginx和Apache的长处,弥补各自的不足,兼顾动静态资源的同时又方便了扩展。缺点是配置复杂对服务器硬件配置要求高。 c.Web调度员Nginx
当web应用发展到一定程度时,单台服务器不足以支撑业务的正常运行,为增大吞吐量往往会使用多台服务器一起提供服务,如何充分利用多台服务器的资源,就需要一个’调度员‘,这个调度员要求能高效的接收并分发请求,知道后端的服务器健康状态,要能方便的扩展和移除,这就是Nginx又一常见应用架构,此架构充分利用了Nginx的反向代理和负载均衡的优势,Nginx本身不提供web服务,而是在前端接受web请求并分发到后端服务器处理,后端服务器可以是Apache,tomcat,IIS等。 以上三种是比较流行的架构,事实上Nginx的应用场景十分灵活,在高并发的网站里有着广泛的应用,大家在以后的学习中可以多关注。
带领大家安装好LNMP环境,入门学习nginx,为后面的课程做准备 安装nginx 安装mysql 安装php 什么是 LNMP? 首先这里要简单介绍下 LAMP 和 LNMP。这两个都是在网站服务器架构中的系统环境。 上节中我们简单介绍过: LAMP指的是:Linux Apache MySQL Perl/PHP/Python LNMP指的是:Linux Nginx MySQL PHP 在 LNMP 中的作用或角色: Linux 是一类 Unix 计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo 等。LNMP 中以它作为平台。我们实验楼的环境本身就是 ubuntu,可直接进行下一步操作。如果想拥有自己的 ubuntu 实验环境,赶紧动手实现 在 LNMP 中的作用或角色: Linux 是一类 Unix 计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo 等。LNMP 中以它作为平台。我们实验楼的环境本身就是 ubuntu,可直接进行下一步操作。如果想拥有自己的 ubuntu 实验环境,赶紧动手实现 Nginx 安装 sudo apt-get update Sudo apt-get install -y nginx
完成安装后的测试 所有的启动配置文件都在/etc/init.d/nginx这个目录下,所以相关操作都可以在这个文件夹启动命令 这其实就是一个启动脚本 sudo /etc/init.d/nginx start 或 sudo service nginx start 启动完毕后,打开浏览器,访问 一定要刷新以确认
1 .nginx 安装后的初级配置 sudo vim/etc/nginx/sites-available/default
HP 需要配置 location ~ .php$ {},所以要让 php 与 nginx 一起工作,就得在这个配置文件中放出这个模块。 如图修改(54 行开始) 把 注释去掉-- vim技巧:ctrl v进入列编辑,选中要删除的#,再按d删除
紧接着测试配置文件
测试成功以后记得重载配置文件,使配置文件生效 sudo service nginx reload
关于测试的话要等下面的 php 一同配置好后一起测试 2 . 安装mysql 在 LNMP 中的作用或角色:Mysql 是一个小型关系型数据库管理系统 mysql 的安装分为服务端与客户端 sudo apt-get install mysql-server mysql-client 然后 修改 mysql 的配置文件 sudo vim /etc/mysql/my.cnf 将 bind-address = 127.0.0.1 注释掉,就可以远程连接数据库了
然后mysql 服务重新启动 sudo service mysql start 在 LNMP 中的作用或角色:nginx 本身不能处理 PHP,它只是个 web 服务器,当接收到请求后,如果是 php 请求,则发给 php 解释器处理,并把结果返回给客户端.php-fpm 是一个守护进程(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。 sudo apt-get install -y php5-fpm 安装好以后连同上面的 nginx 一同测试 现在创建一个探针文件保存在 /usr/share/nginx/html 目录下(这个目录就是刚刚 nginx 配置文件中 root 目录),以便测试。
sudo vim /usr/share/nginx/html/phpinfo.php
接下来使用命令启动 php5-fpm 服务:浏览器测试
(1).要想让 php5 支持 Mysql,还需要安装一系列的配套模块。 在刚才打开的网页中,这是没有装模块的界面,搜索可以看出,里面没有任何 mysql 的启动信息 需要安装 php5-mysql 模块 sudo apt-get install php5-mysql 需要安装 php5-mysql 模块 然后服务重新启动:Sudo service php5-fpm restart 安装好的表现:
改变监听端口 某些情况下我们需要改变服务器的端口,因为套接字是通过绑定 ip 端口连接的,那就只需要将刚才的 nginx 的 default(所在目录/etc/nginx/sites-available/)配置中的端口打开,然后改成你想要监听的端口 这是 nginx 的 default sudo vim/etc/nginx/sites-available/default
命令重载配置文件使之生效 sudo service nginx reload
接下来重启 nginx 和 php 就好了 sudo service nginx restart
到这里 LNMP 的总体基本框架也就搭建好了