user web web; timer_resolution 10ms; #working_directory /tmp/nginx-core; #worker_priority 5; worker_processes 15; #worker_rlimit_nofile 60000; worker_rlimit_nofile 10240; worker_rlimit_sigpending 32768; #working_directory /usr/local/nginx; pid /var/run/nginx.accel.pid; error_log /var/log/nginx-accel-err.log crit; events { worker_connections 10000; use epoll; multi_accept on; } http { # cache control expires off; access_log off; include /usr/local/nginx/conf/mime.types; default_type application/octet-stream; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; client_max_body_size 220m; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 75; reset_timedout_connection on; upstream nginx_storage { server 127.0.0.1:880; server 127.0.0.1:880; server 127.0.0.1:880; server 127.0.0.1:880; server 127.0.0.1:880; } upstream backend { server 89.188.102.66:994; server 89.188.102.66:994; server 89.188.102.66:994; server 89.188.102.66:994; server 89.188.102.66:994; server 89.188.102.66:994; } geo $slow { default 1; include /home/storage/storage/nginxgeo.conf; } proxy_buffering on; # otherwise nodes will be overloaded with slow queries, works as an accelerator proxy_temp_path /tmp/nginx-accel; proxy_buffer_size 4k; proxy_buffers 100 8k; # lower this to give more memory to other connections and offload apache workers (time wastes on connection closing on their side). log_format static '$time_local - $request_time - $upstream_response_time - $remote_addr - $request_filename - $http_referer - $request_uri $host $uri - $bytes_sent - $status - $upstream_http_newcache - $limit_rate'; access_log /ram/nginx-accel-disk.log static; server { listen 80; location / { valid_referers none blocked *.gallery.ru; set $test "$slow$invalid_referer"; set $intl "$slow"; if ($test = "11") { # intl no gallery.ru set $limit_rate 50k; } if ($test = "1") { # intl gallery.ru set $limit_rate 150k; } proxy_intercept_errors on; error_page 404 = @fallback; proxy_set_header Host $host; # add_header Accel 1; proxy_pass http://nginx_storage; } location /albums_allow/ { # if ($uri ~* "4aea9241ab463") { # set $limit_rate 100k; # } proxy_set_header Host $host; proxy_pass http://nginx_storage/$uri; break; } location @fallback { rewrite ^/ /img_node_alb.pl; access_log /ram/nginx-accel-new.log static; keepalive_timeout 0; # so when new images are requested, the connection is dropped to make downloads faster proxy_set_header Srcuri $request_uri; proxy_set_header Host $host; proxy_pass http://backend; expires off; break; } } }