Nginx는 502 잘못된 게이트웨이를 반환합니다.

Nginx는 502 잘못된 게이트웨이를 반환합니다.

일반적으로 다음과 같이 Nginx 웹 서버를 설정하려고 합니다.이 가이드하지만 사용페루시오 구성. 사이트에 접속하려고 하면 502 Bad Gateway 페이지가 나타납니다.

버그 검색을 해보니 몇몇 사람들이 이 버그를 신고하는 것을 봤습니다.fastcgi 버퍼 크기 설정이미 문제가 해결되었습니다. 그러나 이것은 나에게는 작동하지 않습니다. 내 오류 로그의 메시지는 명시된 것과 다르지만 다음과 같습니다.

2013/06/11 10:21:24 [info] 32684#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:181
2013/06/11 10:21:24 [alert] 32692#0: epoll_ctl(1, 0) failed (1: Operation not permitted)
2013/06/11 10:21:24 [alert] 32692#0: failed to register channel handler while initializing push module worker (1: Operation not permitted)
2013/06/11 10:21:24 [alert] 32691#0: epoll_ctl(1, 0) failed (1: Operation not permitted)
2013/06/11 10:21:24 [alert] 32691#0: failed to register channel handler while initializing push module worker (1: Operation not permitted)
2013/06/11 10:21:25 [alert] 32686#0: cache manager process 32691 exited with fatal code 2 and cannot be respawned

nginx이 오류를 검색해 보니 해당 오류와 통신이 없는 것 같습니다 php5-fpm. 실행 중임 을 확인했습니다 php5-fpm.

$ ps auxw | grep php
root       853  0.0  0.8 290416  4504 ?        Ss   10:21   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data   854  0.0  0.6 290416  3488 ?        S    10:21   0:00 php-fpm: pool www      
www-data   855  0.0  0.6 290416  3488 ?        S    10:21   0:00 php-fpm: pool www      
kyle       973  0.0  0.2   3824  1072 pts/0    S+   10:42   0:00 grep php

그리고 다음을 들어보세요:

$ netstat --unix -l
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     43115    /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     SEQPACKET  LISTENING     2674     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     4772     /var/run/fail2ban/fail2ban.sock
unix  2      [ ACC ]     STREAM     LISTENING     43450    /var/run/php5-fpm.sock
unix  2      [ ACC ]     STREAM     LISTENING     4792     @/tmp/fam-root-

광산에는 Unix 소켓을 통해 연결을 nginx.conf시도해야 하는 내용이 포함되어 있습니다 .upstream_phpcgi_unix.confphp5-fpm

## Add as many servers as needed. Cf. http://wiki.nginx.org/HttpUpstreamModule.
upstream phpcgi {
    ## If your version of Nginx doesn't have the fair load balancer:
    ## https://github.com/gnosek/nginx-upstream-fair comment out the
    ## following line.
    fair;
    server unix:/var/run/php-fpm.sock;
    server unix:/var/run/php-fpm-zwei.sock;
    ## Create a backend connection cache. Note that this requires
    ## Nginx version greater or equal to 1.1.4.
    ## Cf. http://nginx.org/en/CHANGES. Comment out the following
    ## line if that's not the case.
    keepalive 5;
}

## Add a third pool as a fallback.
upstream phpcgi_backup {
    server unix:/var/run/php-fpm-bkp.sock;
    ## Create a backend connection cache. Note that this requires
    ## Nginx version greater or equal to 1.1.4.
    ## Cf. http://nginx.org/en/CHANGES. Comment out the
    ## following line if that's not the case.
    keepalive 1;
}

또 무엇을 봐야 할까요?

답변1

.aptitude purgenginx​나는 또한 사용했다페루시오의 PHP-FPM구성 파일.

관련 정보