Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 725|回复: 0

nginx+fastcgi实现动静分离架构

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-20 15:22:52 | 显示全部楼层 |阅读模式

背景:
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  
<?php
phpinfo();  
?>
注意:如果找不到目录中的php文件,修改文件/usr/local/nginx/conf/nginx.conf 中的内容
将/scripts$fastcgi_script_name修改成/usr/local/php/www$fastcgi_script_name

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-7-19 16:07 , Processed in 0.051907 second(s), 12 queries , Apc On.

快速回复 返回顶部 返回列表