Recentemente mudei do Apache Mod_wsgi para o Nginx e vi uma grande melhoria na velocidade e uma redução no uso de memória e geralmente estou muito feliz com isso.
Não sou um especialista em servidores, então seja gentil.
Estou me perguntando se há alguma pequena configuração que eu possa ter perdido, que me causará alguns problemas no longo prazo...
Por favor veja meunginx.confarquivo
user nginx nginx;
worker_processes 4;
error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 75 20;
ignore_invalid_headers on;
index index.html;
server {
listen 80;
server_name localhost;
location /media/ {
root /www/django_test1/myapp; # Notice this is the /media folder that we create above
}
location /mediaadmin/ {
alias /opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/; # Notice this is the /media folder that we create above
}
location / {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:8080;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
client_max_body_size 100M;
}
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log;
}
}
Responder1
Eu recomendo que você defina um tempo limite de keepalive mais baixo, 75 é demais e praticamente inútil. Eu costumo usar de 10 a 20 segundos, isso deve ser suficiente. Mas se você não espera muitos pedidos, 75 também está bom.