Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';在AWS EC2上部署django应用程序时,不要在端口80上运行gunicorn_Python_Django_Amazon Web Services_Amazon Ec2_Gunicorn - Fatal编程技术网

Python Can';在AWS EC2上部署django应用程序时,不要在端口80上运行gunicorn

Python Can';在AWS EC2上部署django应用程序时,不要在端口80上运行gunicorn,python,django,amazon-web-services,amazon-ec2,gunicorn,Python,Django,Amazon Web Services,Amazon Ec2,Gunicorn,我正在EC2 AWS中运行Ubuntu14.04实例 我可以运行gunicorn-b0.0.0.0:8000 myapp.wsgi 但它无法在端口80运行 gunicorn-b0.0.0.0:80 myapp.wsgi-->失败 我试图遵循这个答案(但我无法理解,部署脚本是什么?) 但它不起作用 我还尝试过以提升权限sudo运行它,但没有成功。 在端口80处运行时出错: ubuntu@ip-172-31-39-159:~/jeequery$ gunicorn -b 0.0.0.0:80 rubi

我正在EC2 AWS中运行Ubuntu14.04实例

我可以运行
gunicorn-b0.0.0.0:8000 myapp.wsgi

但它无法在端口80运行

gunicorn-b0.0.0.0:80 myapp.wsgi
-->失败

我试图遵循这个答案(但我无法理解,部署脚本是什么?)

但它不起作用

我还尝试过以提升权限
sudo
运行它,但没有成功。 在端口80处运行时出错:

ubuntu@ip-172-31-39-159:~/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
运行时,出现以下错误:

ubuntu@ip-172-31-39-159:~$ 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)
ubuntu@ip-172-31-39-159:~$ ^C
ubuntu@ip-172-31-39-159:~$ 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.

正如评论中所建议的,不建议在端口
80
上运行
gunicorn

相反,我们在大于
1024的端口(非特权端口)上运行它,并通过反向poxy请求在
gunicorn
上运行大于
1014的端口


这可以通过编辑nginx
config文件来完成。

**您似乎还没有将端口80添加到安全组中

在命令访问端口80之前,您还必须使用
sudo


希望这有帮助**

你说失败是什么意思?请详细说明错误。@beezz用错误日志更新了答案是否确实要这样做?gunicorn不太适合直接接触互联网;通常,您会在反向代理之后运行它。既然您已经运行了nginx,您应该重新启用它并按原样使用它。正如我所说的,您在端口80上运行nginx,并将其用作gunicorn前面的反向代理。不要尝试在端口80上运行gunicorn本身。gunicorn文档有一个完整的配置示例。这并不能回答问题。提问者特别提到他希望gunicorn在端口80上运行。您建议使用nginx作为反向代理,然后在端口8000上运行gunicorn。如果我们不想使用nginx或任何其他反向代理服务器呢?