nginx编译安装和优化

  1. 关于nginx
    Nginx是一款轻量级的WEB服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的 并发能力确实在同类型的网页服务器中表现较好。下面介绍编译安装nginx并增加nginx-gridfs模块。

    $ groupadd nginx                                     
    $ useradd -s /sbin/nologin -g nginx nginx            //创建nginx的运行用户和组,方便进程管理
    $ tar zxvf pcre-8.36.tar.gz                         
    $ cd pcre-8.36
    $ .configure
    $ make
    $ make install                                      //安装pcre让nginx支持rewrite 方便以后所需
    $ apt-get install openssl libssl-dev                //让nginx支持ssl
    
  2. 利用TCMalloc优化nginx
    TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具“google-perftools”中的一个成员。与标准的glibc库的malloc相比,TCMalloc库在 内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低系统负载。下面简单介绍如何为Nginx添加TCMalloc 库支持。 要安装TCMalloc库,需要安装libunwind(32位操作系统不需要安装)和google-perftools两个软件包,libunwind 库为基于64位CPU和操作系统的程序提供了基本函数调用链和函数调用寄存器功能。下面介绍利用TCMalloc优化Nginx的具体操作过程:

    #(1.)安装google-perftools
    $ apt-get install google-perftools libgoogle-perftools-dev
    #(2.)编译安装nginx并加入nginx-gridfs模块
    $ cd /usr/local
    $ git clone git://github.com/mdirolf/nginx-gridfs.git
    $ cd nginx-gridfs
    $ git submodule init
    $ git submodule update
    $ cd /usr/local/src
    $ tar zxvf nginx-1.8.0.tar.gz
    $ cd nginx-1.8.0
    $ ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-http_sub_module --with-google_perftools_module --with-cc-opt='-O2' --with-cpu-opt=amd64 --add-module=/usr/local/nginx-gridfs     
    #最后两个编译参数使得编译针对特定CPU以及增加GCC的优化.
    $ make && make install
    $ ln -sf /usr/local/nginx/sbin/nginx /usr/bin/nginx
    #(3.)为google-perftools添加线程目录
    $ mkdir /tmp/tcmalloc
    $ chmod 0777 /tmp/tcmalloc 
    #(4.)验证是否成功
    $ nginx
    $ lsof -n | grep tcmalloc
    nginx     27911           nginx   10w      REG                8,1        0    1441804 /tmp/tcmalloc.27911
    nginx     27912           nginx   12w      REG                8,1        0    1441803 /tmp/tcmalloc.27912
    nginx     27913           nginx   14w      REG                8,1        0    1441802 /tmp/tcmalloc.27913
    nginx     27914           nginx   16w      REG                8,1        0    1441801 /tmp/tcmalloc.27914
    

     

分类: Nginx/Apache

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注