全球主机交流论坛

标题: 高资源占用,高并发的动态网站,用Apache如何优化? [打印本页]

作者: ixbear    时间: 2010-11-6 10:23
标题: 高资源占用,高并发的动态网站,用Apache如何优化?
如题,打算放弃nginx了,老出现502错误。偶把max_chirdren设为80了,还在502
作者: winsock    时间: 2010-11-6 10:24
apache的机制不适合大并发,除非多机做dns轮询
作者: cnweb    时间: 2010-11-6 10:25
呵呵 APACHE 最适合了。一般就菜鸟级别的玩玩NGINX

[ 本帖最后由 cnweb 于 2010-11-6 10:26 编辑 ]
作者: wfqvip    时间: 2010-11-6 10:26
看来还是apache稳定性好
作者: zllovesuki    时间: 2010-11-6 10:27
前端Nginx,后端Apache

不过不是简单地proxy到apache,而是将php的处理handle变成apache,就是Nginx原先是用PHP-CGI处理PHP,现在是用apache

具体方法我还在整理
作者: ixbear    时间: 2010-11-6 10:27
原帖由 winsock 于 2010-11-6 10:24 发表
apache的机制不适合大并发,除非多机做dns轮询


那用哪个?推荐一下
作者: wfqvip    时间: 2010-11-6 10:28
标题: 回复 5# 的帖子
Nginx和apache能共存吗
作者: zllovesuki    时间: 2010-11-6 10:31
原帖由 wfqvip 于 2010-11-6 10:28 发表
Nginx和apache能共存吗


可以共存,不同端口就是了
作者: wzwen    时间: 2010-11-6 10:31
我的很多站都在用apache

不过流量很小,暂时不需要优化。。。

无法研究测试……
作者: zllovesuki    时间: 2010-11-6 10:33
location ~ .*\.(php|php5)?$
                {
                        fastcgi_pass  unix:/tmp/php-cgi.sock;
                        fastcgi_index index.php;
                        include fcgi.conf;
                }

把fast-cgi后面一堆东西改成proxy_pass就是了,记得改apache的配置文件

另外,如果是像WP那样的Rewrite不涉及.php的话,还要:

location / {
                        if (!-f $request_filename){
                                set $rule_0 1$rule_0;
                        }
                         if (!-d $request_filename){
                                set $rule_0 2$rule_0;
                        }
                        if ($rule_0 = "21"){
                                proxy_pass 这样同样
                        }
                }
作者: wfqvip    时间: 2010-11-6 10:35
标题: 回复 10# 的帖子
有点复杂,期待出个完整教程
作者: zllovesuki    时间: 2010-11-6 10:36
原帖由 wfqvip 于 2010-11-6 10:35 发表
有点复杂,期待出个完整教程


懒得整理。。周末N多作业...
作者: winsock    时间: 2010-11-6 10:36
原帖由 ixbear 于 2010-11-6 10:27 发表


那用哪个?推荐一下

纯php我基本是lighttpd+spawnfcgi,15个php fcgi进程.我流量不大,不过爬虫猛爬也没爬死过.......

linux 2.6以后,异步大并发无非是epoll,静态文件无非是sendfile,像nginx,lighttpd,lightspeed这些都是这条路子。apache历史包裹背太多了,什么都自己实现,fork虽然是写时复制,同时处理多了各方面消耗也都上去了,高并发这方面,apache已经全面出局了
作者: zllovesuki    时间: 2010-11-6 10:40
原帖由 winsock 于 2010-11-6 10:36 发表

纯php我基本是lighttpd+spawnfcgi,15个php fcgi进程.我流量不大,不过爬虫猛爬也没爬死过.......

linux 2.6以后,异步大并发无非是epoll,静态文件无非是sendfile,像nginx,lighttpd,lightspeed这些都是这条路子。apache ...


高并发还是nginx,只不过是被php-cgi拖了后腿。

不过与PHP程序的优化有关。即使你的Web Server多好,如果你的PHP程序用到数据库,例如MySQL,高并发的时候显然性能瓶颈在MySQL。我现在我的站都用Memcached来缓存,被人CC了都不怕,有Apache挡住。
作者: winsock    时间: 2010-11-6 10:46
嗯。。普通web应用并发也不可能太厉害。。。我怀疑很多情况下502是因为fcgi动态进程导致的。。。我用spawn-fcgi都是开的固定进程数。。。。
作者: ixbear    时间: 2010-11-6 10:51
原帖由 winsock 于 2010-11-6 10:46 发表
嗯。。普通web应用并发也不可能太厉害。。。我怀疑很多情况下502是因为fcgi动态进程导致的。。。我用spawn-fcgi都是开的固定进程数。。。。


求教 如何换用spawn-fcgi
作者: winsock    时间: 2010-11-6 11:48
原帖由 ixbear 于 2010-11-6 10:51 发表


求教 如何换用spawn-fcgi


我没用过php-fpm,不过应该差不多的吧

启动就是 spawn-fcgi -f php-cgi -a 127.0.0.1 -p 9999 -C 15 -P /tmp/php.pid -u username -g group

关闭就是kill `cat /tmp/php.pid`
作者: okyok    时间: 2010-11-6 11:50
把PHP限制放宽点没问题的
作者: vclove    时间: 2010-11-6 16:04
内存够用的话把PHP超时自动挂死去掉试试。
作者: aru    时间: 2010-11-6 16:34
做小偷站或者采集容易出现502的现象。
楼主还是仔细检查下自己的程序,主要请求的完成时间,尽量保证每个php请求在 0.0x 秒内完成。
推荐用 ab 来测试
ab -n 1000 -c 3 网站地址
如果发现太慢就考虑有没有办法优化,如果优化不了,买更大内存的服务器,开更多的cgi进程
作者: leven    时间: 2010-11-6 16:39
用nginx的总是抱怨502,其实这部分往往是配置或者程序自身问题。




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4