النتائج 1 إلى 12 من 12

الموضوع: (سؤال) طريقة جعل ملفاتي في السيرفر ما تتجزأ في برامج اكمال التحميل

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476

    (سؤال) طريقة جعل ملفاتي في السيرفر ما تتجزأ في برامج اكمال التحميل



    السلام عليكم

    عندي الاعضاء ذبحوني من التحميل بطريقة خاطئة وهي تجزيء ملف البرنامج مثلاً الى 10 اجزاء وهالشيء يسبب ضغط كبير على السيرفر لأن كل جزء يعتبر كونكشن جديد.

    كيف اقدر اخلي العضو فقط يحمل الملف من الموقع كملف واحد ولا يقبل التجزئة او تقسيمه في برامج اكمال التحميل وما شابهها؟

    كلي أمل بكم خبراء سوالف الكرام.





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476


    معقوله محد يعرف؟

    المشكلة شفت الطريقة كثير في مواقع التحميل الاجنبية ولكن كل ما راسلت ويب ماستر فيهم ما يرد -_-





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Aug 2004
    المشاركات
    2,178


    فعلا حتى انا محتاج الطريقة

    اظن ان الفكرة انه ماتخلي الزائر يفتح اتصال جديد يعني بس اتصال واحد لزائر واحد فقط

    بس طريقة التطبيق ماعرفها ياريت احد يساعدنا فيها ويكون مشكور






  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476


    والله من زمان وانا ابحث عن هالطريقة لأن مواقع اجنبية كثير معتمده هالطريقة ومرتاحة سيرفراتهم .. وتوقعت القى الجواب لدى خبراء سوالف سوفت .. وما زلت مؤمن ان الجواب لديهم.





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Aug 2004
    المشاركات
    2,178


    لقيت شي ممكن يفيدنا

    With the Module "mod_throttle" you can vary the settings for each Virtual hosts.

    For example, you need to limit the data usage for a particular domain for predefined number of days.

    ------------------------------------
    Edit your /etc/httpd/conf/httpd.conf and locate the virtualhost entry for the site you wish to throttle. Just BEFORE the </VirtualHost> entry, insert:

    <IfModule mod_throttle.c>
    ThrottlePolicy Volume 10G 30d
    </IfModule>
    <Location /throttle-me>
    SetHandler throttle-me
    </Location>

    The ThrottlePolicy line is the key. The first number is the amount of data and acceptable letters are G, M and K. The second number is the period and acceptable letters are m, w, d, h, and s.

    Then restart Apache (service httpd restart) Now you can go to:

    http://throttleddomain.com(the domain given to throttle)/throttle-me

    And see the status of the throttle.
    ---------------------------------

    More details regarding mod_throttle can be found on the link below.

    ---------------------------------
    Installing Mod_Throttle on cPanel - cPanel Tutorials
    ---------------------------------

    Hope your query is cleared.
    Please get back to us if you need any further clarifications.

    هذا المودل الأول

    Apache web server, I assume?

    There's always LimitIPConn (mod_limitipconn.c), which limits the number of simultaneous connections per IP address, but you want to be careful to not break normal requests for images by web site visitors

    وهذا الثاني

    ياريت احد يشرح لنا وش الافضل للي نبغاه






  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2006
    المشاركات
    574


    العمليه سهله جدا

    تستطيع عمل ذلك بعدة طرق لكن الاسهل هو عن طريق NetFilter
    و هو تحديد عدد الاتصال لكل مستخدم عن طريق الاي بي
    تقدر تعدل فيه على كيفك مثلا تخليه لكل اي بي صلاحيه يفتح اتصالين Connections


    في iptables اضف هذا الامر

    كود:
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
      --set
    
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
      --update --seconds 600 --hitcount 2 -j DROP
    الامر السابق يعمل على البورت 22 تعدل عليه بالبورت الي تستعمله انت
    و ايضا في الامر السابق يسمح لكل مستخدم بفتح عدد 2 كونكشن بنفس الدقيقه

    ____________

    او عن طريق

    mod_evasive

    بالكود التالي

    كود:
    #include <ctype.h>
    #include <stdlib.h>
    #include <string.h>
    
    #include "base.h"
    #include "log.h"
    #include "buffer.h"
    
    #include "plugin.h"
    
    #include "inet_ntop_cache.h"
    
    /**
     * mod_evasive
     *
     * we indent to implement all features the mod_evasive from apache has
     *
     * - limit of connections per IP
     * - provide a list of block-listed ip/networks (no access)
     * - provide a white-list of ips/network which is not affected by the limit
     *   (hmm, conditionals might be enough)
     * - provide a bandwidth limiter per IP
     *
     * started by:
     * - w1zzard@techpowerup.com
     */
    
    typedef struct {
    	int max_conns;
    } plugin_config;
    
    typedef struct {
    	PLUGIN_DATA;
    	
    	plugin_config **config_storage;
    	
    	plugin_config conf; 
    } plugin_data;
    
    INIT_FUNC(mod_evasive_init) {
    	plugin_data *p;
    	
    	p = calloc(1, sizeof(*p));
    	
    	return p;
    }
    
    FREE_FUNC(mod_evasive_free) {
    	plugin_data *p = p_d;
    	
    	UNUSED(srv);
    
    	if (!p) return HANDLER_GO_ON;
    	
    	if (p->config_storage) {
    		size_t i;
    		for (i = 0; i < srv->config_context->used; i++) {
    			plugin_config *s = p->config_storage[i];
    						
    			free(s);
    		}
    		free(p->config_storage);
    	}
    	
    	free(p);
    	
    	return HANDLER_GO_ON;
    }
    
    SETDEFAULTS_FUNC(mod_evasive_set_defaults) {
    	plugin_data *p = p_d;
    	size_t i = 0;
    	
    	config_values_t cv[] = { 
    		{ "evasive.max-conns-per-ip",    NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },
    		{ NULL,                          NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
    	};
    	
    	p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
    	
    	for (i = 0; i < srv->config_context->used; i++) {
    		plugin_config *s;
    		
    		s = calloc(1, sizeof(plugin_config));
    		s->max_conns       = 0;
    		
    		cv[0].destination = &(s->max_conns);
    		
    		p->config_storage[i] = s;
    	
    		if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {
    			return HANDLER_ERROR;
    		}
    	}
    	
    	return HANDLER_GO_ON;
    }
    
    #define PATCH(x) \
    	p->conf.x = s->x;
    static int mod_evasive_patch_connection(server *srv, connection *con, plugin_data *p) {
    	size_t i, j;
    	plugin_config *s = p->config_storage[0];
    
    	PATCH(max_conns);
    	
    	/* skip the first, the global context */
    	for (i = 1; i < srv->config_context->used; i++) {
    		data_config *dc = (data_config *)srv->config_context->data[i];
    		s = p->config_storage[i];
    		
    		/* condition didn't match */
    		if (!config_check_cond(srv, con, dc)) continue;
    		
    		/* merge config */
    		for (j = 0; j < dc->value->used; j++) {
    			data_unset *du = dc->value->data[j];
    			
    			if (buffer_is_equal_string(du->key, CONST_STR_LEN("evasive.max-conns-per-ip"))) {
    				PATCH(max_conns);
    			}
    		}
    	}
    	
    	return 0;
    }
    #undef PATCH
    
    URIHANDLER_FUNC(mod_evasive_uri_handler) {
    	plugin_data *p = p_d;
    	size_t conns_by_ip = 0;
    	size_t j;
    
    	if (con->uri.path->used == 0) return HANDLER_GO_ON;
    	
    	mod_evasive_patch_connection(srv, con, p);
    	
    	/* no limit set, nothing to block */	
    	if (p->conf.max_conns == 0) return HANDLER_GO_ON;
    
    	for (j = 0; j < srv->conns->used; j++) {
    		connection *c = srv->conns->ptr[j];
    
    		if (c->dst_addr.ipv4.sin_addr.s_addr == con->dst_addr.ipv4.sin_addr.s_addr) {
    			conns_by_ip++;
    	
    			if (conns_by_ip > p->conf.max_conns) {
    				log_error_write(srv, __FILE__, __LINE__, "ss",
    					inet_ntop_cache_get_ip(srv, &(con->dst_addr)),
    					"turned away. Too many connections.");
    
    				con->http_status = 403;
    				return HANDLER_FINISHED;
    			}
    		}
    	}
    	
    	return HANDLER_GO_ON;
    }
    
    
    int mod_evasive_plugin_init(plugin *p) {
    	p->version     = LIGHTTPD_VERSION_ID;
    	p->name        = buffer_init_string("evasive");
    	
    	p->init        = mod_evasive_init;
    	p->set_defaults = mod_evasive_set_defaults;
    	p->handle_uri_clean  = mod_evasive_uri_handler;
    	p->cleanup     = mod_evasive_free;
    	
    	p->data        = NULL;
    	
    	return 0;
    }







  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476


    جزاكم الله خير اخواني ..

    ممكن تشرح لنا الطريقة بشكل تفصيلي اكثر اخوي Amman-DJ للخطوة الأفضل منهما؟

    يعني بالضبط هل ادخل على الشيل وبعد ذلك اكتب الامر الفلاني الخ ..

    وجزاك الله خير على المتابعة يالغالي.





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2006
    المشاركات
    574


    ممكن تشرح لنا الطريقة بشكل تفصيلي اكثر اخوي Amman-DJ للخطوة الأفضل منهما؟

    يعني بالضبط هل ادخل على الشيل وبعد ذلك اكتب الامر الفلاني الخ ..
    عيوني لك انت تامر

    انا افضل استعمال الطريقه الاولى و هي كالتالي

    ادخل الشل

    و قم بتحرير ملف iptables عن طريق محرر الملفات المفضل لديك او الموجود في سيرفرك
    و لنفرض انه Pico
    اذا سيكون الامر كالتالي

    كود:
    pico etc/sysconfig/iptables
    هنا بتضيف الاوامر Rule
    فقط عدل على الاوامر الي كتبتها لك بالسابق بما يناسبك و اضفهم الى قائمة الاوامر

    و اضغط
    Ctrl+X
    ثم
    Y
    ثم
    Enter

    و على ما اعتقد يجب عمل رستارت للبايند سيرفس عن طريق الامر التالي

    كود:
    /etc/init.d/bind restart

    سلامتكم








  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476


    تسلم عيونك يالغالي :shy:

    سويت الطريقة وكتبت الكود بهالطريقة (ابيه يكون فقط اتصال واحد في كل تحميل، فهل صح الكود أو لا؟):

    كود:
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
      --set
    
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
      --update --seconds 600 --hitcount 1 -j DROP
    ولما وصلت عند هالنقطة:

    و اضغط
    Ctrl+X
    ثم
    Y
    ثم
    Enter
    كتب لي انه ما فيه مجلد او ملف بالاسم هذا .. طبعاً عدلت الرابط وخليته كذا:

    كود:
    /etc/sysconfig/iptables
    يعني اضفت فقط علامة / في بداية السطر وتمت عملية الحفظ (ما ادري اذا اللي سويته صح او لا ><)

    بعدها كتبت امر الريستارت للبند وكتب لي ايرورر .. ورحت للـ WHM وسويت الريستارت من هناك للـ Bind.

    طبعاً جربت احمل ملف من الموقع بواسطة برنامج اكمال تحميل وخليته يسوي 16 كونكشن عشان اقطع الشك باليقين .. وللأسف الطريقة ما نفعت :eek3: يعني فتح 16 كونكشن وجلس يحملهم

    انتظر ردك اخوي Amman-DJ لا هنت ..





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476


    ما زلت بانتظار ردك اخوي Amman-DJ لا هنت =)





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2003
    المشاركات
    476


    للرفع للأهمية لأي من الأخوان خبراء السيرفرات ..

    السيرفر بعد كتابة الأمر صار يعطي خطأ 500 لما افتح موقعي واللود يرتفع بشكل رهيب كل كم ساعه وما يحلها الا الرويبوت للسيرفر.

    يا ليت من الأخوان اخباري بطريقة لعمل Undo أو استرجاع او حذف الأمر اللي كتبته فوق.

    والله يجزاكم حير مقدماً.





    __________________
    http://bit.ly/i3NDRp

    سبحان الله وبحمده، سبحان الله العظيم

  12. #12
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2006
    المشاركات
    574


    اخوي الامر ماله علاقه بالخطاء ولا يؤثر على السيرفر

    اعتقد ان عندك خطاء في الاعدادات










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض