天天看点

linux nginx简单教程

nginx的简介

常用的web服务器简介

    web服务器常常被称之为www(world wide web)服务器,http服务器,其主要功能是提供

网上信息浏览服务,linux和uninx平台下常用的web服务器有apache、nginx、lighttpd、tomcat

等,下图是http://www.netcraft.com网站2014年最近统计的各web服务器的市场占有率。

linux nginx简单教程

从上图可以看出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库等,

以下是我编译时准备的开发环境。

linux nginx简单教程

使用./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,启动后

可以查看服务进程

linux nginx简单教程

各位看到的可能只有一个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

会报错,例如:

linux nginx简单教程

生产中切记,每次修改后要先检测是否有错误再重启。

4.1 基于域名的虚拟主机的配置

基于域名的虚拟主机是最常见的一种虚拟主机,多个虚拟主机可以共享同一个ip地址,有效解决了

ip地址不足的问题,测试配置如下:

以上路径使用的是相对路径,相对于安装目录,在v1、v2、v3目录下分别放置了3个首页文件

linux nginx简单教程

下面我们使用crul命令来测试各个域名的文件

linux nginx简单教程

可以看到各个域名的首页文件的内容

4.2 基于ip地址的虚拟主机的配置

很容易理解,基于ip的虚拟主机就是一个ip地址上运行一个虚拟主机,由于手上没有那么多的主机

在此我将同一台主机上的一个网卡通过别名的方式配置了多个别名,每个别名上配置了一个ip地址

命令为:

linux nginx简单教程

再次使用crul命令查询,如下:

linux nginx简单教程

以上就是基于ip的虚拟主机。

4.3 基于端口的虚拟主机

基于端口就是同一个ip地址不同的端口来创建虚拟主机,如

linux nginx简单教程

继续阅读