1

nginxプロキシを使用して複数のアプリケーションをホストするように設定されたパスターサーバーがあります。何らかの理由で、リクエストがnginxからアップストリームに送信されていないようです。クライアントで404エラーが返されます。ログで確認できる唯一の「エラー」は、nginx_error.logの次の行です(約5秒に1回生成されます)。

2012/06/12 10:29:37[情報]22289#0:* 49クライアントがクライアント要求行の読み取り中に接続を途中で閉じました、クライアント:192.168.10.135、サーバー:localhost

グーグルでの質の高い時間は、これがアプリケーションを壊す問題ではないことを示していますが、私が今続けなければならないのはそれだけです。

nginx.access.logは、5秒ごとに次の行を出力します。

-[2012年6月12日:10:3​​1:13 -0400]-4000--

アプリケーションにいくつかのログメッセージがあるにもかかわらず、ユーザーアクションからのエントリはアプリケーションログに出力されません。

参考までに、私のnginx.cfgは次のようになります。

daemon             off; 
error_log          /APP_DIRECTORY/logs/nginx_error.log info; 
pid                /APP_DIRECTORy/var/nginx.pid; 
worker_processes   1;  
working_directory  /APP_DIRECTORY/var/;  

events {
  worker_connections 1024; 
}


http {   
  # the three parameters for *_temp_path MUST be here or nginx will not start   
  client_body_temp_path /APP_DIRECTORY/var/lib/nginx/body;   
  proxy_temp_path       /APP_DIRECTORY/var/lib/nginx/proxy;   
  fastcgi_temp_path     /APP_DIRECTORY/var/lib/nginx/fastcgi;   
  include               /etc/nginx/mime.types;   
  default_type          application/octet-stream;  

  log_format            main $http_x_forwarded_for - [$time_local] "$request" $status $body_bytes_sent  "$http_referer" "$http_user_agent";  
  sendfile              on;   
  keepalive_timeout     0;   
  tcp_nodelay           on;  

  gzip                  on;   
  Gzip_proxied          any;   
  gzip_types            text/plain text/html application/json application/xml;

  upstream app_paste {
    server 127.0.0.1:8001;
    #server 127.0.0.1:8002;
    #server 127.0.0.1:8003;
    #server 127.0.0.1:8004;
    #server 127.0.0.1:8005;
    #server 127.0.0.1:8006;
    #server 127.0.0.1:8007;
    #server 127.0.0.1:8008;
    #server 127.0.0.1:8009;
    #server 127.0.0.1:8010;
    #server 127.0.0.1:8011;
    #server 127.0.0.1:8012;   
  }

  server {
    listen 8000;
    server_name localhost;
    access_log /app_DIRECTORY/logs/nginx.access.log main;

    location /crossdomain.xml {
      root /APP_DIRECTORY/www;
    }

    location /v1 {
      proxy_pass http://app_paste;
    }

    location /v2 {
      proxy_pass http://app_paste;
    }   
  } 
}

私のアプリケーション構成は次のようになります。

[DEFAULT]  
loglevel = INFO  
beaker.session.cookie_expires = true  
beaker.session.lock_dir = .
beaker.session.type = mongodb  
beaker.session.url = mongodb://MONGO_HOST:MONGO_PORT/beaker.sessions?slaveok=true  
beaker.session.skip_pickle = true  

[composite:main]  
use = egg:Paste#urlmap  
/v1/cust1 = cust1  

[app:cust1]  
paste.app_factory = appservice.main:make_app  
company = customer1  
db_host = DB_HOST  
db_port = DB_PORT  
db_name = DB_NAME  
DATA_COLLECTION = customer_data  
USERS_COLLECTION = customer_users  
REPORT_PARAM_1 = REPORT_PARAM_1_DATA  
REPORT_PARAM_2 = REPORT_PARAM_2_DATA  
REPORT_PARAM_3 = REPORT_PARAM_3_DATA  
REPORT_PARAM_4 = REPORT_PARAM_4_DATA  
REPORT_PARAM_5 = REPORT_PARAM_5_DATA  
REPORT_PARAM_6 = REPORT_PARAM_6_DATA  

[server:main]  
use = egg:Paste#http    
host = 0.0.0.0  
port = %(app_port)s

この問題の原因は何ですか?構成に問題がありますか?

4

1 に答える 1

0

アプリからファイルを手動で解析するのではなく、アプリファクトリに渡された引数を使用するように構成ファイルの処理方法を変更しました。どういうわけか全くわからないのですが、これで問題は解決したようです。@mikhailov、いつもあなたの時間と助けに感謝します。

于 2012-06-14T13:05:57.937 に答える