Hospedando Django com Nginx e Gunicorn no Linux
- 3563
- 72
- Enrique Crist
Introdução
A hospedagem de aplicativos da Web do Django é bastante simples, embora possa ficar mais complexo do que um aplicativo PHP padrão. Existem algumas maneiras de lidar com a interface Django com um servidor da web. Gunicorn é facilmente um dos mais simples.
Gunicorn (abreviação de unicórnio verde) atua como no servidor intermediário entre o seu servidor da web, o nginx neste caso e o próprio Django. Ele lida com servir o próprio aplicativo enquanto o nginx capta o conteúdo estático.
Gunicorn
Instalação
Instalar o Gunicorn é super fácil com o PIP. Se você já configurou seu projeto de Django usando o VirtualEnv, você tem PIP e deve estar familiarizado com a maneira como funciona. Então, instale o Gunicorn em seu virtualenv.
$ pip install gunicorn
Configuração
Uma das coisas que faz do Gunicorn uma escolha atraente é a simplicidade de sua configuração. A melhor maneira de lidar com a configuração é criar um Gunicorn
Pasta no diretório raiz do seu projeto Django. Dentro dessa pasta, crie um arquivo de configuração.
Para este guia, será chamado Gunicorn-Conf.py
. Nesse arquivo, crie algo semelhante à configuração abaixo.
importar multiprocessamento bind = 'unix: /// tmp/gunicorn1.Sock 'Workers = Multiprocessing.cpu_count () * 2 + 1 recarregar = true daemon = true
No caso da configuração acima, o Gunicorn criará um soquete Unix em /tmp/gunicorn1.meia
. Ele também aumentará vários processos de trabalhadores equivalentes ao dobro do número de núcleos da CPU mais um. Ele também recarregará automaticamente e será executado como um processo Daemonized.
Correndo
O comando para executar o Gunicorn é um pouco longo, mas possui opções de configuração adicionais especificadas nele. A parte mais importante é apontar a arma para o seu projeto .WSGI
arquivo.
Gunicorn -C Gunicorn/Gunicorn -Conf.py -d -terror -logfile gunicorn/erro.registre seu projeto.WSGI
O comando acima deve ser executado da raiz do seu projeto. Diz a Gunicorn para usar a configuração que você criou com o -c
bandeira. -D
mais uma vez especifica que deve ser daemonizado. A última parte especifica a localização do erro de Gunicorn por muito tempo no Gunicorn
pasta que você criou. O comando termina dizendo ao Gunicorn a localização do seu .WSGI
arquivo.
Nginx
Agora que o Gunicorn está configurado e em execução, você pode configurar o nginx para se conectar e servir seus arquivos estáticos. Este guia assumirá que você já está configurado e que está usando separado servidor
blocos para os sites hospedados através dele. Também vai incluir algumas informações SSL.
Se você quiser aprender a obter certificados SSL gratuitos para o seu site, dê uma olhada no nosso guia LetSencrypt.
# Configure a conexão com Gunicorn a montante YourProject-Gunicorn Server Unix:/tmp/Gunicorn1.meia falha_timeout = 0; # Redirecionar tráfego não criptografado para o servidor de sites criptografado ouça 80; Server_name YourWebsite.com; retornar 301 https: // yourwebsite.com $ request_uri; # O servidor principal do servidor servidor # Defina a porta para ouvir e especificar o domínio para ouvir para ouvir 443 SSL padrão; client_max_body_size 4G; Server_name YourWebsite.com; # Especifique os locais de log access_log/var/log/nginx/yourwebsite.access_log main; error_log/var/log/nginx/yourwebsite.error_log info; # Ponto nginx para o seu ssl certs ssl on; SSL_CERTificate/etc/letSencrypt/Live/yourwebsite.com/fullchain.PEM; ssl_certificate_key/etc/letSencrypt/vive/yourwebsite.com/privky.PEM; # Defina o seu diretório raiz root/var/www/yourvirtualenv/yourproject; # Ponto nginx no seu estático Localização / static / # AutoIndex Os arquivos para torná -los navegáveis se você deseja o AutoIndex ativado; # A localização dos seus arquivos alias/var/www/yourvirtualenv/yourproject/static/; # Configure o cache para seus arquivos estáticos expira 1m; access_log off; add_header cache-control "público"; proxy_ignore_headers "set-cookie"; # Ponto nginx em seus arquivos carregados Localização / mídia / AutoIndex Se você deseja o AutoIndex ligado; # A localização do seu alias de arquivos carregados/var/www/yourvirtualenv/yourproject/mídia/; # Configurar dores para seus arquivos enviados expira 1m; access_log off; add_header cache-control "público"; proxy_ignore_headers "set-cookie"; localização / # tente seus arquivos estáticos primeiro e depois redirecione para Gunicorn Try_files $ uri @proxy_to_app; # Passa solicitações para o local Gunicorn @proxy_to_app proxy_set_header x forwarded para $ proxy_add_x_forwarded_for; proxy_set_header host $ http_host; proxy_redirect off; proxy_pass http: // njc-gunicorn; # Cache para HTML, XML e JSON Localização ~* \.(html?| xml | json) $ expira 1h; # Cache para todos os outros ativos estáticos Localização ~* \.(jpg | jpeg | png | gif | ico | css | js | ttf | woff2) $ expira 1m; access_log off; add_header cache-control "público"; proxy_ignore_headers "set-cookie";
Ok, então isso é um pouco demais, e pode haver muito mais. Os pontos importantes a serem observados são os a montante
bloquear que aponta para o Gunicorn e o localização
Blocos que passam tráfego para Gunicorn. A maior parte do resto é bastante opcional, mas você deve fazê -lo de alguma forma. Os comentários na configuração devem ajudá -lo com os detalhes.
Depois que esse arquivo é salvo, você pode reiniciar o nginx para que as alterações tenham efeito.
# SystemCtl Reiniciar nginx
Quando o Nginx voltar online, seu site deve estar acessível através do seu domínio.
Pensamentos finais
Há muito mais que pode ser feito com o nginx, se você quiser cavar fundo. As configurações fornecidas, no entanto, são um bom ponto de partida e são algo que você pode realmente usar. Se você está acostumado a aplicações apach e inchadas, a velocidade de uma configuração de servidor como essa deve ser uma surpresa agradável.
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Como configurar um endereço IP estático no Manjaro Linux
- Linux Apache não executando arquivos PHP: Solução
- Uma introdução à automação, ferramentas e técnicas do Linux
- Ubuntu 20.04: WordPress com instalação nginx
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Como instalar o PHP no Ubuntu Linux
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- OpenLITESPEED WordPress Instalação
- Como criar uma pilha de lâmpadas à base de docker usando o docker em…
- « Como instalar o kit de desenvolvimento Java SE no Debian Linux
- Aprendendo comandos Linux NetStat »