- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经为这个问题苦苦挣扎了两天,但没有成功。我创建了一个名为“testdj”的默认 Django (1.6.1) 应用程序实例,将其安装在运行 Ubuntu Server 13.10 的 Amazon AWS EC2 t1.micro 实例上,我正在尝试访问默认 Django“它有效!”通过 Gunicorn 页面(第 18 节)。当我从命令行启动 gunicorn 时:
gunicorn testdj.wsgi:application --bind [ec2-public-dns]:8001
当我输入这个 URL 时,我可以看到该页面:
http://[ec2-public-dns]:8001
但是,如果我使用我在阅读 Karzynski 的 blogpost 之后创建的“start-gunicorn”bash 脚本“使用 Nginx、Gunicorn、virtualenv、supervisor 和 PostgreSQL 设置 Django”,我总是出错。当我输入这个 URL 时...
http://[ec2-public-dns]
...我收到此错误:
Error 502 - Bad Request
The server could not resolve your request for uri: http://[ec2-public-dns]
这是 start-gunicorn 脚本:
#!/bin/bash
NAME="testdj"
DJANGODIR=/usr/share/nginx/html/testdj
SOCKFILE=/usr/share/nginx/html/testdj/run/gunicorn.sock
USER=testdj
GROUP=testdj
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=testdj.settings
DJANGO_WSGI_MODULE=testdj.wsgi
WORKON_HOME=/home/testdj/venv
source `which virtualenvwrapper.sh`
workon $NAME
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGO_DIR:$PYTHONPATH
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--access-logfile /tmp/gunicorn-access.log \
--error-logfile /tmp/gunicorn-error.log \
--log-level=debug \
--bind=unix:$SOCKFILE
如您所见,我在我的服务器上创建了一个名为“testdj”的特殊帐户来运行该应用程序。我在虚拟环境中运行我的 Django 应用程序。我根本没有更改 Django wsgi.py 文件。由于我最终想使用 nginx 作为我的反向代理,我安装了 nginx 并将 Django 应用程序放在 nginx 的默认根目录/usr/share/nginx/html 中。用户/组 www-data 拥有/usr/share/nginx 和下面的所有内容,除了用户/组“testdj”拥有/usr/share/nginx/html/testdj 和它下面的所有内容。/usr/share/nginx/html/testdj 及其所有子目录的权限为 775,我已将 www-data 添加到 testdj 组。
我确实安装了 nginx,但没有运行 nginx 服务。我确实尝试使用以下配置文件启动它并启用 nginx 虚拟服务器,但错误仍然发生。
upstream testdj_app_server {
server unix:/usr/share/nginx/html/testdj/run/gunicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name ec2-[my-public-dns-ip].us-west-2.compute.amazonaws.com;
client_max_body_size 4G;
access_log /var/log/nginx/testdj-access.log;
error_log /var/log/nginx/testdj-error.log;
location /static/ {
alias /usr/share/nginx/html/testdj/static/;
}
location /media/ {
alias /usr/share/nginx/html/testdj/media/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
# This must match "upstream" directive above
proxy_pass http://testdj_app_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /usr/share/nginx/html/testdj/static/;
}
}
问题似乎出在 gunicorn 上,因为如果我将 start-gunicorn 脚本中的“--bind=unix:$SOCKFILE”替换为“--bind --[ec2-public-dns]:8000”,我可以看到Django的默认页面。但是,我不想在端口 8000 上绑定(bind)到我的公共(public) DNS 名称,我想在端口 80 上运行并使用 nginx 作为我的前端反向代理。
我最初有 AWS 入站安全组规则,这些规则限制对站点的访问只能通过笔记本电脑的端口 80、8000 和 8001 进行 HTTP,但即使我删除这些规则并让站点完全打开,我仍然会收到 502 错误消息。
我的 gunicorn 访问日志没有显示任何事件,我在 gunicorn 错误日志中看到的唯一内容是 gunicorn 正在启动。当我访问默认的Django页面时,错误日志中没有错误:
2014-02-03 18:41:01 [19023] [INFO] Starting gunicorn 18.0
2014-02-03 18:41:01 [19023] [DEBUG] Arbiter booted
2014-02-03 18:41:01 [19023] [INFO] Listening at: unix:/usr/share/nginx/html/testdj/run/gunicorn.sock (19023)
2014-02-03 18:41:01 [19023] [INFO] Using worker: sync
2014-02-03 18:41:01 [19068] [INFO] Booting worker with pid: 19068
2014-02-03 18:41:01 [19069] [INFO] Booting worker with pid: 19069
2014-02-03 18:41:01 [19070] [INFO] Booting worker with pid: 19070
有人知道这里发生了什么吗?看起来我什至没有去 gunicorn。对于这篇长帖子,我深表歉意,但这个问题似乎有很多“变化的部分”。我将非常感谢任何帮助,因为我尝试了很多不同的方法但都无济于事。我还在这里查看了其他人遇到类似问题的其他问题,但我没有看到与此问题相关的任何内容。谢谢!
最佳答案
我在我的 Linode 服务器上逐行重复我的配置过程,完全没有问题。我不得不假设这个问题与 AWS EC2 实例的配置方式有关,可能与安全性有关。
关于django - 无法通过 AWS EC2 实例上的 Gunicorn 访问 Django 默认应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21535573/
我尝试了几乎所有命令来杀死 gunicorn 服务器。但没有任何效果。我怎样才能杀死这些进程并释放 80 端口 12652 ? Ss 0:00 sudo gunicorn -b
我正在使用 Apache Airflow,发现 gunicorn-error.log 的大小在 5 个月内增长了超过 50 GB。大多数日志消息都是 INFO 级别的日志,例如: [2018-05-1
我正在使用 在 Digital Ocean 上运行 django gunicorn 和 nginx . Gunicorn 用于为静态文件提供 django 和 nginx。 通过网站上传文件后,我无法
我正在使用 Django 1.8,我想用 gunicorn 运行我的应用程序。 我可以从命令行绑定(bind)到我的 IP 运行它: gunicorn myapp.wsgi:application -
我们正在使用 https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker FastAPI 并且能够使用 gunicorn 日志文件自定义我们
我在 docker 上的 centos7 上运行 Airflow 1.8,但我的网络服务器无法访问浏览器。我通过pip2.7安装了airflow。 Flower ui 显示良好,initdb 运行连接
gunicorn.service cannot open WorkingDirectory and the gunicorn executable. I think it's about per
任何想法为什么我的 gunicorn 服务器无法启动? jeffy@originaldjangster:~$ sudo /home/jeffy/django_files/django_test_ven
我已经安装了gunicorn,但是没有找到gunicorn命令: # pip3.4 install gunicorn Requirement already satisfied (use --upgr
我在有监督的ginicorn部署我的django项目。 我在virtualenv中安装了gunicorn,添加到INSTALL_APPS中。 命令./manage.py run_gunicorn -b
我成功安装了gunicorn: remote: -----> Removing .DS_Store files remote: -----> Python app detected remote: -
Systemd 和 Gunicorn 需要某种 wsgi 文件作为 ExecStart 的最后一个参数:http://docs.gunicorn.org/en/latest/deploy.html?h
我正在尝试将基本应用程序部署到 Amazon EC2使用 Django , Gunicorn , 和 Nginx .我有应用 git clone进入我的AWS Ubuntu实例并正在运行 Django
在更新为使用小型模型中的 spacy_en_core_web_lg 后,我的 fastapi 服务器内存不足。 当运行 fastapi 时,会生成 4 个 gunicorn worker,并且根据内存
我有一个基于这个的 ansible 配置虚拟机 https://github.com/jcalazan/ansible-django-stack但出于某种原因,尝试启动 Gunicorn 会出现以下错
我关注 this如何在 Ubuntu 18.04 指南中使用 Postgres、Nginx 和 Gunicorn 设置 Django。 我创建了以下文件 .socket sudo nano /etc/
我正在尝试按照此 [链接][1] 在 Digital Ocean 上部署简单的 Django 应用程序用 gunicorn 实现它的抛出错误 gunicorn.service: Failed with
这里我想问你,用python运行gunicorn uvicorn,和默认从tiangolo有什么区别? 我尝试使用 JMeter 对这些进行压力测试具有线程属性: 从这些,我得到了结果:: 从上面我尝
因此,我有一个简单的 Flask API 应用程序,它运行在运行 tornado worker 的 gunicorn 上。 gunicorn 命令行是: gunicorn -w 64 --backlo
我已经使用 Gunicorn + Nginx + Supervisor 部署了一个 Django 1.6 应用程序。一切正常,但我的 Gunicorn error.log 一直在发送错误。该文件很大,
我是一名优秀的程序员,十分优秀!