gpt4 book ai didi

python - Nginx、uwsgi、django 和上游在 get/post 上超时

转载 作者:行者123 更新时间:2023-12-01 05:36:36 26 4
gpt4 key购买 nike

应用程序很好,因为如果我从manage.py(runserver)运行它 - 一切正常(响应 GET 请求)..配置:

  • nginx 1.4.2
  • python 2.7.3
  • Django 1.5.4
  • uwsgi 1.9
  • 操作系统 - debian

uwsgi yaml 配置:

uwsgi:
chdir: /var/projects/HOA_desk
module: HOA_desk.wsgi:application
env: DJANGO_SETTINGS_MODULE=HOA_desk.settings
socket: /tmp/HOA_desk.sock
master: 1
pidfile: /tmp/HOA_desk.pid
no-orphans: 1
processes: 2
max-requests: 5000
buffer-size: 32768
harakiri: 30
reload-mercy: 8
vacuum: 1
daemonize: /var/projects/HOA_desk.log
touch-reload: /var/projects/HOA_desk/hoa_desk_uwsgi.yaml
stats: 127.0.0.1:9191
virtualenv: /var/projects/projects_ve/HOA_desk_ve/

nginx.conf

user www-data;
worker_processes 1;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;

access_log /var/log/nginx/access.log;

sendfile on;

keepalive_timeout 65;
tcp_nodelay on;

gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

include sites-enabled/*;
}

nginx 应用程序配置:

upstream HOA_desk_django {
server unix:///tmp/HOA_desk.sock;
}

server {
client_max_body_size 15M;
listen 80;
server_name xx.xx-xxxx.xx;
charset utf-8;
gzip on;
expires off;
access_log /var/projects/HOA_desk_nginx_access.log;
error_log /var/projects/HOA_desk_nginx_error.log debug;

location / {
root /var/projects/HOA_desk;
uwsgi_pass HOA_desk_django;
include uwsgi_params;
}

location /static/ {
add_header X-Static hit;
autoindex on;
expires off;
root /var/projects/HOA_desk/;
}

location /uploads/ {
autoindex on;
root /var/projects/HOA_desk/;
}
}

uwsgi_params:

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;

uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;

uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_ADDR $server_addr;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

我启动uwsgi,如下所示:uwsgi --uid 33 --gid 33 -y %config_file%Nginx:nginx -c/etc/nginx/nginx.conf

日志输出:

uwsgi:

** Starting uWSGI 1.9.16 (64bit) on [Tue Sep 17 14:31:51 2013] ***
compiled with version: 4.4.5 on 17 September 2013 12:35:39
os: Linux-2.6.26-2-xen-amd64 #1 SMP Thu Nov 25 06:39:26 UTC 2010
nodename: dstestvoip
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /var/projects
writing pidfile to /tmp/HOA_desk.pid
detected binary path: /var/projects/projects_ve/HOA_desk_ve/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
setgid() to 33
setuid() to 33
your memory page size is 4096 bytes
*** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /tmp/HOA_desk.sock fd 3
Python version: 2.7.3 (default, Nov 19 2012, 09:51:09) [GCC 4.4.5]
Set PythonHome to /var/projects/projects_ve/HOA_desk_ve/
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x8f6830
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 304392 bytes (297 KB) for 2 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x8f6830 pid: 19656 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 19656)
spawned uWSGI worker 1 (pid: 19657, cores: 1)
spawned uWSGI worker 2 (pid: 19658, cores: 1)
*** Stats server enabled on 127.0.0.1:9191 fd: 11 ***

然后尝试 go get index page ( location/),然后.. nginx 访问和错误日​​志输出:

错误日志:

2013/09/17 14:17:14 [alert] 19574#0: accept4() failed (38: Function not implemented)
2013/09/17 14:17:31 [info] 19574#0: *2 client closed connection while waiting for request, client: 77.41.15.118, server: 0.0.0.0:80
2013/09/17 14:17:31 [info] 19574#0: *3 client closed connection while waiting for request, client: 77.41.15.118, server: 0.0.0.0:80
2013/09/17 14:17:31 [info] 19574#0: *4 client closed connection while waiting for request, client: 77.41.15.118, server: 0.0.0.0:80
2013/09/17 14:17:31 [info] 19574#0: *5 client closed connection while waiting for request, client: 77.41.15.118, server: 0.0.0.0:80
2013/09/17 14:17:31 [info] 19574#0: *6 client closed connection while waiting for request, client: 77.41.15.118, server: 0.0.0.0:80
2013/09/17 14:18:14 [error] 19574#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 77.41.15.118, server: xx.xxx-xxxxx.xx, request: "GET / HTTP/1.1$

访问日志:

77.41.15.118 - - [17/Sep/2013:14:18:14 +0400] "GET / HTTP/1.1" 504 584 "-" "Mozilla/5.0     (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65     Safari/537.36"

我尝试使用简单的套接字(不是文件套接字) - 一切都是一样的。这个配置文件有什么问题,uwsgi设置nginx-uwsgi_socket映射有问题吗??

最佳答案

问题是你的内核不支持accept4()系统调用,而nginx被编译为使用它(如果你的 header 暴露了它,甚至uWSGI也会使用它)。您使用哪个内核?很可能它相对于您的系统 header 来说太旧了

关于python - Nginx、uwsgi、django 和上游在 get/post 上超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18847654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com