2012-06-12 4 views
1

У меня есть сервер paster, который настроен для размещения нескольких приложений с прокси-сервером nginx. По какой-то причине кажется, что запросы не отправляются вверх по течению от nginx. Я получаю 404 ошибки назад в клиенте, и только «ошибка» я могу найти в моих журналах является следующая строка из nginx_error.log (генерируется примерно один раз каждые 5 секунд):nginx не переадресовывает вверх по течению

2012/06/12 10:29:37 [Информация] 22289 # 0 * 49 клиента закрыл преждевременно соединения при чтении клиента строки запроса, клиент: 192.168.10.135, сервера: локального

некоторое время на Google показывает, что это не проблема, связанная с приложением, но это все, что мне нужно сделать прямо сейчас.

nginx.access.log просто печатает следующую строку каждые 5 секунд:

- [12/Июнь/2012: 10: 31: 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 

Что может быть причиной этой проблемы? Есть ли проблема в моей конфигурации?

+0

Что такое вывод ** $ curl http://127.0.0.1:8001**? – Anatoly

+0

локон 127.0.0.1 дает: Не найдено

Не найдено

Ресурс не может быть найден.
/ <- определенные приложения: (None, '/ v1/приложение') SCRIPT_NAME: '' PATH_INFO: '/' HTTP_HOST: '127.0.0.1:8001' ->


WSGI Server

+0

Когда я пытаюсь получить доступ к службе входа непосредственно через curl 127.0.0.1:8001/v1/app/login (первая услуга, с которой вы можете добраться, и где эта проблема была впервые замечена), я получаю правильный ответ. –

ответ

0

Я изменил способ обработки своих файлов конфигурации для использования аргументов, переданных на мою фабрику приложений, а не вручную разбора файла из приложения. По какой-то причине я вообще не понимаю, похоже, это решило проблему. @mikhailov, спасибо за все ваше время и помощь.

Смежные вопросы