nginx的简介
常用的web服务器简介
web服务器常常被称之为www(world wide web)服务器,http服务器,其主要功能是提供
网上信息浏览服务,linux和uninx平台下常用的web服务器有apache、nginx、lighttpd、tomcat
等,下图是http://www.netcraft.com网站2014年最近统计的各web服务器的市场占有率。
从上图可以看出apache一直在web服务器上占有"老大的位置",主要优势在于源代码的开放,有一
支开放的开发队伍,支持跨平台的应用,以及可移植性等。microsoft 的iis,iis是一组服务组件
包括web服务器,ftp服务器,smtp服务器等。
nginx由于出现的比较晚,市场份额一直处于上升的地步,截至目前,大概占据14.47%。
相对于其他web服务,nginx主要以下的优势.
1.nginx使用了最新的epoll(linux2.6内核)和kqueue(freebsd)网络i/o模型,支持高并发连接
apache使用的则是传统的select模型,子进程的派生需要消耗的cpu资源较nginx大的多。
2.内存消耗更小,nginx+php(fastcgi)在3万并发连接下,开启10个nginx进程,消耗的内存为150m.
3.成本低廉,nginx遵循bsd开源协议,可以免费使用,并且可用于商业用途
4.配置简单,支持url等重写功能
2.编译安装nginx
nginx是开源软件,可以安装在microsoft、unix、linux等系统上,此处介绍在centos6.6_x86-64
编译安装nginx1.6.2版本,当然你也可以安装其他版本的。nginx官网地址为:www.nginx.org
在官网上可以看到在支持的各个版本,nginx的编译安装需要准备好编译环境,需要的环境,根据
所选择的nginx功能而不同,主要准备gcc等,nginx支持第三方模块,如果gzip如果安装zlib库等,
以下是我编译时准备的开发环境。
使用./configure --help可以查看各个选项及其意义
在安装nginx前先创建nginx用户和nginx组,以nginx用户身份来运行nginx的worker process进程
可以根据自身想实现的功能选择相应的选项即可,提醒各位在编译安装每一步的时候,查看是否
有错误出现,要解决各个错误后在进行下一步,不然最后编译好了无法使用,回头查看的时候第
一步就出错了。
编译好后,可以查看/application/nginx目录,会发现下面的内容很少。
3.nginx的启动、停止、平滑重启
nginx启动命令位于/application/nginx/sbin目录下的唯一一个启动脚本nginx,启动不需要加任
何参数
/application/nginx/sbin/nginx即可,如果配置文件编译时安装在其他目录下,可以使用-c选项
制定其目录,默认会寻找编译目录/application/nginx目录下的conf目录下的nginx.conf,启动后
可以查看服务进程
各位看到的可能只有一个master process 和一个worker process,我这看到3个是因为我修改了
nginx.conf的worker_processes 3;
如果看到以上信息则表面nginx启动正常,如果没有看到,请检查报错信息,此时查看网页,地址
栏中输入nginx服务主机地址,可以看到welcome to nginx的信息,表面访问成功。
nginx停止,可以使用 /application/nginx/sbin/nginx -s stop命令,也可以发送信号,如
kill - quit nginx主进程号
nginx平滑启动,可以使用 /application/nginx/sbin/nginx -s reload命令,或发送信号如
kill -hup nginx主进程号,推荐/application/nginx/sbin/nginx -s reload方式
4.nginx虚拟主机配置
虚拟主机使用的是一种软硬件技术,把一台运行在internet上的服务器主机分成一台台"虚拟"
的主机,每台虚拟主机都可以是一个独立的网站,具有完整的服务器功能。在nginx配置文件(nginx.conf)中,每个server中就是一个虚拟主机,如下:
注意:在nginx中每行后面要有;(分号)作为每行的结束符使用/application/nginx/sbin/nginx -t
会报错,例如:
生产中切记,每次修改后要先检测是否有错误再重启。
4.1 基于域名的虚拟主机的配置
基于域名的虚拟主机是最常见的一种虚拟主机,多个虚拟主机可以共享同一个ip地址,有效解决了
ip地址不足的问题,测试配置如下:
以上路径使用的是相对路径,相对于安装目录,在v1、v2、v3目录下分别放置了3个首页文件
下面我们使用crul命令来测试各个域名的文件
可以看到各个域名的首页文件的内容
4.2 基于ip地址的虚拟主机的配置
很容易理解,基于ip的虚拟主机就是一个ip地址上运行一个虚拟主机,由于手上没有那么多的主机
在此我将同一台主机上的一个网卡通过别名的方式配置了多个别名,每个别名上配置了一个ip地址
命令为:
再次使用crul命令查询,如下:
以上就是基于ip的虚拟主机。
4.3 基于端口的虚拟主机
基于端口就是同一个ip地址不同的端口来创建虚拟主机,如