У меня есть сервер 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
Что может быть причиной этой проблемы? Есть ли проблема в моей конфигурации?
Что такое вывод ** $ curl http://127.0.0.1:8001**? – Anatoly
локон 127.0.0.1 дает:
Не найдено
Ресурс не может быть найден.
/ <- определенные приложения: (None, '/ v1/приложение') SCRIPT_NAME: '' PATH_INFO: '/' HTTP_HOST: '127.0.0.1:8001' ->
Когда я пытаюсь получить доступ к службе входа непосредственно через curl 127.0.0.1:8001/v1/app/login (первая услуга, с которой вы можете добраться, и где эта проблема была впервые замечена), я получаю правильный ответ. –