2015-08-30 39 views
3

我在EC2 AWS中運行Ubuntu 14.04實例。在AWS EC2上部署django應用程序時,無法在端口80上運行gunicorn

我可以運行gunicorn -b 0.0.0.0:8000 myapp.wsgi

,但它無法在端口上運行80

gunicorn -b 0.0.0.0:80 myapp.wsgi - >失敗

我試圖按照這個答案(我不能,雖然不懂,什麼部署腳本?)Getting Gunicorn to run on port 80

但它沒有奏效。

我也試着用高級權限sudo徒勞地運行它。 上的錯誤在端口80上運行:

[email protected]:~/jeequery$ gunicorn -b 0.0.0.0:80 rubiks.wsgi 
[2015-08-30 15:58:10 +0000] [6772] [INFO] Starting gunicorn 19.3.0 
[2015-08-30 15:58:10 +0000] [6772] [ERROR] Retrying in 1 second. 
[2015-08-30 15:58:11 +0000] [6772] [ERROR] Retrying in 1 second. 
[2015-08-30 15:58:12 +0000] [6772] [ERROR] Retrying in 1 second. 
[2015-08-30 15:58:13 +0000] [6772] [ERROR] Retrying in 1 second. 
[2015-08-30 15:58:14 +0000] [6772] [ERROR] Retrying in 1 second. 
[2015-08-30 15:58:15 +0000] [6772] [ERROR] Can't connect to ('0.0.0.0', 80) 

在有sudo運行我得到這個錯誤:

[email protected]:~$ gunicorn -b 0.0.0.0:80 rubiks.wsgi 
[2015-08-30 16:48:09 +0000] [6943] [INFO] Starting gunicorn 19.3.0 
[2015-08-30 16:48:09 +0000] [6943] [ERROR] Retrying in 1 second. 
[2015-08-30 16:48:10 +0000] [6943] [ERROR] Retrying in 1 second. 
[2015-08-30 16:48:11 +0000] [6943] [ERROR] Retrying in 1 second. 
^C[2015-08-30 16:48:12 +0000] [6943] [ERROR] Retrying in 1 second. 
[2015-08-30 16:48:13 +0000] [6943] [ERROR] Retrying in 1 second. 
[2015-08-30 16:48:14 +0000] [6943] [ERROR] Can't connect to ('0.0.0.0', 80) 
[email protected]:~$ ^C 
[email protected]:~$ sudo gunicorn -b 0.0.0.0:80 rubiks.wsgi 
[2015-08-30 16:48:21 +0000] [6947] [INFO] Starting gunicorn 19.3.0 
[2015-08-30 16:48:21 +0000] [6947] [INFO] Listening at: http://0.0.0.0:80 (6947) 
[2015-08-30 16:48:21 +0000] [6947] [INFO] Using worker: sync 
[2015-08-30 16:48:21 +0000] [6950] [INFO] Booting worker with pid: 6950 
[2015-08-30 16:48:21 +0000] [6950] [ERROR] Exception in worker process: 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 507, in spawn_worker 
    worker.init_process() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/base.py", line 118, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/util.py", line 355, in import_app 
    __import__(module) 
ImportError: No module named 'rubiks' 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/arbiter.py", line 507, in spawn_worker 
    worker.init_process() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/workers/base.py", line 118, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/usr/local/lib/python3.4/dist-packages/gunicorn/util.py", line 355, in import_app 
    __import__(module) 
ImportError: No module named 'rubiks' 
[2015-08-30 16:48:21 +0000] [6950] [INFO] Worker exiting (pid: 6950) 
[2015-08-30 16:48:21 +0000] [6947] [INFO] Shutting down: Master 
[2015-08-30 16:48:21 +0000] [6947] [INFO] Reason: Worker failed to boot. 
+0

你的意思是什麼失敗?請詳細說明錯誤。 – beezz

+0

@beezz更新了錯誤日誌的答案 –

+0

如果使用'sudo',錯誤是一樣的,請檢查您是否已經在端口80上運行某些東西。Apache或nginx等 – beezz

回答

1

正如評論所說,它不建議在端口80運行gunicorn

相反,我們在端口上運行它大於1024(非特權端口),並通過反向poxy請求端口而不是1014更大的gunicorn運行。

這可以通過編輯nginx配置文件來完成。