nginx

  

一、nginx是什么?

  nginx是一个高性能的 HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

     Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:京东、新浪、网易、腾讯、淘宝等。

   

服务器

 

  Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。


代码


  Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。


代理服务器


  作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。


Nginx安装:



1、安装Nginx:


mkdir -p /Data/tgzcd /Data/tgzyum install wgetyum install pcreyum install openssl*yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers makeyum -y install gd gd2 gd-devel gd2-devel/usr/sbin/groupadd www/usr/sbin/useradd -g www wwwulimit -SHn 65535wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gztar zxvf pcre-8.32.tar.gzcd pcre-8.32./configure --prefix=/Data/apps/pcremake && make installcd ../
wget http://nginx.org/download/nginx-1.5.2.tar.gztar zxvf nginx-1.5.2.tar.gzcd nginx-1.5.2./configure --user=www --group=www --prefix=/Data/apps/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/Data/tgz/pcre-8.32 --with-http_realip_module --with-http_p_w_picpath_filter_modulemakemake installcd ../


2、安装 MySQL:


wget http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gztar zxvf mysql-5.6.10-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.10-linux-glibc2.5-x86_64 /Data/apps/mysql/usr/sbin/groupadd mysql/usr/sbin/useradd -g mysql mysqlmkdir -p /Data/data/mysql/datayum install libaio/Data/apps/mysql/scripts/mysql_install_db --basedir=/Data/apps/mysql --datadir=/Data/data/mysql/data --user=mysql sed -i "s#/usr/local/mysql#/Data/apps/mysql#g" /Data/apps/mysql/bin/mysqld_safe


3、安装PHP依赖库


mkdir -p /Data/apps/libs/wget http://www.ijg.org/files/jpegsrc.v9.tar.gz     tar zxvf jpegsrc.v9.tar.gzcd jpeg-9/./configure --prefix=/Data/apps/libs --enable-shared --enable-static --prefix=/Data/apps/libsmakemake installcd ../
wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.2.tar.gztar zxvf libpng-1.6.2.tar.gzcd libpng-1.6.2/./configure --prefix=/Data/apps/libsmakemake installcd ../
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.gztar zxvf freetype-2.4.12.tar.gzcd freetype-2.4.12/./configure --prefix=/Data/apps/libsmakemake installcd ../
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?big_mirror=0"wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?big_mirror=0"wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?big_mirror=0"
tar zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configure --prefix=/Data/apps/libsmakemake installcd libltdl/./configure --prefix=/Data/apps/libs --enable-ltdl-installmakemake installcd ../../
 tar zxvf mhash-0.9.9.9.tar.gzcd mhash-0.9.9.9/./configure --prefix=/Data/apps/libsmakemake installcd ../
vi /etc/ld.so.conf

添加:

/Data/apps/libs/lib

然后:

ldconfig

tar zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8/export LDFLAGS="-L/Data/apps/libs/lib -L/usr/lib"export CFLAGS="-I/Data/apps/libs/include -I/usr/include"touch malloc.h./configure --prefix=/Data/apps/libs --with-libmcrypt-prefix=/Data/apps/libsmakemake installcd ../


4、编译安装PHP 5.5


wget http://www.php.net/get/php-5.5.1.tar.gz/from/tw2.php.net/mirrortar zxvf php-5.5.1.tar.gzcd php-5.5.1/export LIBS="-lm -ltermcap -lresolv"export DYLD_LIBRARY_PATH="/Data/apps/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"export LD_LIBRARY_PATH="/Data/apps/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"./configure --prefix=/Data/apps/php --with-config-file-path=/Data/apps/php/etc --with-mysql=/Data/apps/mysql --with-mysqli=/Data/apps/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir=/Data/apps/libs --with-jpeg-dir=/Data/apps/libs --with-png-dir=/Data/apps/libs --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/Data/apps/libs --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-ztsmakemake installcp php.ini-development /Data/apps/php/etc/php.inicd ../

ln -s /Data/apps/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylibmv /Data/apps/php/etc/php-fpm.conf.default /Data/apps/php/etc/php-fpm.conf


5、编译安装PHP扩展


wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gztar zxvf autoconf-latest.tar.gzcd autoconf-2.69/./configure --prefix=/Data/apps/libsmakemake installcd ../
wget http://pecl.php.net/get/memcache-2.2.7.tgztar zxvf memcache-2.2.7.tgzcd memcache-2.2.7/export PHP_AUTOCONF="/Data/apps/libs/bin/autoconf"export PHP_AUTOHEADER="/Data/apps/libs/bin/autoheader"/Data/apps/php/bin/phpize./configure --with-php-config=/Data/apps/php/bin/php-configmakemake installcd ../

打开 /Data/apps/php/etc/php.ini 查找 ; extension_dir = "ext"

在其后增加一行:extension = "memcache.so"