0

我最近推出了Apache + php的linux EC2實例。我的php代碼最終淡化爲僅僅從shell中調用python,僅此而已。這是一個非常難看的解決方案,但它很有效。所以,基本上我的問題是:在亞馬遜EC2上啓動並運行僅限python服務器的最簡單方法是什麼?

  1. 有多壞/低效/愚蠢的是它有一個PHP代碼 反覆調用exec(蟒蛇my_script.py),而不是一個解決方案 這更多本土到Python?我認爲這很浪費,但我試圖理解我是否應該爲此煩惱,或者只是繼續喋喋不休。
  2. 我設法讓bottle.py啓動並運行,並且正在用一個連續運行的瓶子腳本取代我的「愚蠢」解決方案,這似乎更自然。但是我沒有通過mod_wsgi將此解決方案與Apache集成,我認爲它與我不願意處理的python版本不兼容問題有關。
  3. 考慮到(2),完全繞過Apache並簡單地使用「run」命令調用瓶子腳本來聆聽所有傳入的通信有什麼影響?這看起來很醜陋,但它在任何方面效率低下或不好?如果不是的話,我會繼續打電話給我的解決方案......但是我擔心人們可能有理由與Apache集成。

任何輸入,將不勝感激。一個體面的亞馬遜AMI已經運行python 2.7並且默認處理python的傳入請求會很好。有人說權威,我應該瞭解這整個阿帕奇/ mod_wsgi的業務,而不是亂只是稱之爲「瓶」爲腳本將是最好的:-)

編輯:我有蟒蛇2.7運行瓶貼是我網絡服務器。我是否有任何REAL理由更喜歡apache over這個解決方案?雖然我在這裏,有沒有人在這個環境中啓用ssl的經驗?

乾杯, 烏里

+0

難道你不能只是設置某種[CGI腳本](http://docs.python.org/2/howto/webservers.html)並讓apache處理如何解析它? – Lix 2013-03-08 15:23:57

+0

CGI據我瞭解,它意味着每個傳入的請求到服務器啓動一個新的Python解釋器。這是我目前的解決方案,我試圖避免它... – 2013-03-08 15:30:42

回答

1

你爲什麼不只是旋轉了一個魔豆實例與Python,讓亞馬遜處理這些細節? Beanstalk在EC2上運行。當亞馬遜已經爲你製作通心專用伏特加時,你可以用傻瓜做自己的意大利麪條!撇開隱喻,我想你會爲自己節省額外的壓力,不需要混合使用PHP/Python。

+0

謝謝凱文。我剛剛推出了一個虛擬beanstalk解決方案,它默認爲python 2.6.8。它升級看起來有點麻煩(上帝知道用python 2.7獲取我當前的EC2實例並不容易!)...如果你知道如何啓動一個beanstalk python 2.7的好指南,我會很高興知道它:-) – 2013-03-08 17:41:15

+0

呃,對不起Uri--應該看到這一點。那麼如果你仍然想避免mod_wsgi並且你不偏向亞馬遜,那麼你可以檢查一下Google App Engine--它們默認使用Python,並且它也很容易啓動(我認爲比Beanstalk更容易)。 – kevin 2013-03-08 18:16:13

+2

對於Python 2.7,您可以配置Elastic Beanstalk,請參閱:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python.html – Guy 2013-03-09 18:58:17

0

聲明:我爲OpDemand工作。

最無痛的將是使用預卷AMI,但這些無法管理。

如果您正在尋找更靈活的產品,OpDemand爲Python應用程序提供了EC2模板,您可以通過單擊進行部署。他們是在Procfile-定義的網絡工作者面前使用Nginx的vanilla Ubuntu 12.04 LTS盒子。這與Heroku非常相似,但它們都用完了你自己的EC2賬戶。example Python application使用Flask,但切換到Bottle並不重要。

祝你好運!

相關問題