2015-06-21 32 views
1

我只有ssh訪問服務器。它是來自亞馬遜aws的ubuntu。我已經上傳了我的django項目。當我運行命令python manage.py runserver或它的任何變體時,服務器啓動。製作一個可以在127.0.0.1:8000上運行的django應用程序嗎?

但是,正如您所知,這將不允許我從駐留在不同網絡上的瀏覽器訪問網絡應用程序 。

我的問題是

會是什麼方式後,我給我的命令或者通過Django的開發服務器或gunicorn到RUNSERVER。我可以通過在瀏覽器中輸入IP:8000從外部世界訪問它。

其次,我想根據需要打開/關閉對IP:8000的訪問。就像我可能允許訪問5分鐘,然後運行命令來停止外部世界的訪問?

回答

1

爲了訪問Django項目其他每一個地方你必須給IP:8000

注意外使用命令

python manage.py runserver 0.0.0.0:8000 

然後,您將獲得它:由Django的提供的服務器是唯一僅用於開發目的。如果你想永久託管,你可能想使用Apache或任何服務器,你可以在其中託管你的項目。希望這可以幫助 。 :)

+0

我已經嘗試過,但它總是給我的browser..I超時覺得上面的命令錯誤連接使得它可以從同一網絡上的每個IP訪問(即本地主機) – Wasim

+0

以上將允許您只能在同一網絡中訪問項目,而不是在不同的網絡中訪問項目。爲那個去一些託管解決方案。 – csharpcoder

1

您需要在aws ec2實例上分配一個彈性IP地址(EIP),並允許入站流量0.0.0.0/0從其安全組端口8000。

那麼你應該罰款從每一個地方與EIP訪問它,如http://54.12.23.34:8000

EIP可能產生的成本,如果停止EC2實例。

0

您還可以試試下面的命令:

python manage.py runserver [::]:8000 

這樣的runserver綁定到你的AWS VM所有可用的接口。另請注意:runserver實際上只是用於開發。在生產環境中運行它是一個糟糕的主意。

0

以防萬一,你要80端口上運行它,那麼你需要root權限

sudo python manage.py runserver 0.0.0.0:80 
相關問題