【问题标题】:aws ec2 uWSGI ""hello world"" erroraws ec2 uWSGI“你好世界”错误
【发布时间】:2017-09-13 18:00:23
【问题描述】:

我启动了新的 aws ec2 实例。
我的目标是部署 django 项目。

我想构建nginx代理服务器和uWSGI Web服务器。
我一步一步跟着这个tutorial

但是,荒谬的是,我在第一个 hello world 示例中出错了。

我安装了基本的开发环境。

$ sudo apt-get update
$ sudo apt-get install python3-pip
$ sudo pip3 install virtualenv virtualenvwrapper
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3"
$ echo "export WORKON_HOME=~/.virtualenvs" >> ~/.bashrc
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
$ source ~/.bashrc
$ mkdir ~/Practice1 && cd ~/Practice1
$ mkvirtualenv MY_ENV1
(MY_ENV1)$ pip install uwsgi
(MY_ENV1)$ vim test.py

#test.py    
def application(env, start_response):
        start_response("200 OK", [('Content-Type','text/html')])
        return [b"Hello World!"]

(MY_ENV1)$ uwsgi --http :8000 --wsgi-file test.py

我无法在网络浏览器中连接我的 IP xxx.xx.xxx.xx:8000

xxx.xx.xxx.xx也无法连接。

P.S) 下面是我的实例安全组设置。

【问题讨论】:

    标签: python amazon-web-services nginx


    【解决方案1】:

    两件事:

    1) 我不确定 gunicorn 默认会绑定到所有接口。您可以尝试将您的命令修改为以下内容吗?

    uwsgi --http 0.0.0.0:8000 --wsgi-file test.py
    

    2) 您的安全组不允许访问端口 8000。如果您想从外部访问端口,则必须允许访问端口 8000。

    【讨论】:

    • 1) 0.0.0.0:8000 我仍然断开连接。 2) 当我选择类型 HTTP 时,会强制执行协议 TCP 和端口范围 80。我无法更改这些值。我应该选择哪一个??
    • @newbie16 将类型设置为TCP,并将端口设置为8000。不要使用HTTP - 它是一个已知的端口协议,因此它在 AWS 安全组中始终是 80。如果您选择其他已知协议,例如 SSHRDP,则相同。
    • 对不起,我迟到了。嗯还是报错....我选择了自定义TCP规则类型和端口范围8000。我怎么了??
    • @newbie16 如果您照常运行它,如果您尝试在本地使用 curl http://127.0.0.1:8000 之类的东西来运行它会发生什么?
    • @birryree 我收到了这条消息。 curl: (7) Failed to connect to 127.0.0.1 port 8000: Connection refused 等等,我是不是也应该创建负载均衡器,目标组??我只创建了安全组。
    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    相关资源
    最近更新 更多