nginx no reenvía aguas arriba
Frecuentes
Visto 2,327 veces
1
Tengo un servidor de paster que está configurado para alojar varias aplicaciones con proxy nginx. Por alguna razón, parece que las solicitudes no se envían en sentido ascendente desde nginx. Recibo errores 404 en el cliente, y el único "error" que puedo encontrar en mis registros es la siguiente línea de nginx_error.log (que se genera aproximadamente una vez cada 5 segundos):
2012/06/12 10:29:37 [info] 22289#0: *49 el cliente cerró la conexión prematuramente al leer la línea de solicitud del cliente, cliente: 192.168.10.135, servidor: localhost
Un poco de tiempo de calidad en Google indica que este no es un problema que rompa la aplicación, pero es todo lo que tengo que hacer ahora.
nginx.access.log simplemente imprime la siguiente línea cada 5 segundos:
--[12/Jun/2012:10:31:13 -0400]-4000--
No se imprime ninguna entrada de las acciones del usuario en el registro de la aplicación, a pesar de que hay varios mensajes de registro en la aplicación.
Como referencia, mi nginx.cfg se ve así:
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;
}
}
}
La configuración de mi aplicación se ve así:
[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
¿Qué podría estar causando este problema? ¿Hay algún problema en mi configuración?
1 Respuestas
0
Cambié la forma en que procesaba mis archivos de configuración para usar argumentos pasados a mi fábrica de aplicaciones en lugar de analizar manualmente el archivo desde la aplicación. Por alguna razón que no entiendo en absoluto, esto parece haber resuelto el problema. @mikhailov, gracias por todo su tiempo y ayuda.
Respondido el 14 de junio de 12 a las 14:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas nginx python-2.7 paster or haz tu propia pregunta.
que es la salida de $ rizo 127.0.0.1:8001? - Anatoly
curl 127.0.0.1 da: Extraviado Extraviado No se pudo encontrar el recurso. / Servidor WSGI - Eric Hydrick
Cuando intento acceder al servicio de inicio de sesión directamente a través de curl 127.0.0.1:8001/v1/app/login (el primer servicio al que puede acceder y donde se vio este problema por primera vez), obtengo la respuesta correcta. - Eric Hydrick
en primer lugar, intente simplificar la configuración y obtenga el registro de error/acceso con algo: deje solo 1 ubicación proxy_pass, vincúlelo a la ubicación raíz y verifique todos los registros: Anatoly
Cambié la configuración a solo 1 proxy_pass y la configuré en "/", pero todavía no puedo obtener ninguna entrada de registro que no sea la que publiqué. - Eric Hydrick