Nginx 502 bad gateway 오류 해결 방향
1. nginx 프로필 오류
nginx 에서 php - fpm 를 찾 을 수 없 기 때문에 잘못 보 고 했 습 니 다. 보통 fastcgi 입 니 다.pass 뒤의 경로 설정 이 잘못 되 었 습 니 다. 뒤쪽 은 socket 이나 ip: port 일 수 있 습 니 다.
해결 방안:
[root@bier ~]# vim/usr/local/nginx/conf/vhosts/www.conf
server
{
listen 80;
server_name www.222.com;
index index.html index.htm index.php;
root /data/www/;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/www.sock; // sock
#fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
}
문법 이 정상 인지 확인 합 니 다.
[root@bier ~]#/usr/local/nginx/sbin/nginx -t
프로필 다시 불 러 오기
[root@bier ~]# /usr/local/nginx/sbin/nginx-s reload
2, php - fpm 자원 소 진
Nmp 구조 가 phop 을 처리 할 때 nginx 는 백 엔 드 의 phop - fpm 서 비 스 를 직접 호출 합 니 다. nginx 의 요 구 량 이 높 으 면 phop - fpm 에 충분 한 하위 프로 세 스 를 설정 하지 않 았 습 니 다. 그러면 phop - fpm 는 자원 이 다 소모 되 고 nginx 가 phop - fpm 를 찾 지 못 하면 502 오류 가 발생 합 니 다.
해결 방안:
pp - fpm. conf 의 pm. max 를 조정 합 니 다.children 수 치 를 증가 시 킬 수 있 지만 무한 증가 할 수 없습니다. 자원 이 유한 하기 때문에 일반 4G 메모리 기기 가 phop - fpm 와 nginx 를 달리 면 my sql 을 뛰 지 않 으 면 150, 8G 는 300 으로 설정 할 수 있 습 니 다.
[root@bier ~]# vim/usr/local/php/etc/php-fpm.conf
pm = dynamic
pm.max_children = 150
pm.start_servers = 20
php 실행 시간 제한 php - fpm. conf 에 있 는 requestterminate_timeout 설정, phop 프로그램의 bug 로 인해 phop - cgi 가사 가 발생 하 는 것 을 방지 하기 위해 서 입 니 다.
설정 후 php - fpm 다시 시작
[root@bier ~]# /etc/init.d/php-fpm restart
3. phop - fpm. conf 파일 은 nginx 의 주 와 그룹 이 아 닙 니 다.
해결 방안:
nginx 가 그 사용자 가 달 렸 는 지 확인 합 니 다.
[root@bier ~]# ps aux |grep nginx
php - fpm 파일 을 편집 하려 면 이 php - fpm 파일 에 nginx 의 사용자 주 를 설정 해 야 합 니 다. 그룹 과 함께 해 야 502 가 표시 되 지 않 습 니 다.
[root@bier ~]# vim/usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log =/usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock
user = php-fpm
group = php-fpm
listen.owner = nobody // nginx
listen.group = nobody // nginx
4. 유량 * * 로 인해 (완전히 * * 로 인해 발생 할 수 있 습 니 다. * * 를 처리 하면 정상적으로 열 립 니 다)
php - cgi 가 실행 중인 지 확인 하기
때로는 사이트 트 래 픽 이 너무 많 거나 다른 원인 으로 인해 phop - cgi 가 직접 다운 되 기 때문에 phop - cgi 가 실행 되 고 있 는 지 확인 해 야 합 니 다.다음 명령 을 실행 합 니 다:
ps -A | grep php5-cgi
실행 되 지 않 으 면 수 동 으로 시작 합 니 다.
/etc/init.d/php_cgi start
5. FastCGI 가 너무 오래 실 행 됨
실제 상황 에 따라 아래 매개 변수 값 을 높이다.
fastcgi_connect_timeout 200;
fastcgi_send_timeout 200;
fastcgi_read_timeout 200;
6. 위의 몇 가지 상황 을 제외 하고 다른 원인 도 있 지만 많 지 않 습 니 다. nginx 의 오류 로 그 를 통 해 조사 할 수 있 습 니 다.
vim /usr/local/nginx/logs/nginx_error.log 이것 도 가장 직관 적 으로 잘못된 정 보 를 찾 을 수 있다.
다음으로 전송:https://blog.51cto.com/chenshoubiao/1841654
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.