2015-08-30 41 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配置文件来完成。