2013-04-25 105 views
3

我用燒瓶建立了一個API。我的應用程序沒有任何靜態資產,因此我沒有理由使用nginx。讓Gunicorn運行在80端口上

我希望在端口80

運行gunicorn我有一個 「部署腳本」:

mkdir .log 2> /dev/null 
DEBUG=0 gunicorn -b 0.0.0.0:80 backend:app --access-logfile .log/access.log --error-logfile .log/general.log 

我希望與authbind在端口80上運行gunicorn。我在這裏跟着這個guide

請注意,我能夠運行authbind python -m SimpleHTTPServer 80

當我嘗試運行authbind ./deployment.run 80

我看到下面的錯誤:

2013-04-25 15:32:55 [24006] [ERROR] Can't connect to ('0.0.0.0', 80) 
2013-04-25 15:33:08 [24018] [INFO] Starting gunicorn 0.17.4 
2013-04-25 15:33:08 [24018] [ERROR] Retrying in 1 second. 
2013-04-25 15:33:09 [24018] [ERROR] Retrying in 1 second. 
2013-04-25 15:33:10 [24018] [ERROR] Retrying in 1 second. 
2013-04-25 15:33:11 [24018] [ERROR] Retrying in 1 second. 
2013-04-25 15:33:12 [24018] [ERROR] Retrying in 1 second. 

任何想法,爲什麼我不能將gunicorn綁定到端口80?

有什麼建議嗎?

回答

1

嘗試把authbind部署腳本中,例如:

mkdir .log 2> /dev/null 
DEBUG=0 authbind gunicorn -b 0.0.0.0:80 backend:app --access-logfile .log/access.log --error-logfile .log/general.log 

然後只需運行./deployment.run 80

(另外,你的腳本似乎沒有使用任何參數;也許$1取代80在你的腳本?)

+0

正如Uku所提到的,Unix保護1024以下的端口,而authbind不會讓普通用戶神奇地繞過該端口。必須將其配置爲允許某些類型的綁定 - 請參閱http://manpages.ubuntu.com/manpages/hardy/man1/authbind.1.html和http://mutelight.org/authbind。 – mahemoff 2014-02-27 23:56:48

20

如果您處於類似unix的環境中,則端口< 1024(如80)將需要超級用戶權限。

+3

不是authbind的全部目的就是要重寫? – disappearedng 2013-04-26 00:12:07

相關問題