Por que o cookie de sessão funciona ao veicular em um domínio, mas não ao usar um IP?

Eu tenho um aplicativo Flask com sessões que funcionam bem na minha máquina de desenvolvimento local. No entanto, quando tento implantá-lo em um servidor Amazon, as sessões parecem não funcionar.

Mais especificamente, o cookie da sessão não está definido. No entanto, posso definir cookies normais. Verifiquei se tenho uma chave segura estática, pois outros indicaram que isso pode ser um problema. A única diferença está na forma como o servidor está configurado. Durante o desenvolvimento, eu uso

app.run()

para executar localmente. Quando implantado, eu uso

app.config['SERVER_NAME'] = '12.34.56.78'  # <-- insert a "real" IP
app.run(host='0.0.0.0', port=80)

Suspeito que o problema possa estar acima, mas não tenho certeza.

A sessãofaz parece funcionar no Firefox, mas não no Chrome.

O aplicativo pequeno a seguir demonstra o problema, com as diferenças de configuração na parte inferior:

from flask import Flask, make_response, request, session

app = Flask(__name__)
app.secret_key = 'secretKey'

# this is to verify that cookies can be set
@app.route('/setcookie')
def set_cookie():
    response = make_response('Cookie set')
    response.set_cookie('cookie name', 'cookie value')
    return response

@app.route('/getcookie')
def get_cookie():
    if 'cookie name' in request.cookies:
        return 'Cookie found. Its value is %s.' % request.cookies['cookie name']
    else:
       return 'Cookie not found'

# this is to check if sessions work
@app.route('/setsession')
def set_session():
    session['session name'] = 'session value'
    return 'Session set'

@app.route('/getsession')
def get_session():
    if 'session name' in session:
        return 'Session value is %s.' % session['session name']
    else:
        return 'Session value not found'

if __name__ == '__main__':
    app.debug = True

    # windows, local development
    #app.run()  

    # Ubuntu
    app.config['SERVER_NAME'] = '12.34.56.78'  # <-- insert a "real" IP
    app.run(host='0.0.0.0', port=80)

questionAnswers(3)

yourAnswerToTheQuestion