nginx编译安装和优化
- 关于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
- 利用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
0 条评论