Não é uma boa idéia veicular diretamente o aplicativo na porta 80. É muito melhor ter um servidor HTTP padrão escutando na porta 80 e encaminhando solicitações para o servidor WSGI do aplicativo Python (Flask).
Você deve configurar o nginx para enviar todos os pedidos de app.example.com para o seu WSGI (Python Application Server). Dessa forma, as solicitações do link serão veiculadas diretamente pelo nginx e todas as solicitações para o host virtual app.example.com:80 serão encaminhadas para seu servidor de aplicativos Python. Dependendo da sua preferência, você pode executar seu aplicativo Python / Flask usando uWSGI ou gunicorn.
Para configurar o app.example.com como um host virtual, você precisará criar um arquivo (por exemplo, /etc/nginx/sites-available/app.example.com
se você estiver usando uma distribuição baseada no Debian) que conterá algo como isto:
server {
server_name app.example.com;
access_log /var/log/nginx/app-access.log;
error_log /var/log/nginx/app-error.log;
location /static {
root /var/www/app.example.com/static; # adjust to fit your path here
}
location / {
uwsgi_pass unix:/tmp/uwsgi_app.sock;
include /etc/nginx/conf.d/uwsgi_params;
}
}
O conteúdo da seção location /
precisa ser ajustado, dependendo do servidor WSGI específico que você escolher usar - veja abaixo.
Em seguida, você precisa ligar simbolicamente a nova configuração do host virtual aos sites habilitados e reiniciar o nginx:
ln -sf /etc/nginx/sites-available/app.example.com /etc/nginx/sites-enabled/
/etc/init.d/nginx restart
Consulte este documento para obter mais informações sobre como configurar o nginx para servir vários sites (hosts virtuais) no mesmo endereço IP e na porta TCP .
Aqui estão duas entradas de blog descrevendo como configurar o nginx com o uWSGI: Implantando Frasco Com Nginx e uWSGI Configurando o Flask com nginx e uWSGI . Se você preferir gunicorn (uma porta Python WSGI do servidor de aplicativos unicorn de Ruby), você pode verificar essa pergunta SO: Executando um aplicativo Flask com nginx e gunicorn e Servindo aplicações em frascos com Nginx e gunicorn