Ubuntu 14.04 nginx 502 bad getaway 처리 및 최적화

8888 단어 nginx502
오류 정보 보기
  • nginx 502 bad getaway 가 발생 한 후 nginx 오류 정보 보기
  • sudo vi /etc/nginx/sites-available/default
    2015/01/15 23:36:50 [error] 1924#0: *27095 connect() to unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: xxx.xxx.xxx.xxx,...

    이런 잘못된 소식 은 수백 줄 이 있다.PHP - fpm. sock 에 연결 하 는 데 실 패 했 기 때문이다.이 자원 (PHP - fpm. sock) 은 당분간 사용 할 수 없다 고 합 니 다.이것 은 그것 이 갈수 록 높 은 부하 라 는 것 을 의미한다.높 은 부하 상황 에서 의 문 제 는 잘 알려 져 있다.
    해결 방안
    TCP / IP 비용 이 없 는 직접 네트워크 접속 을 제공 하기 때문에 유 닉 스 소켓 을 사용 하 는 것 이 조금 빠 릅 니 다.불리 한 점 은 TCP / IP 처럼 신축 할 수 있 는 것 이 아 닙 니 다.sockets 가 얼마 남지 않 은 Nginx 는 502 오 류 를 일 으 킬 것 입 니 다.이 경우 더 큰 연결 탱크 에 적응 하거나 TCP / IP 로 전환 하기 위해 운영 체제 설정 을 조정 할 수 있 습 니 다.
    2. php 5 + nginx: 유 닉 스 소켓 에서 TCP / IP 로 전환
    1. PHP - FPM 풀 설정 파일 열기:
    sudo vi /etc/php5/fpm/pool.d/www.conf

    2. 다음 줄 을 검색 하고 설명 을 취소 합 니 다.
    listen.backlog = 65536

    3. 현재 아래 줄 을 검색
    listen = /var/run/php5-fpm.sock

    다음 과 같이 바 꿉 니 다.
    listen = 127.0.0.1:9000

    4. 변 경 된 php - fpm 의 현재 완료.그래도 해 야 할 Nginx 가상 호스트 설정 입 니 다.가상 호스트 파일 열기 다음 명령
    sudo vi /etc/nginx/sites-available/default

    아래 줄 을 찾 아 라.
    fastcgi_pass unix:/var/run/php5-fpm.sock;

    다음 과 같이 바 꿉 니 다.
    fastcgi_pass 127.0.0.1:9000;

    5. 현재 php 5 - fpm 와 nginx 를 다시 시작 합 니 다.
    sudo service php5-fpm restart
    sudo service nginx restart

    참고:https://tjosm.com/4056/fix-nginx-502-bad-getaway-error-ubuntu/ https://tjosm.com/4068/switch-tcpip-from-unix-socket-nginx/
    3. 마지막 으로 아래 에 있 는 리 눅 스 의 sysctl value 를 잊 지 마 세 요.
    1. sysctl. conf 편집 열기
    sudo vi /etc/sysctl.conf

    다음 설정 코드 를 추가 하여 sysctl. conf 파일 아래쪽 에 추가 합 니 다.
    
    vm.dirty_background_ratio = 2
    
    ### GENERAL NETWORK SECURITY OPTIONS ###
    
    # Number of times SYNACKs for passive TCP connection.
    net.ipv4.tcp_synack_retries = 2
    
    # Allowed local port range
    net.ipv4.ip_local_port_range = 2000 65535
    
    # Protect Against TCP Time-Wait
    net.ipv4.tcp_rfc1337 = 1
    
    # Decrease the time default value for tcp_fin_timeout connection
    net.ipv4.tcp_fin_timeout = 15
    
    # Decrease the time default value for connections to keep alive
    net.ipv4.tcp_keepalive_time = 300
    net.ipv4.tcp_keepalive_probes = 5
    net.ipv4.tcp_keepalive_intvl = 15
    
    ### TUNING NETWORK PERFORMANCE ###
    
    # Default Socket Receive Buffer
    net.core.rmem_default = 31457280
    
    # Maximum Socket Receive Buffer
    net.core.rmem_max = 12582912
    
    # Default Socket Send Buffer
    net.core.wmem_default = 31457280
    
    # Maximum Socket Send Buffer
    net.core.wmem_max = 12582912
    
    # Increase number of incoming connections
    net.core.somaxconn = 4096
    
    # Increase number of incoming connections backlog
    net.core.netdev_max_backlog = 65536
    
    # Increase the maximum amount of option memory buffers
    net.core.optmem_max = 25165824
    
    # Increase the maximum total buffer-space allocatable
    # This is measured in units of pages (4096 bytes)
    net.ipv4.tcp_mem = 65536 131072 262144
    net.ipv4.udp_mem = 65536 131072 262144
    
    # Increase the read-buffer space allocatable
    net.ipv4.tcp_rmem = 8192 87380 16777216
    net.ipv4.udp_rmem_min = 16384
    
    # Increase the write-buffer-space allocatable
    net.ipv4.tcp_wmem = 8192 65536 16777216
    net.ipv4.udp_wmem_min = 16384
    
    # Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks
    net.ipv4.tcp_max_tw_buckets = 1440000
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1

    2. 아래 명령 을 실행 하여 sysctl 에 대한 변경 사항 을 불 러 옵 니 다.
    sysctl -p

    참고:https://easyengine.io/tutorials/php/fpm-sysctl-tweaking/ https://easyengine.io/tutorials/linux/sysctl-conf/

    좋은 웹페이지 즐겨찾기