3

Nginx 1.0.6, Passenger 3.0.9, Rails 3.1.1, Ruby 1.9를 실행 중입니다. 내 생산 환경에서 내 nginx_error.log 파일에 다음과 같은 간헐적 인 경고를보고 오전 : 업스트림 응답이 가 버퍼링 * 474 :여객 및 Nginx => 502 잘못된 게이트웨이 오류

2011/11/22 14시 44분 40초 23288 # 0 [경고] 클라이언트 : 69.172.88.178, 서버 : www.memverse.com, 요청 : "GET/show_all_my_verses HTTP/1.1", 업스트림 : 임시 파일/opt/nginx/proxy_temp/2/00/0000000002 승객 : 유닉스/passenger_helper_server : "호스트 : "www.memverse.com ", 참조 자"http://www.memverse.com/quick_add/7352 "

및 덜 빈번 502 잘못된 게이트웨이로 연결 다음 오류 :

2011년 11월 21일 15시 35분 20초 2,118 # 0 [오류]로부터 응답 헤더를 읽는 동안 60,762 * 상류 조기 연결을 종료 웹 사이트 :74.125.44.84, 서버 : www.memverse.com, 요청 : "GET/blogs/feed/9 HTTP/1.1", 업스트림 : "승객 : memverse.com "

나는 Passenger와 Nginx 문서를 모두 크롤링했으며 nginx.conf 파일의 거의 모든 설정을 조정했지만 아무런 효과가 없습니다. 나는 누군가가 적어도 올바른 방향으로 나를 가리킬 수 있기를 바라고 있습니다. 내가 지금 너무 도움이 많이 이해할 수있을 것이다 며칠 동안이 문제에 난처한 상황에 빠진 봤는데

user root; 
worker_processes 4; 

error_log logs/error.log error; # debug | info | notice | warn | error | crit 
pid  logs/nginx.pid; 

events { 
    worker_connections 1024; # max_clients = worker_processes * worker_connections 
} 


http { 
    include  mime.types; 
    default_type application/octet-stream; 

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

    access_log logs/access.log main; 

    sendfile  on; 

    keepalive_timeout 65; 

    # Configure Passenger 
    passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9; 
    passenger_ruby /usr/local/bin/ruby; 

    passenger_log_level 1; 
    passenger_debug_log_file /home/avitus/logs/passenger.log; 

    rails_framework_spawner_idle_time 0; 
    rails_app_spawner_idle_time 0; 

    passenger_pool_idle_time 0; 
    passenger_use_global_queue on; 
    passenger_max_pool_size 15; 

    server { 
     listen 80; 
     server_name www.pariday.com pariday.com; 
     root /home/avitus/pariday.com/current/public; 
     access_log /home/avitus/pariday.com/current/log/nginx_access.log main; 
     error_log /home/avitus/pariday.com/current/log/nginx_error.log info; 
     passenger_enabled on; 
    } 

    server { 
     listen 80; 
     server_name www.assetcorrelation.com assetcorrelation.com; 
     root /home/avitus/assetcorrelation.com/current/public; 
     access_log /home/avitus/assetcorrelation.com/current/log/nginx_access.log main; 
     error_log /home/avitus/assetcorrelation.com/current/log/nginx_error.log info; 
     passenger_enabled on; 
    } 

    server { 
     listen  80; 
     server_name localhost; 

     location/{ 
      root html; 
      index index.html index.htm; 
     } 
    } 
} 

:

다음은 내 nginx.conf입니다. 솔직하게 말해서, 누군가이 두 경고/오류가 무엇을 의미하는지 설명 할 수 있다면 그것은 도움이 될 것입니다.

+0

이것을 알아 냈습니까? – AnApprentice

답변

6

제 문제 ("상류 응답 임시 파일에 버퍼링")은 다음과 같이 버퍼 크기를 증가시킴으로써 해결 된 콘텐츠의 많은 일부 페이지가 발생 하였다 :

proxy_buffers 8 16k; 
proxy_buffer_size 32k; 
passenger_buffers 8 16k; 
passenger_buffer_size 32k; 

번째 문제 ('업스트림에서 응답 헤더를 읽는 중'업스트림 조기 종료 연결 ')은 서버의 메모리를 늘리고 Passenger를 보수적 인 스폰 모드로 전환하여 해결되었습니다. (백그라운드 작업을 실행하려고했던 오래된 루비 보석을 사용하는 것과 밀접하게 관련되어있는 것 같습니다.)

관련 문제