我按照http://uwsgi-docs.readthedocs.org/en/latest/tutorials/django_and_nginx.html中的步骤执行,但是当所有步骤完成后没有任何错误时,我访问127.0.0.1:8000,它的响应是超时,我的nginx日志显示
上游超时(110:连接超时)从上游读取响应标头时,
顺便说一句,我可以访问127.0.0.1:8001,在那里uwsgi和django工作得很好。我也可以访问127.0.0.1:8000/image/1.jpg中的image,但就是不能访问127.0.0.1:8000
这是我的nginx.conf
upstream django {
server 127.0.0.1:8001;
}
server {
listen 8000;
server_name 127.0.0.1
charset utf-8;
client_max_body_size 75M;
location /media {
alias /home/zhaolei/virtualdjango/bin/mysite/media;
}
location /image {
alias /home/zhaolei/virtualdjango/bin/mysite/image;
}
location / {
uwsgi_pass django;
include /home/zhaolei/virtualdjango/bin/mysite/uwsgi_params;
}
}
我使用UWSGI--HTTP 127.0.0.1:8001-chdir=mysite--module=mysite.wsgi
来运行UWSGI。我在https://github.com/nginx/nginx/blob/master/conf/uwsgi_params中使用uwsgi_params
主机
uWSGI有2种协议与web服务器进行通信。其中一个是普通的HTTP协议,也可以用来直接与客户端通信。但是也有特殊的uwsgi协议,为HTTP代理服务器和uwsgi之间的通信进行了优化。
nginx在使用UWSGI_PASS
指令时使用该协议,uWSGI在使用--socket
参数启动uWSGI服务器时使用该协议。
如果您使用--HTTP
param启动uWSGI,那么uWSGI将使用HTTP协议(这就是您正在做的),但是如果nginx仍然使用UWSGI_PASS
,那么它将在套接字上使用uWSGI协议,而不是HTTP。
要解决这个问题,您必须将uwsgi开始命令改为使用--socket
而不是--http
(这是推荐的方法,但是您不能通过在浏览器中直接输入127.0.8001
来检查uwsgi是否正常工作,但是没关系:如果使用--http
的命令正常工作,那么使用--socket
就不会有任何不同)或者在nginx配置中使用proxy_pass
而不是UWSGI_pass
。
链接上说你被提到了,就在这里
我在Nginx上使用uwsgi运行我的DJango应用程序。它目前正在使用这些配置: chdir=/TMP/SRC/ 进程=4 线程=2 server_name 192.168.56.104; charset UTF-8; #最后,将所有非媒体请求发送到Django服务器。 我已经生成了证书。
我遵循本教程,但我有一个问题,我得到了502 Nginx错误。 教程链接 我检查了错误日志,上面写着 uwsgi.log ImportError:没有名为khcards的模块。wsgi 我的uwsgi文件是这样的 我的nginx。形态 服务器{监听80;server_name域www.domain.co.uk;根 /var/www/example.com/src/khcards;access_lo
我正试图在Docker上用Nginx、uWSGI和Postgres安装一个Django应用程序。我找到了一本关于为Django和Postgres设置Compose的优秀指南:https://docs.docker.com/v1.5/compose/django/ 但是,现在我需要添加Nginx和uWSGI。我试过使用这个回购协议的文件(https://github.com/baxeico/djan
我的Django url模式: 自动取款机。我使用以下命令运行Django: uwsgi--socket:8000--wsgi-file wsgi.py 我可以访问Django,但是当我试图访问 www.testing.test/api/admin 时,我得到了一个404(从Django调试)。 但这让我的Django告诉我一个404 当我请求
到目前为止,我在Ubuntu18.04远程服务器上使用uwsgi和nginx运行了一个Flask应用程序。这个应用程序是由我的网站监听端口5002的子域服务的。我想添加一个新的Flask应用程序来监听端口5003,但我一定是做了一些错误的配置,然后一切都失控了。现在这两个应用程序都不起作用了。 app1的服务器块 null
在前面的章节中我们使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文将以 Nginx 为例。 安装基础开发包 Centos 下安装步骤如下: yum groupinstall "Development tools" yum install