2017-07-18 153 views
3

我有一個在AWS Ubuntu機器上運行的django。通過SSH,我在8000端口啓動服務器。但是,當我關閉SSH窗口,服務器停止,我無法通過URL訪問它。我想要的是一旦啓動它就一直運行服務器。如何去做呢?謝謝。在AWS中運行Django Python服務器

+2

你需要使用像Apache或Nginx的服務器[Django部署(https://docs.djangoproject.com/en/1.11/howto/deployment/)。這對Stack Overflow來說太寬泛了。 – Alasdair

回答

3

您可以使用Apache或Nginx來部署Django應用程序。如果您打算使用Nginx,請首先在服務器中安裝Nginx,然後將Django配置添加到Nginx配置中。你可以按照這個good guide

1

你可以這樣做:hacky的方式:創建一個bash腳本來執行應用程序(只需運行與執行相同的命令來運行它),然後使用nohup運行bash腳本,從而將進程從shell中分離出來,允許應用程序時,您關閉會話繼續運行:

nohup ./my_bash_script.sh & 

如果你想要做正確,創建服務文件並執行應用程序的服務。您可以創建這樣一個簡單的服務文件:

[Unit] 
Description=My Django app 
After=network.target 

[Service] 
PIDFile=/run/DjangoApp/pid 
User=<your user> 
Group=<your group> 
WorkingDirectory=<working directory of your Django app> 
ExecStart=<path to your bash script> 
PrivateTmp=True 

[Install] 
WantedBy=multi-user.target 

保存/etc/systemd/system/djangoService.service下的文件。啓用此命令的服務:

sudo systemctl enable djangoService 

而與此命令來運行它:

sudo service start djangoService 

這將保持業務正常運行。但請記住,要服務適當的Django應用程序,您可能需要使用Gunicorn/wsgi來爲響應提供服務,並使用Nginx來反向代理請求。

1

在開發模式下,Django有一個開發服務器,它足以用於測試目的。一旦你完成一個Web應用程序並準備好進行生產,在服務器上設置應用程序的過程對於某些人來說可能是壓倒性的,特別是如果你第一次這樣做的話。本文提供了關於如何使用mod_wsgi部署基於Django的Web應用程序的分步指南。

你可以按照這篇文章來設置Apache服務器的mod_wsgi。 enter link description here

如果您正在爲開發進行設置,那麼您需要以守護進程模式運行服務器。

在Ubuntu

run:>./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 & 

>exit