背景:
CGI:技术每产生一个请求就会生成一个应用程序的线程,请求完毕后,线程关闭,效率比较低。
FastCGI:技术常驻进程,保持不中断等待,效率比较高。
相对于nginx而言,apache是把应用程序进程放在webserver进程中一起加载,APACHE采用的是server API技术。
分布式web服务(动静分离模式优点:提高访问效率。)
静态程序:html,图片,js等
动态程序:FastCGI(php,perl等)
A机器:192.168.8.99
pcre-8.30.tar.gz (支持正则表达式 区分php等fastcgi程序还是html等静态程序)tar xzvf nginx-1.2.0.tar.gz
tar xzvf pcre-8.30.tar.gz
cd pcre-8.30
./configure --prefix=/usr/local/prce
make
make install
mysql线程优化---TCmalloc 线程缓存的Malloc
tar zxvf google-perftools-0.97.tar.gz cd google-perftools-0.97/ ./configure make
make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
vim /usr/local/mysql/bin/mysqld_safe
重启mysql服务并查看服务进程
64位操作系统先安装libunwind库,libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz
tar zxvf libunwind-0.99-alpha.tar.gz
cd libunwind-0.99-alpha/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
groupadd www #可省略
useradd –g www www –s /sbin/nologin #可省略
默认用户nobody (建议使用)很多资料里都是新建一个www用户,其实可以不用增加新用户。
tar xzvf nginx-1.2.0.tar.gz
cd nginx-1.2.0
./configure --prefix=/usr/local/nginx --user=www--group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-google_perftools_module --with-ld-opt='-ltcmalloc_minimal'
make
make intall
刷新浏览器同时查看nginx访问日志的变化
tail –F access.log
B机器: 192.168.8.100
tar xzvf php-5.2.6.tar.gz
gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1 (作用:对php的一个补丁包方便管理Fastcgi程序也就是这里的php程序)
cd php-5.2.6
./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm
make
make install
cp php.ini-dist /usr/local/php/lib/php.ini
php-cgi –c php.ini –c参数指定php.ini的位置
cd /usr/local/php/etc
编辑文件php-fpm.conf,修改如下内容vim /usr/local/php/etc/php-fpm.conf
启动php-fpm服务/usr/local/php/sbin/php-fpm start
Starting php_fpm done
修改/usr/local/nginx/conf/nginx.conf
vim /usr/local/nginx/conf/nginx.conf
修改/usr/local/php/etc/php-fpm.conf 去掉注释
mkdir /usr/local/php/www (目录自定义) 用php探针测试
cat index.php
phpinfo();
?>
注意:如果找不到目录中的php文件,修改文件/usr/local/nginx/conf/nginx.conf 中的内容
将/scripts$fastcgi_script_name修改成/usr/local/php/www$fastcgi_script_name