php+nginx和apache区别 和 php+nginx的区别

用户名:luckcy
文章数:158
评论数:84
访问量:1706572
注册日期:
阅读量:1297
阅读量:3317
阅读量:461709
阅读量:1145990
51CTO推荐博文
很久之前,就听师父说过Nginx这个东西,当时还不知道Nginx是什么,最终查百度百科在晓得是什么。Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名,近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当网、51、人人网等诸多大型网站都已经使用Nginx来做Web服务器,所以我们要学会运用Nginx还是非常有必要的,废话少说,下面我们一起来看一下Nginx是如何在Linux平台上搭建的安装视频下载地址/data/60051&& 注:安装视频共20个压缩包,需要全部下载下来解压
一、安装MySQL
&&&&&&& 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了
#useradd mysql
#tar zxvf mysql-5.0.40.tar.gz
#cd mysql-5.0.40
#./configure --prefix=/usr/local/mysql
#make && make install
#/usr/local/mysql/bin/mysql_install_db --user=mysql&&&&&&&&& //初始化MySQL数据库
#chown -R mysql /usr/local/mysql/var
#/usr/local/mysql/bin/mysqld_safe &&&&&&&&&& //启动MySQL
#/usr/local/mysql/bin/mysqladmin -u root password 123456&&& //设置MySQL密码
#/usr/local/mysql/bin/mysql -u root -p&&&&&& //登录MySQL
#cp support-files/f /f
#echo "/usr/local/mysql/bin/mysqld_safe &" &&/etc/rc.local
二、安装PCRE
&&&&&&&& PCRE是perl所用到的正则表达式,目的是让所装的软件支持正则表达式。默认情况下,Nginx只处理静态的网页请求,也就是html.如果是来自动态的网页请求,比如*.php,那么Nginx就要根据正则表达式查询路径,然后把*.PHP交给PHP去处理
#rpm -qa | grep pcre&&&&&&&&&&&&& //查询系统中有没有安装PCRE,一般装系统是默认装有,所以我们要删掉系统自带的
#cp /lib/libpcre.so.0 /&&&&&&&&&& &//在删除系统自带的PCRE之前,要先备份一下libpcre.so.0这个文件,因为RPM包的关联性太强,在删除后没libpcre.so.0这个文件时我们装PCRE是装不上的
#rpm -e --nodeps pcre-6.6-1.1&&&&&&&&& &//删除系统自带的PCRE
# tar zxvf pcre-8.00.tar.gz
#cd pcre-8.00
#cp /libpcre.so.0 /lib/&&&&&&&&&&&&& //把我们删除系统自带的PCRE之前备份的libpcre.so.0拷贝到/lib 目录下
#./configure&&&&&&&& //配置PCRE,因为PCRE是一个库,而不是像pache、php、postfix等这样的程序,所以我们安装时选择默认路径即可,这样会在后面安装其它东西时避免一些不必要的麻烦,执行完这部后会显示出下图,上面显示了我们对PCRE的配置
#make && make install
三、安装Nginx
&&&&&& 在网上,看到不少人装Nginx 时非常麻烦,配置时用了一大堆选项,请问你们真实现那么多功能么?害的我越看越郁闷。此次安装Nginx如果是按着上面笔者的步骤一步步走下来,安装Nginx时只需指定Nginx的安装路径即可
#tar zxvf nginx-0.8.24.tar.gz
#cd nginx-0.8.24
#./configure --prefix=/usr/local/nginx&&&& &//此处在本环节只需指定一个路径
#make && make install
#/usr/local/nginx/sbin/nginx&&&&&& //启Nginx
#echo "/usr/local/nginx/sbin/nginx" &&/etc/rc.local
Nginx启动后有两个进程,master为主进程,worker为工作进程,如下图
在启动完NGINX后,我们可以在浏览器中输入查看,如下图
四、安装PHP
&&&&&&& 既然安装PHP,那GD便是不可少的,在此GD的安装不再进行描述
1、安装libpng
#tar xvf libpng-1.2.10.tar.tar
#cd libpng-1.2.10
#./configure --prefix=/usr/local/png
#make install
#ln -s /usr/local/png/lib/* /usr/lib/
2、安装jpeg
#mkdir /usr/local/jpeg
#mkdir /usr/local/jpeg/bin
#mkdir /usr/local/jpeg/lib
#mkdir /usr/local/jpeg/include
#mkdir /usr/local/jpeg/man
#mkdir /usr/local/jpeg/man/man1
#tar xvf jpegsrc.v7.tar.tar
#cd jpeg-7
#./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
#make install
#ln -s /usr/local/jpeg/lib/* /usr/lib/
3、安装 freetype
#tar xvf freetype-2.3.9.tar.tar
#cd freetype-2.3.9
#./configure --prefix=/usr/local/freetype
#make install
4、安装fontconfig
#tar zxvf fontconfig-2.4.2.tar.gz
#cd fontconfig-2.4.2
#./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config
#make install
#tar zxvf gd-2.0.32.tar.gz
#cd gd-2.0.32
#./configure --prefix=/usr/local/gd --with-png=/usr/local/png --with-jpeg=/usr/local/jpeg --with- freetype=/usr/local/freetype --with-fontconfig=/usr/local/fontconfig
#cp /usr/local/png/include/png.h ./
#cp /usr/local/png/include/pngconf.h ./
#make install
6、安装PHP
&&&&&&& 这个地方是最重要的地方,因为默认情况下Nginx和PHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现Nginx与PHP的整合,这个只要我们安装是启用FastCGI即可。此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器,它作为PHP的插件存在,在安装PHP要想使用PHP-FPM时就需要把PHP-FPM以补丁的形式安装到PHP中,而且PHP要与PHP-FPM版本一致,这是必须的,切记!
&&&&& 首先我们把PHP和PHP-FPM下载到同一目录下,此次用的为php-5.3.0.tar.bz2和php-5.3.0-fpm-0.5.12.diff.gz,下载到了同一目录下
#tar xvf php-5.3.0.tar.bz2
#gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1&&&&&&&& &//将php-5.3.0-fpm-0.5.12.diff.gz以补丁形式加到php-5.3.0里面
#cd php-5.3.0
#./configure --prefix=/usr/local/php --with-gd=/usr/local/gd --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/png --with-freetype-dir=/usr/local/freetype --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm
注:Nginx+PHP整合,在安装时必须启用--enable-fastcgi和 --enable-fpm,这两个选项是做什么的上面已经描述。执行完后系统会提示--enable-fastcgi是一个未知选项,我们不必理会
#make install
#cp php.ini-dist /usr/local/php/etc/php.ini
下面我们就要启动PHP-FPM
#/usr/local/php/sbin/php-fpm start
在启动PHP-FPM时会报上面这个错误,原因是PHP-FPM自己不知道以那个用户和组运行PHP,所以我们要修改一个文件,把文件中的注释去掉即可(打开文件把红色部分删除),然后PHP-FPM会以nobody用户和组去运行PHP。
#vi /usr/local/php/etc/php-fpm.conf
#/usr/local/php/sbin/php-fpm start
#ps -aux | grep php
#echo "/usr/local/php/sbin/php-fpm start"& &&/etc/rc.local
五、整合Nginx与PHP
上面已经讲过,Nginx自己并不处理动态网页的请求,而且Nginx将得到的动态请求转交给PHP,下面我们打开Nginx的配置文件看一下
#vi /usr/local/nginx/conf/nginx.conf&&&&&&& &//标的部分是我们后面要修改的
看上图,Nginx已经知道怎么把得到的请求传达给PHP,Nginx在得到*.php请求时,会把请求通过9000端口传给PHP。下面我们把这些注释给去掉即可,如下图
注:上面的/usr/local/nginx/html 是我们PHP网站放置的路径
&&&&& 那么只有Nginx自己知道咋找PHP了还不行,还需要PHP知道咋找Nginx,PS:你见过大街上的JJMM约会时有不是相互认识对方,或者是不知道用啥方法和对方接头的?这点我们不需要担心,PHP-FPM已经在配置文件中定义了从哪接受PHP请求,我们可以打开配置文件看一下
#vi /usr/local/php/etc/php-fpm.conf
如上图所示,我们在前面已经看到过Nginx是通过本机的9000端口将PHP请求转发给PHP的,而上图我们可以看到PHP自己是从本机的9000端口侦听数据 ,Nginx与PHP通过本机的9000端口完成了数据请求。
我们在nginx的配置文件里面已经定义了PHP网站的存放路径,路径问/usr/local/nginx/html
下面我们在这个目录下新建一个PHP页面测试网页,文件名为test.php,内容如下
#vim /usr/local/nginx/html/test.php
#pkill php
#pkill nginx
#/usr/local/php/sbin/php-fpm start
#/usr/local/nginx/sbin/nginx
重启PHP与nginx后(可以用杀死进程的方式关闭,然后在启动)我们在浏览器中输入,出现如下界面算成功
了这篇文章
类别:┆阅读(0)┆评论(0)http://www.oschina.net/question/910?sort=default&p=2#tags_nav
GINX+PHP(FASTCGI)好,还是NGINX+APACHE+PHP好?
&第一种是利用CGI让NGINX和PHP进行通信
第二种是静态NGINX&&动态让APACHE里的MOD_PHP模块来实现PHP
二种都是NGINX在前端80端口,作为一个反向代理服务器。
这2种哪种效率高呢?
引用来自“南湖船老大”的评论
如果单台服务器的话,NGINX+APACHE+PHP 纯粹多此一举,多了一次请求转发,效率肯定低,而且现在FPM已经足够稳定。完全没必要。
只有多台服务器集群的话,apache+nginx反代才有意义.NGINX+APACHE+PHP 这种架构存在的原因除了apache出现比较早外,还因为当时FPM不如module模式稳定。
不见得。Nginx在前面实现动静分离,静态内容由Nginx负责,动态请求则交给后面的PHP应用服务器Apache(libphp5.so)处理。Apache专心处理PHP,这不挺好吗?
Nginx+PHP-FPM相对Nginx+Apache(libphp5.so)来说,PHP-FPM更灵活,在php-fpm.conf里可以配置监听不同端口的多个pool,每个pool又可以自由配置PHP-FPM工人进程数pm.max_children,一个pool里的工人进程繁忙不会影响到另一个pool。在Nginx里可以配置应用的不同部分使用不同的pool,而且一台服务器上可以运行多个版本的PHP-FPM,借助Nginx的upstream功能,PHP-FPM非常容易横向扩展。
和都在使用Nginx+PHP-FPM的架构,PHP-FPM已经足够稳定。
ab同样并发数压力测试ZF下RPS(请求每秒)对比:
--- 共有 6 条评论 ---
: PHP-FPM从5.3开始就集成到PHP核心,如果不稳定,你觉得新浪微博和百度贴吧会用吗?倒是PHP官方不推荐在生产环境中使用threaded MPM(worker/event)模式运行Apache2,仍建议使用老式prefork MPM.(2年前)&&回复
: 但是貌似没有APACHE+PHP组合稳定吧(2年前)&&回复
: 你的意思是说Nginx+PHP-FPM存在FastCGI进程间通信,所以Apache2.4+MOD_PHP的性能要比前者好。但Nginx比Apache轻量高效是有目共睹的,处理静态文件和负载均衡都很强。另外PHP-FPM的可以通过php-fpm.conf和php.ini进行配置,拥有更高的可配置性。(2年前)&&回复
: apache不是出道2.4了么,听说提升了速度,另外 NGINX和PHP通信用到了CGI技术,而APACHE和PHP貌似用的是APACHE里一个MOD_PHP模块 好像原理有本质的区别(2年前)&&回复
: 差距虽然不大。但Nginx+FPM优于Apache+MOD_PHP是事实。(2年前)&&
不要人云亦云,有同学做benchmark test,参考详情/question//answer/?group_id=029248
如果是单P,apache的MOD_PHP的效率超过FPM(这里不考虑请求处理模式所产生的内存与CPU消耗,只测web server对动态内容并发请求的处理),
还有国外某程序员做的并发测试,在纯PHP处理大量动态内容的测试条件下,Apache始终还是强过nginx
/page/why-is-fastcgi-w-nginx-so-much-faster-than-apache-w-mod_php/
如果你群P又有大量静态内容,用nginx反向+APACHE动态是最好选择
不过国外一些VPS用户还是建议即使单P还是用nginx,因为服务器资源有限,nginx对于内存和CPU的消耗都低于apache很多。(小站刚开始就不考虑那么多并发了吧)
我来插科打诨。
现在流行nginx+hhvm(fastcgi),速度杠杠的,都开了挂,
nginx比apache强10倍,hhvm比php-fpm强9倍。
本文已收录于以下专栏:
相关文章推荐
#安装时钟同步软件
yum install -y ntpdate 
ntpdate us.pool.ntp.org
#设置定时同步服务器时间
crontab -e
由于需要搭建了一个基本的服务器集群。具体的配置方案先不说了,到有时间的时候再介绍。下面介绍下整
个方案的优点。
我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面...
apache是通过mod_php来解析php
nginx是通过php-fpm(fast-cgi)来解析php
1. PHP 解释器是否嵌入 Web 服务器进程内部执行
mod_php 通过嵌入 P...
配置apache-2.4.9与fpm方式的php-5.4.26
一、apache、MySQL的安装参考《编译安装lamp环境》
二、编译安装php-5.4.26
1、解决依赖关系:
1.apache2.4以后可以编译单独的模块可以使用fastcgi和phpfpm进行配合,打开以下的模块即可
LoadModule proxy_module modules/mod_proxy.so...
前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第6篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx...
要实现将以上环境集成,必需先准备好以下软件包:  (一)数据库的Perl接口  1.perl5的Oracle数据库DBI驱动程序:DBD-Oracle-1.03.tar.gz  2.perl5的通用数...
[文章作者:张宴 本文版本:v6.3 最后修改: 转载请注明原文链接:/nginx_php_v6/]
  前言:本文是我撰写的关于搭建...
