Linux下编译安装Nginx
  在 Linux 分类下   暂无评论

Linux下编译安装Nginx

  在 Linux 分类下   暂无评论

简介

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器.Nginx是由俄罗斯人Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过三年了.Igor Sysoev在建立的项目时,使用基于BSD许可.在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx同时也可以作为7层负载均衡服务器来使用.Nginx 0.8.46 + PHP 5.2.14 (FastCGI)可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍.

Nginx超越Apache的高性能和稳定性,使得国内使用Nginx作为Web服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道,六间房、56等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,盛大在线、金山逍遥网等网络游戏网站,豆瓣、人人网、YUPOO相册、金山爱词霸、迅雷在线等新兴Web 2.0网站.

为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型.目前Linux下能够承受高并发访问的 Squid、Memcached都采用的是epoll网络I/O模型.处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效.

下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:

假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你.select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止.而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人.如果来了10000个人,都要 找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明.同理,在高并发服务器中,轮询I/O是最耗时间的操作之 一,select和epoll的性能谁的性能更高,同样十分明了.

下载

官网: http://nginx.org/

nginx目前像我们的linux系统一样,开发组人员维护2个版本:

稳定版(stable): 1.12.x

主线版(mainline): 1.13.x

我们下载稳定版: http://nginx.org/download/nginx-1.12.0.tar.gz

wget http://nginx.org/download/nginx-1.12.0.tar.gz

安装

依赖库

HTTP 服务器重写模块需要用到PCRE库,需要下载解压,然后通过nginx配置 --with-pcre=<路径>其源码路径,通过静默模式创建PCRE库

下载:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
解压:
tar zxvf pcre-8.39.tar-gz

其他库下载地址:
zlib 下载地址: http://www.zlib.net/zlib-1.2.11.tar.gz
openssl 下载地址: https://www.openssl.org/source/ openssl-1.0.2k.tar.gz (选择安装)
SHA-1 C++ Library 下载地址: http://www.tamale.net/sha1/sha1-0.2.tar.gz (选择安装)

安装nginx

解压nginx

tar zxvf nginx-1.12.0.tar.gz

进入nginx目录

cd nginx-1.12.0

配置安装路径:

./configure --prefix=/usr/local/nginx --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.39 --withzlib=/usr/local/src/zlib-1.2.11 --with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.0.2k

编译安装

make && make install

启动nginx

测试是否安装成功

shell > cd /usr/local/nginx/sbin
shell > ./nginx -t
#安装成功会提示 test is successful.

启动nginx

./nginx
评论已关闭