По мере поступления проблем изучаем..
п.с. хабр не раз спасал по закрытию уязвимостей - к примеру там где при станд. конфиге нжинкс можно было загрузить картинку-скрипт и открыть его *.gif%20php кажись так.
Наивно.. но все учесть сразу нельзя )
Тогда нужны SSD по 1ТБ :)
Врядли дешево будет
Винты были под сильной нагрузкой, решением было перенести часть файлов на другой жесткий диск. Вроде теперь все нормально.
На скрине выше iostat показывает 97%
Jake Foley добавил 26.07.2011 в 13:44
Есть ли возможность собрать информацию какой файл чаще всего использьзуется/загружается ? И допустим вывести в виде статистики
Что-то мне подсказывает что это парочка порно картинок, а последнее время у меня просто нет возможности их чистить :)
Да, в 3м посте было указано CentOS
iostat -x 3
Вот еще это есть:
Что-то дополнительно сложновато достать, по крайней мере сейчас (
CentOS
Для начала предоставляю графики:
Конфиг Nginx:
user nginx; worker_processes 16; worker_rlimit_nofile 50000; #timer_resolution 100ms; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; #---------------------------------------------------------------------- # Events Module # # http://wiki.codemongers.com/NginxEventsModule # #---------------------------------------------------------------------- events { worker_connections 82000; use epoll; } #---------------------------------------------------------------------- # HTTP Core Module # # http://wiki.codemongers.com/NginxHttpCoreModule # #---------------------------------------------------------------------- http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access.log main; log_format trafctr '$msec $status $request_length $bytes_sent'; #access_log /var/log/nginx/traffic_vhost trafctr; sendfile on; tcp_nopush on; tcp_nodelay on; directio 2m; output_buffers 1 2m; aio on; #keepalive_timeout 0; keepalive_timeout 30; reset_timedout_connection on; gzip off; gzip_buffers 16 8k; #gzip_min_length 1100; gzip_comp_level 5; gzip_disable "Mozilla/4" "Mozilla/4\.0[678]" "MSIE [1-6].(?!.*SV1)"; gzip_types text/css text/xml application/x-javascript text/plain image/gif; client_max_body_size 16m; server_names_hash_max_size 128; server_names_hash_bucket_size 128; large_client_header_buffers 8 8k; open_file_cache max=5000 inactive=30s; open_file_cache_valid 30s; open_file_cache_min_uses 1; open_file_cache_errors off; client_header_timeout 1m; client_body_timeout 2m; send_timeout 1m; proxy_send_timeout 240; proxy_read_timeout 240; fastcgi_send_timeout 240; fastcgi_read_timeout 240; recursive_error_pages off; fastcgi_temp_path /var/lib/nginx/tmp/tmpfs/fastcgi; fastcgi_cache_path /var/lib/nginx/tmp/tmpfs/fastcgi_cache levels=2:2 keys_zone=IMG:256m inactive=6h max_size=3970M; #3870 fastcgi_cache_key $server_name$request_uri; fastcgi_cache_valid 200 302 301 404 2d; # fastcgi_cache_valid 301 1d; #fastcgi_cache_valid any 2d; fastcgi_cache_min_uses 1; fastcgi_ignore_headers Expires Cache-Control; # fastcgi_cache IMG; # Load config files from the /etc/nginx/conf.d directory #include /etc/nginx/conf.d/*.conf; # # The default server # log_format isp '$bytes_sent $request_length'; server { listen 91.197.128.226:80; listen 91.197.128.225:80; server_name 91.197.128.226 91.197.128.225; rewrite .* http://xmages.net/? permanent; } server { listen 91.197.128.226:80 default sndbuf=64k rcvbuf=32k deferred; listen 91.197.128.225:80; server_name xmages.net www.xmages.net; location ~ \00 { deny all; } include /etc/nginx/xmages.net.conf; rewrite ^(/manager/.*)$ https://$host$1 permanent; location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) { proxy_pass http://91.197.128.226:8080; proxy_redirect http://xmages.net:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { root /home/www/dymytrov/data/www/xmages.net; access_log off; #/home/www/httpd-logs/xmages.net.access.log; # error_page 404 = @fallback; error_page 404 = /home/www/dymytrov/data/www/xmages.net/view-image.htm; } location / { error_page 404 = /home/www/dymytrov/data/www/xmages.net/view-image.htm; proxy_pass http://91.197.128.226:8080; proxy_redirect http://xmages.net:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location @fallback { error_page 404 = /home/www/dymytrov/data/www/xmages.net/view-image.htm; proxy_pass http://91.197.128.226:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } }
И инклуд /etc/nginx/exampleimghost.net.conf
rewrite "^/out\.php/([a-z]{1})(.*)$" /out.php?$1=$2&$args last; rewrite ^/show\.php/(.*)$ /show.php?img=$1 last; rewrite ^/view\.php/(.*)$ /view.php?img=$1 last; rewrite "^/images\.php/([a-z]{1})(.*)$" /images.php?$1=$2&$args last; location ~* ^/out\.php { fastcgi_pass 127.0.0.1:9001; #fastcgi_pass unix:/var/www/fpm/php-fpm_xmages.socket; root /home/www/dymytrov/data/www/xmages.net; include fastcgi_params.default; fastcgi_index index-main.php; fastcgi_connect_timeout 60; fastcgi_send_timeout 240; fastcgi_read_timeout 240; index index-main.php; set $srv_root /home/www/dymytrov/data/www/xmages.net; fastcgi_param DOCUMENT_ROOT $srv_root; fastcgi_param SCRIPT_FILENAME $srv_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $srv_root$fastcgi_script_name; access_log /home/www/httpd-logs/xmages.net.access.log; access_log /var/log/nginx/traffic_vhost trafctr; #error_page 404 = @fallback; error_page 404 = /home/www/dymytrov/data/www/xmages.net/view-image.htm; fastcgi_cache IMG; #aio on; #directio 512; #output_buffers 1 128k; } location ~ /adminz/.*.php$ { fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/www/fpm/php-fpm.socket; root /home/www/dymytrov/data/www/xmages.net; include fastcgi_params.default; fastcgi_index index-main.php; fastcgi_connect_timeout 60; fastcgi_send_timeout 240; fastcgi_read_timeout 240; index index-main.php; set $srv_root /home/www/dymytrov/data/www/xmages.net; fastcgi_param DOCUMENT_ROOT $srv_root; fastcgi_param SCRIPT_FILENAME $srv_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $srv_root$fastcgi_script_name; access_log /home/www/httpd-logs/xmages.net.access.log; access_log /var/log/nginx/traffic_vhost trafctr; error_page 404 = @fallback; } location ~ .php$ { fastcgi_pass 127.0.0.1:9001; #fastcgi_pass unix:/var/www/fpm/php-fpm_xmages.socket; root /home/www/dymytrov/data/www/xmages.net; include fastcgi_params.default; fastcgi_index index-main.php; fastcgi_connect_timeout 60; fastcgi_send_timeout 240; fastcgi_read_timeout 240; index index-main.php; set $srv_root /home/www/dymytrov/data/www/xmages.net; fastcgi_param DOCUMENT_ROOT $srv_root; fastcgi_param SCRIPT_FILENAME $srv_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $srv_root$fastcgi_script_name; access_log /home/www/httpd-logs/xmages.net.access.log; access_log /var/log/nginx/traffic_vhost trafctr; #error_page 404 = @fallback; error_page 404 = /home/www/dymytrov/data/www/xmages.net/view-image.htm; }
Будет пунктом в развитие системы на будующее :)
Вконтакте сообщение размещается именно в заметках.
Самое главное - работает отлично :)