前言:本文为我2007年9月写过的文章《Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍(第1版)》的第2版,经过了多台服务器的...
[文章作者:张宴 本文版本:v6.3 最后修改: 转载请注明原文链接:/nginx_php_v6/]
  前言:本文是我撰写的关于搭建...
他的最新文章
讲师:王哲涵
讲师:王渊命
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)nginx+apache+php 与 nginx+lua+redis 性能对比
我的图书馆
nginx+apache+php 与 nginx+lua+redis 性能对比
目录 [收起-]系统环境简单输出apache+phpnginx+apache+phpnginx+luaRedis 读取键值nginx+apache+phpnginx+lua写入Redis列表nginx+apache+phpnginx+lua测试结果
cpu:Intel? Core? i3-4130 CPU @ 3.40GHz × 4
系统:ubuntu 14.04 lts 64bit 桌面版
nginx version: openresty/1.9.7.4
Apache/2.4.7 (Ubuntu)
PHP 5.5.9-1ubuntu4.9,启用opcache
LuaJIT 2.1.0-beta1
Redis server v=2.8.4
用同一个nginx,用worker_processes 为1,配置如下
123456789101112131415server {&&&&&&&&listen&&&&&& 81;&&&&&&&&location /lua/lottery {&&&&&&&&&&&&default_type text/ &&&&&&&&&&&&content_by_lua_file /www/lua/lottery. &&&&&&&&&&&&&&&&&&&&&}&&&&&&&&location /php {&&&&&&&&&&&&proxy_set_header Host $&&&&&&&&&&&&proxy_pass&&&&& http://127.0.0.1:8080/; # apache&&&&&&&&}&&&&}
lua&ngx.say(‘hello world!’)
php&echo ‘hello world!’;
apache+php
~ ab -c 500 -n 10000 http://127.0.0.1:8080/php/lottery.php
Concurrency Level: 500
Time taken for tests: 6.574 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1990000 bytes
HTML transferred: 120000 bytes
Requests per second: 1521.09 [#/sec] (mean)
Time per request: 328.711 [ms] (mean)
Time per request: 0.657 [ms] (mean, across all concurrent requests)
Transfer rate: 295.60 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 13 112.0 0 1002
Processing: 2 168 850.5 23 6560
Waiting: 2 167 850.6 22 6560
Total: 9 182 872.8 23 6568
Percentage of the requests served within a certain time (ms)
100% 6568 (longest request)
nginx+apache+php
~ ab -c 500 -n 10000 http://127.0.0.1:81/php/lottery.php
Concurrency Level: 500
Time taken for tests: 3.456 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1950000 bytes
HTML transferred: 120000 bytes
Requests per second: 2893.90 [#/sec] (mean)
Time per request: 172.777 [ms] (mean)
Time per request: 0.346 [ms] (mean, across all concurrent requests)
Transfer rate: 551.08 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 2.2 0 12
Processing: 7 109 315.4 26 3344
Waiting: 7 109 315.4 26 3344
Total: 14 110 316.3 26 3355
Percentage of the requests served within a certain time (ms)
100% 3355 (longest request)
~ ab -c 500 -n 10000 http://127.0.0.1:81/lua/lottery
Concurrency Level: 500
Time taken for tests: 0.402 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1610000 bytes
HTML transferred: 130000 bytes
Requests per second: 24892.46 [#/sec] (mean)
Time per request: 20.086 [ms] (mean)
Time per request: 0.040 [ms] (mean, across all concurrent requests)
Transfer rate: 3913.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 5 1.0 5 12
Processing: 2 6 1.4 6 14
Waiting: 2 5 1.3 4 13
Total: 7 11 1.6 11 19
Percentage of the requests served within a certain time (ms)
100% 19 (longest request)
Redis 读取键值
键值内容对&aa:&hi,redis!
local redis = require "resty.redis"
local red =redis:new()
red:connect('127.0.0.1', '6379')
local res,err = red:get('aa')
ngx.say(res)
$redis = new Redis();
$redis-&connect('127.0.0.1', 6379);
echo $$redis-&get('aa');
nginx+apache+php
~ ab -c 500 -n 10000 http://127.0.0.1:81/php/lottery.php
Server Software: openresty/1.9.7.4
Server Hostname: 127.0.0.1
Server Port: 81
Document Path: /php/lottery.php
Document Length: 9 bytes
Concurrency Level: 500
Time taken for tests: 3.498 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1910000 bytes
HTML transferred: 90000 bytes
Requests per second: 2859.16 [#/sec] (mean)
Time per request: 174.877 [ms] (mean)
Time per request: 0.350 [ms] (mean, across all concurrent requests)
Transfer rate: 533.30 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 34 177.4 1 1016
Processing: 3 78 186.0 37 3012
Waiting: 3 77 186.2 36 3012
Total: 5 113 253.4 39 3018
Percentage of the requests served within a certain time (ms)
100% 3018 (longest request)
~ ab -c 500 -n 10000 http://127.0.0.1:81/lua/lottery
Server Software: openresty/1.9.7.4
Server Hostname: 127.0.0.1
Server Port: 81
Document Path: /lua/lottery
Document Length: 10 bytes
Concurrency Level: 500
Time taken for tests: 1.144 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1580000 bytes
HTML transferred: 100000 bytes
Requests per second: 8738.81 [#/sec] (mean)
Time per request: 57.216 [ms] (mean)
Time per request: 0.114 [ms] (mean, across all concurrent requests)
Transfer rate: 1348.37 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 2.1 0 13
Processing: 7 24 89.9 11 1014
Waiting: 7 24 89.9 11 1014
Total: 8 24 90.3 11 1014
Percentage of the requests served within a certain time (ms)
100% 1014 (longest request)
写入Redis列表
$redis = new Redis();
$redis-&connect(‘127.0.0.1’, 6379);
$redis-&rPush(‘list_php’, ‘hi’);
echo ‘ok’;
local redis = require “resty.redis”
local red =redis:new()
red:connect(‘127.0.0.1’, ‘6379’)
red:rpush(‘list_lua’, ‘hi’);
ngx.say(‘ok’)
nginx+apache+php
~ ab -c 500 -n 10000 http://127.0.0.1:81/php/lottery.php
Concurrency Level: 500
Time taken for tests: 4.036 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1840000 bytes
HTML transferred: 20000 bytes
Requests per second: 2477.77 [#/sec] (mean)
Time per request: 201.794 [ms] (mean)
Time per request: 0.404 [ms] (mean, across all concurrent requests)
Transfer rate: 445.23 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 16 122.6 0 1000
Processing: 13 138 479.8 33 3316
Waiting: 13 138 479.9 33 3316
Total: 23 154 525.2 34 4022
Percentage of the requests served within a certain time (ms)
100% 4022 (longest request)
~ ab -c 500 -n 10000 http://127.0.0.1:81/lua/lottery
Concurrency Level: 500
Time taken for tests: 1.064 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1500000 bytes
HTML transferred: 30000 bytes
Requests per second: 9398.94 [#/sec] (mean)
Time per request: 53.197 [ms] (mean)
Time per request: 0.106 [ms] (mean, across all concurrent requests)
Transfer rate: 1376.80 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.6 0 12
Processing: 6 13 7.7 12 418
Waiting: 6 13 7.7 12 418
Total: 7 13 8.5 12 418
Percentage of the requests served within a certain time (ms)
100% 418 (longest request)
每秒处理请求数对比
nginx+apache+php
1521.09(无nginx)/2893.90
Redis 读取键值
写入Redis列表
用apache自带ab测试10000次请求,500并发无失败。redis 写入全部成功。
TA的推荐TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢正文最后编辑于:作者: 胡倡萌一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!
扫一扫,用手机访问本站新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
家境小康, 积分 1196, 距离下一级还需 804 积分
论坛徽章:0
本帖最后由 chlinux 于
18:46 编辑
这台服务器每天跑300万的pv,环境是apache+php,基本都是动态页面很少的图片
未命名.jpg (72.79 KB, 下载次数: 428)
18:36 上传
这台服务器每天跑1000万的pv,注意一点,这台服务器程序和下面那台nginx的程序完全一致。
未命名3.jpg (49.13 KB, 下载次数: 407)
18:36 上传
最后这台每天跑300万的PV,环境是nginx+php
未命名2.jpg (41.53 KB, 下载次数: 433)
18:36 上传
经过上面几张截图应该有个结论了吧?
之前我一直听说nginx+php比apache+php快多少多少倍之说,大家可能也看到个那个博文,但在我这儿测试怎么就相反了呢?难道网上提到的测试,只包括静态页面的测试?
我有些疑问,所以发上来大家讨论。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
家境小康, 积分 1196, 距离下一级还需 804 积分
论坛徽章:0
本帖最后由 chlinux 于
11:07 编辑
光看帖不回帖啊?帖写的比较匆忙,本以为会有人响应的,没想这里现在这么冷清啊。
apache2.0--apache2.2单位进程占用的内存确实比nginx+php高,似乎网上的博文只比较同等内存如何如何,如果内存足够大,但cpu、硬盘能力有限时,结果又怎么样呢?现在内存很便宜,我们可以直接上它几十个G。
一个好消息,apache2.4已经出来了,官方说性能如何如何的提高了,改善了内存等方面的问题,只装了环境,还没有实战测试php5.3还是和php5.2有些差别的,程序不兼容,还没时间改,据说php5.3不是从php5.2来的,是从php5.0进化来的,还没细研究。
“程序不兼容”,这个问题搞清楚了,不是环境的问题,但也是环境的问题,根源是程序的问题,只是php5.2没有把有问题的程序检测出来,照样给按正确的语法给运行了,但php5.3比较严格,给报出错误了,
错误的代码:
public static public static function functionname(){}
还有date的使用问题,5.3也给出警告了。要设置 date_default_timezone_set('Asia/Shanghai'); 或者配置文件中配置。
白手起家, 积分 93, 距离下一级还需 107 积分
论坛徽章:0
top看不出什么问题
建议你用压力测试测试一下
家境小康, 积分 1196, 距离下一级还需 804 积分
论坛徽章:0
严重不同意你的观点,为什么我的问题都是从top参数发现的呢?
家境小康, 积分 1196, 距离下一级还需 804 积分
论坛徽章:0
& & 压力测试,是很片面的测试,很难找到真正能模拟并发的软件,另外,测试也不够全面,有bug的程序不一定能测试到,可能只有在特定的条件下才会出现的bug,这些是压力测试无法测试到的,top,是个不错的工具,很直观的检测到你的程序质量,运行状态,不光是运行环境质量。
腰缠万贯, 积分 8910, 距离下一级还需 1090 积分
论坛徽章:0
内存小用nginx。
如果内存大,就无所谓了。
论坛徽章:49
chlinux 发表于
这台服务器每天跑300万的pv,环境是apache+php,基本都是动态页面很少的图片
谢谢分享啊,呵呵
家境小康, 积分 1196, 距离下一级还需 804 积分
论坛徽章:0
本帖最后由 chlinux 于
11:02 编辑
maochanglu
& & 这个说法我也不太同意啊,呵呵,经过几天的比较,现在看这样的组合更好些。
配置nginx+apache 其中动态由apache处理,静态由nginx处理
现在看,apache+php处理动态页面要比nginx+php要强,这样的结论和我之前帖出的实际运行结果相一致。
我打算安装一下apache2.4.1+php5.3.10来测试一下,据说是优化了内存使用的问题,具体如何还要测试后才知道。
丰衣足食, 积分 705, 距离下一级还需 295 积分
论坛徽章:0
顶!一直用惯了apache+mysql+php,希望apache给力!
白手起家, 积分 93, 距离下一级还需 107 积分
论坛徽章:0
& & 怎么会没有模拟并发的软件呢?你应该找找专业的测试人员或者运维人员,另外模拟软件没有,可以写并发测试程序,你可能只是一个php程序员吧,找个有服务器并发应用开发经验的程序员,跟你好好讲解一番。一天几百万pv,估计并发连接数不到一千,高峰期可能也就几千的并发,满足这点并发量的软件还是不少的。}

我要回帖

更多关于 nginx apache 区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信