2015-12-25 6 views
1

Я использую библиотеку запросов python для разговора между двумя моими приложениями (django и ckan) внутри Azure VM (чистый ubuntu 12.04).Python Requests + Azure VM

И появляется очень связанная проволокой ошибка. Похоже, request.post отправлен успешно, но в середине моего кода я получил 504 request timeout.

Apache2, Nginx и Gunicorn (только тайм-аут) журналы чисты. Моя CKAN приложение бросает ту же ошибку, но с разными портами:

CKAN например, ошибка 1:

Exception happened during processing of request from ('127.0.0.1', 53555) 
Traceback (most recent call last): 
    File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/httpserver.py", line 1068, in process_request_in_thread 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__ 
    self.finish() 
    File "/usr/lib/python2.7/SocketServer.py", line 693, in finish 
    self.wfile.flush() 
    File "/usr/lib/python2.7/socket.py", line 303, in flush 
    self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 32] Broken pipe 

CKAN пример ошибки 2:

---------------------------------------- 
Exception happened during processing of request from ('127.0.0.1', 53344) 
Traceback (most recent call last): 
    File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/httpserver.py", line 1068, in process_request_in_thread 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__ 
    self.finish() 
    File "/usr/lib/python2.7/SocketServer.py", line 693, in finish 
    self.wfile.flush() 
    File "/usr/lib/python2.7/socket.py", line 303, in flush 
    self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 32] Broken pipe 
---------------------------------------- 

Как вы можете видеть порт всегда разные. Одна из моих мыслей - Azure закрыла все порты, если вы не укажете, какой из них вы хотите открыть.

У меня такая же база кода работает нормально локально.

+0

Да, по умолчанию Azure linux VM отключает все порты, кроме 22, чтобы предотвратить входящие запросы из Интернета. вы можете попытаться указать порт приложения Django и настроить конечную точку другой виртуальной машины с помощью ckan. –

ответ

0

По умолчанию Azure linux VM отключает все порты, кроме 22, чтобы предотвратить входящие запросы из Интернета. вы можете попытаться указать порт приложения Django и настроить конечную точку другой виртуальной машины с помощью ckan.

Кроме того, вы можете обратиться к https://github.com/Azure/azure-content/blob/master/articles/virtual-machines/virtual-machines-python-django-web-app-linux.md, чтобы развернуть свое приложение django на apache и связать его на 80-м порту вашей виртуальной машины.