유돌이

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2019. 9. 20. 09:48 유닉스*리눅스*SE

NGINX + PHP-FPM에서 502 BAD GATEWAY 에러 해결방법

 

방법1. nginx.conf 수정

 location ~ \.php$ {
           # With php7-fpm:
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 
          # 아래부터 버그 해결을 위해 추가해 주실 옵션입니다.
          # 502 에러를 없애기 위한 proxy 버퍼 관련 설정입니다.
          proxy_buffer_size               128k;
          proxy_buffers                   4 256k;
          proxy_busy_buffers_size         256k;
 
          # 502 에러를 없애기 위한 fastcgi 버퍼 관련 설정입니다.
          fastcgi_buffering               on;
          fastcgi_buffer_size             16k;
          fastcgi_buffers                 16 16k;
 
          # 최대 timeout 설정입니다.
          fastcgi_connect_timeout         600s;
          fastcgi_send_timeout            600s;
          fastcgi_read_timeout            600s;
 
          # 이 아래 설정은 PHP 성능 향상을 위한 옵션입니다. 추가해 주시면 좋습니다.
          sendfile                        on;
          tcp_nopush                      off;
          keepalive_requests              0;

 

방법 2.  nginx의 설정 파일과 php-fpm 설정 파일의 소켓 일치시키기

– 간혹 nginx의 설정 안에서의 ‘fastcgi-pass’ 경로와, php-fpm 설정 파일의 listen 경로가 다른 경우, 502 Bad gateway 에러가 나타나는 경우가 있다고도 합니다. 이런 경우에는 PHP를 불러오는 대다수의 경우의 에러가 발생하는 경우가 많습니다.

– 먼저 nginx 설정 파일에서 PHP를 처리하는 부분의, fastcgi-pass 값을 확인하여 PHP-fpm sock 파일이 정상적으로 위치해 있는지 확인합니다. (없는 경우에는, sock 파일을 찾아서 적당한 경로로 입력해 주어야 합니다. 많은 경우에는 /var/ 디렉토리 안에서 php 관련 폴더 안에 위치하고 있습니다.)

 

방법3.  php-fpm 설치 후 php-fpm을 실행하지 않은 경우

   php-fpm 실행   

 

posted by 유돌이