uWSGI Retornando a resposta vazia

8

Eu tenho um site do Django que estou tentando servidor via uWSGI. Eu iniciei o servidor assim:

uwsgi --emperor .
Ctrl+Z
bg 1

(Existem dois arquivos .ini que apontam para a versão de teste e versão de produção do site, servindo em 9001 e 9002, respectivamente)

Eu, então, tento obter meu site:

curl http://localhost:9002

Quando faço isso, recebo uma mensagem dizendo que o vassel é leal, mas sem resposta real. O uwsgi.log então contém o seguinte:

[pid: 5071|app: 0|req: 2/2] 127.0.0.1 () {26 vars in 357 bytes} [Tue Jul 23 13:20:21 2013] GET / => generated 0 bytes in 1 msecs (HTTP/1.1 302) 2 headers in 96 bytes (1 switches on core 1)

Nenhum erro é registrado.

Eu devo dizer, isso funcionou bem antes de uma reinicialização, então os arquivos uwsgi.ini devem ficar bem.

Alguma idéia de onde devo começar a diagnosticar isso?

    
por d4nt 23.07.2013 / 14:28

1 resposta

6

Eu tive o problema, descobri que meu aplicativo wsgi estava retornando UNICODE em vez de BYTE STRINGS (eu estava em python3); e nada mostrou em logs sobre isso ... O WSGI espera cadeias de bytes na saída, nunca em unicode.

No possível de chamar do seu aplicativo, em vez de return "string" , você deve usar return b"string" ou return "string".encode("utf-8")

def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    # One of the below can be used.
    return "string".encode("utf-8")
    return b"string"

Você pode verificar o link para obter mais informações sobre como usar uwsgi com python3 .

    
por 13.07.2014 / 23:58

Tags