Eu segui as instruções aqui para executar o Django usando o servidor da web embutido e consegui executá-lo com sucesso python manage.py runserver
. Se eu acessar 127.0.0.1:port localmente a partir do servidor web, recebo a página do Django indicando que funcionou.
Sei que o servidor da Web do Django não é um servidor de produção, mas é importante para mim, para fins de teste, poder acessá-lo do mundo exterior - ou seja, não de um navegador da Web no servidor, mas de um computador diferente.
Eu tentei:
http://mywebserver:port_django_runs_on
mas não funcionou. Também tentei usar o IP (com base no ifconfig) para acessar:
http://myipaddress:port_django_runs_on
que também não funcionou.
O servidor da web está sendo executado, portanto, deve ser acessível de fora, não sei como. Estou executando o Linux com Apache, embora não tenha configurado o Django com Apache.
Algumas ideias em como fazer isso?
Respostas:
Você precisa executar o servidor de desenvolvimento para que ele escute na interface a sua rede.
Por exemplo
escuta em todas as interfaces na porta 8000.
Não importa se você acessa o servidor da web com o IP ou o nome do host. Eu acho que você ainda está na sua própria LAN.
Se você realmente deseja acessar o servidor de fora, também precisa configurar o roteador para encaminhar a porta, por exemplo,
8000
para o servidor.Verifique seu firewall no servidor se são permitidas conexões de entrada com a porta em uso!
Supondo que você possa acessar o servidor Apache de fora com êxito, também pode tentar o seguinte:
80
fique livre.sudo python manage.py runserver 0.0.0.0:80
fonte
sudo python manage.py runserver 80
.ALLOWED_HOSTS = ['*']
trabalharam para mim acesso Django aplicativo em um Mac do meu telefone AndroidEu tive que adicionar esta linha ao settings.py para fazê-lo funcionar (caso contrário, ele mostrava um erro quando acessado de outro computador)
Em seguida, execute o servidor com:
Verifique também se o firewall permite conexões com essa porta
fonte
Escolha um ou mais de:
Portanto, você pode verificar se o seu aplicativo está escutando com êxito executando
lsof -i
como root na máquina e procurar umapython
entrada com a porta correspondente que você especificou.Usuários não-root geralmente não podem se conectar a portas <1024.
Você precisará
iptables -nvL
verificar se há uma regra que impeça o acesso à porta ip: à qual você está tentando vincular seu aplicativo.Se houver um firewall upstream e você não souber muito sobre ele, precisará conversar com os administradores de rede.
fonte
you haven't configured it successfully
?django runserver
se realmente está ouvindo onde pretende, por exemplo, usandolsof
.lsof
vejo uma entrada python para minha porta. Mas o meu link ou seja, myip: 8000 não está respondendo. Eu sei que é tarde, mas todas as sugestões ajudarão.apenas faça o seguinte:
pelo comando acima, você está realmente vinculando-o ao endereço IP externo. agora, quando você acessar seu endereço IP com o número da porta, poderá acessá-lo no navegador sem nenhum problema.
basta digitar o seguinte na barra de endereço do navegador:
por exemplo:
pode ser necessário editar o settings.py e adicione o seguinte em settings.py na última linha:
espero que isso ajude ...
fonte
Para usuários da AWS.
Eu tive que usar as etapas a seguir para chegar lá.
1) Verifique se o pip e o django estão instalados no nível do sudo
2) Verifique se as regras de ligação do grupo de segurança incluem http na porta 80 para 0.0.0.0/0
3) Adicione IP público e DNS a ALLOWED_HOSTS
4) Inicie o servidor de desenvolvimento com sudo na porta 80
Site agora disponível em um dos seguintes (não é necessário: 80 como o padrão para http):
fonte
Vou adicionar isso aqui:
sudo python manage.py runserver 80
Vá para o seu telefone ou computador e digite o IP interno do computador (por exemplo
192.168.0.12
) no navegador.Neste ponto, você deve estar conectado ao servidor Django.
Isso também deve funcionar sem o sudo:
fonte
Se você estiver usando o Docker, verifique também se as portas estão expostas
fonte
ATUALIZADO EM 2020 TENTE ESTA MANEIRA
fonte