全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4881|回复: 44
打印 上一主题 下一主题

Lnmp 502原因 不喜勿喷

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-21 17:35:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
再次申明我只是小白,不喜勿喷

502 bad gateway
从字面意思理解就是网关不能到达,以及网关连接错误
会什么会出现网关这个词呢?我们来看看Nginx配置
server
        {
                listen       80;
                server_name ********;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/******;

                location ~ .*\.(php|php5)?$
                        {
                                fastcgi_pass  127.0.0.1:9000;
                                fastcgi_index index.php;
                                include fcgi.conf;
                        }


                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }

                log_format  ***  '$remote_addr - $remote_user [$time_local] $request '
             '$status $body_bytes_sent $http_referer '
             '$http_user_agent $http_x_forwarded_for';
        }

重点是加红部分
fastcgi_pass  127.0.0.1:9000;
这句是重点,pass?说明Nginx只是跟PHP一个代理的关系,而不是Nginx处理PHP,所以502是PHP的问题,不要再说是Nginx的问题了
不过,这种方式的确处理效率没Apache的快/稳定,已经成了公认的事实
虽然现在LNMP采用
fastcgi_pass  unix:/tmp/php-cgi.sock;
但是还是比不过apache
高并发尤其如此。

[ 本帖最后由 qiqi13245 于 2011-4-21 17:42 编辑 ]
45#
发表于 2011-4-21 22:55:48 | 只看该作者

回复 10# 的帖子

    球球 在QQ没 找你有事
44#
发表于 2011-4-21 22:50:26 | 只看该作者
502貌似跟内存也有关,我的一个VPS有段时间访问量大时经常出现502,加了几十M内存,立马好了
43#
 楼主| 发表于 2011-4-21 22:49:51 | 只看该作者
原帖由 observer 于 2011-4-21 22:01 发表


不试图说服你了,我觉得你的症结在于没有用一个好的FastCGI实现,也许你是直接裸用php-cgi的?
还是试试看php-fpm或者lighttpd的那个spawnfcgi吧

但是我体验的确如此,可能受硬件限制巴
晚点自己配置lnmp去
42#
发表于 2011-4-21 22:48:10 | 只看该作者
看不懂。。能懂了再来看
41#
发表于 2011-4-21 22:01:08 | 只看该作者
原帖由 qiqi13245 于 2011-4-21 21:53 发表

但是实际情况复杂,一般来说apache动态会>nginx,nginx小并发的请求时间很短的
apache处理比较大并发时候得心应手
亲身体验

apache类似一种比较庞大的文件,虽然速度比较慢,但是稳定,尤其大并发下,速度不会怎么变(CC除外)
而n ...


不试图说服你了,我觉得你的症结在于没有用一个好的FastCGI实现,也许你是直接裸用php-cgi的?
还是试试看php-fpm或者lighttpd的那个spawnfcgi吧
40#
 楼主| 发表于 2011-4-21 21:57:04 | 只看该作者
apache类似一种比较庞大的文件,虽然速度比较慢,但是稳定,尤其大并发下,速度不会怎么变(CC除外)几乎是不变的,除非全僵尸了
而nginx属于轻便型那种,小并发下很快,越大就会随着增长,而php-cgi我又不会配置动态进程,所以达到一定的时候列队会很长,就会导致502和504(应该说是那种成比例)

亲身体验,欢迎纠正
39#
发表于 2011-4-21 21:56:00 | 只看该作者
原帖由 qiqi13245 于 2011-4-21 21:46 发表
nginx配置中可以看出就是分开的,apache没分开,所以采用lanmp分开动静态,这就是apache的不足,502的原因就是反映问题,而nginx是根据后缀来判断,你可以放一个hello word的html改名成html,如果php存在并且列队已经满了, 就等待,等 ...


所以nginx最好还是配合php-fpm这种可以动态管理php进程数的FastCGI解释器来得妥当。

即使没有空余的php进程,php-fpm也可以动态地fork一个出来。不信的话lz试试看php-fpm吧,把max-child设得大一点,就应该不会有任何问题了。
38#
 楼主| 发表于 2011-4-21 21:53:33 | 只看该作者
原帖由 observer 于 2011-4-21 21:51 发表


所以其实说apache比nginx更加高并发是不对的,即使比纯php请求,两者应该也在伯仲之间,处理能力不会有太大差别。

wiki还是不错的,不过显然没有直接看文档了解得透彻,apache的文档没怎么看过,不过nginx的文档我是狠狠犁了 ...

但是实际情况复杂,一般来说apache动态会>nginx,nginx小并发的请求时间很短的
apache处理比较大并发时候得心应手
亲身体验

apache类似一种比较庞大的文件,虽然速度比较慢,但是稳定,尤其大并发下,速度不会怎么变(CC除外)
而nginx属于轻便型那种,小并发下很快,越大就会随着增长,而php-cgi我又不会配置动态进程,所以达到一定的时候列队会很长,就会导致502和504

亲身体验,欢迎纠正

[ 本帖最后由 qiqi13245 于 2011-4-21 21:56 编辑 ]
37#
发表于 2011-4-21 21:51:28 | 只看该作者
原帖由 qiqi13245 于 2011-4-21 21:43 发表

跟我在wiki上看得差不多,不瞒你说我都是翻wiki的


所以其实说apache比nginx更加高并发是不对的,即使比纯php请求,两者应该也在伯仲之间,处理能力不会有太大差别。

wiki还是不错的,不过显然没有直接看文档了解得透彻,apache的文档没怎么看过,不过nginx的文档我是狠狠犁了一遍,大致也就了解apache大概怎么做的了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-8 20:17 , Processed in 0.118098 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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