এইচটিটিপিএস এর চেয়ে 50 গুণ বেশি ধীরে ধীরে এইচটিটিপি


8

আমার একটি ওয়েবসাইট আছে যা ক্লায়েন্টের কাছে জাভাস্ক্রিপ্ট ফাইল প্রেরণে https ব্যবহার করে। ওয়েবসাইটটি getimpleapps.com

দেখা যাচ্ছে যে এই ফাইলটি (https (20.08s - 29.08s) দিয়ে এইচটিপি (380 মিমি) দিয়ে 52 গুণ ধীর গতিতে লোড হচ্ছে।

সাইটের হোমপেজ জাভাক্রিপ্ট ফাইলের মতো একই স্বচ্ছলতা ভাগ করে দেয়।

আমি সম্প্রতি ড্রিমহোস্ট থেকে লিনোডে চলে এসেছি এবং এসএসএলকে নতুন সার্ভারে কাজ না করা পর্যন্ত এটি হ্যাক করে ফেলেছি। আমি কোনও পাগল কনফিগারেশন করিনি।

লিনোড উবুন্টু 12.04 চলছে এবং সাইটটি একটি (এলএএমপি) স্ট্যাকের শীর্ষে রয়েছে।

স্ট্যাক ওভারফ্লো সম্প্রদায়ের কাছে আমার প্রশ্ন হ'ল আমি কীভাবে আমার সার্ভারে এসএসএল এবং এইচটিটিপিএস ঠিক করতে পারি? আমি জানি যে স্ট্যাকের ওভারফ্লো এইচটিটিপিএসের স্বচ্ছলতা সম্পর্কিত প্রশ্নগুলি নিয়ে জঞ্জাল রয়েছে তবে সত্যিকারের কোনও সমাধান দেওয়া হয়নি। একটি উবুন্টু টিউটোরিয়াল বা কনফিগারেশন গাইড আদর্শ হবে।


ফাইল: /etc/apache2/sites-enabled/getsimpleapps.com

<VirtualHost *:80>
     ServerAdmin admin@getsimpleapps.com
     ServerName getsimpleapps.com
     ServerAlias www.getsimpleapps.com
     DocumentRoot /srv/sites/getsimpleapps.com/public/
     ErrorLog /srv/sites/getsimpleapps.com/logs/error.log
     CustomLog /srv/sites/getsimpleapps.com/logs/access.log combined
</VirtualHost>

<VirtualHost 50.116.58.18:443>
     SSLEngine On
     #SSLCertificateFile /etc/apache2/ssl/www.getsimpleapps.com.crt
     #SSLCertificateKeyFile /etc/apache2/ssl/www.getsimpleapps.com.key
     #SSLCACertificateFile /etc/apache2/ssl/comodo.crt
     SSLCertificateFile /etc/apache2/ssl/dreamhost/dh.crt
     SSLCertificateKeyFile /etc/apache2/ssl/dreamhost/dh.key
     SSLCACertificateFile /etc/apache2/ssl/dreamhost/dh.cer

     ServerAdmin admin@getsimpleapps.com
     ServerName getsimpleapps.com
     ServerAlias www.getsimpleapps.com
     DocumentRoot /srv/sites/getsimpleapps.com/public/
     ErrorLog /srv/sites/getsimpleapps.com/logs/error.log
     CustomLog /srv/sites/getsimpleapps.com/logs/access.log combined
</VirtualHost>

স্থানীয় ওয়ার্কস্টেশন থেকে কার্ল

thomas@workstation:~$ time curl -Iv https://getsimpleapps.com/
* About to connect() to getsimpleapps.com port 443 (#0)
*   Trying 50.116.58.18... connected
* Connected to getsimpleapps.com (50.116.58.18) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
*    subject: OU=Domain Control Validated; OU=Provided by New Dream Network, LLC; OU=DreamHost Basic SSL; CN=getsimpleapps.com
*    start date: 2012-02-23 00:00:00 GMT
*    expire date: 2013-02-22 23:59:59 GMT
*    subjectAltName: getsimpleapps.com matched
*    issuer: C=GB; ST=Greater Manchester; L=Salford; O=Comodo CA Limited; CN=PositiveSSL CA
*    SSL certificate verify ok.
> HEAD / HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: getsimpleapps.com
> Accept: */*
> 
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Thu, 02 Aug 2012 20:31:39 GMT
Date: Thu, 02 Aug 2012 20:31:39 GMT
< Server: Apache/2.2.22 (Ubuntu)
Server: Apache/2.2.22 (Ubuntu)
< X-Powered-By: PHP/5.3.10-1ubuntu3.2
X-Powered-By: PHP/5.3.10-1ubuntu3.2
< Set-Cookie: ci_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%2298c7e45da25e4aaf80f7a1e36ed4a006%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A13%3A%2250.75.209.154%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A81%3A%22curl%2F7.21.4+%28universal-apple-darwin11.0%29+libcurl%2F7.21.4+OpenSSL%2F0.9.8r+zlib%2F1.2.5%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1343939499%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3B%7D80bf8ae5040fc47780ccd59f1fb8b267; expires=Thu, 02-Aug-2012 22:31:39 GMT; path=/
Set-Cookie: ci_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%2298c7e45da25e4aaf80f7a1e36ed4a006%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A13%3A%2250.75.209.154%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A81%3A%22curl%2F7.21.4+%28universal-apple-darwin11.0%29+libcurl%2F7.21.4+OpenSSL%2F0.9.8r+zlib%2F1.2.5%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1343939499%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3B%7D80bf8ae5040fc47780ccd59f1fb8b267; expires=Thu, 02-Aug-2012 22:31:39 GMT; path=/
< Vary: Accept-Encoding
Vary: Accept-Encoding
< Content-Type: text/html
Content-Type: text/html

< 
* Connection #0 to host getsimpleapps.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

real    0m29.078s
user    0m0.018s
sys 0m0.005s

লিনোড সার্ভার থেকে কার্ল (এসএসএসের মাধ্যমে)

thomas@vannevar:~$ time curl -Iv https://getsimpleapps.com/happy-ending/api/script.js?shop=holstee.myshopify.com
* About to connect() to getsimpleapps.com port 443 (#0)
*   Trying 50.116.58.18... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
*    subject: OU=Domain Control Validated; OU=Provided by New Dream Network, LLC; OU=DreamHost Basic SSL; CN=getsimpleapps.com
*    start date: 2012-02-23 00:00:00 GMT
*    expire date: 2013-02-22 23:59:59 GMT
*    subjectAltName: getsimpleapps.com matched
*    issuer: C=GB; ST=Greater Manchester; L=Salford; O=Comodo CA Limited; CN=PositiveSSL CA
*    SSL certificate verify ok.
> HEAD /happy-ending/api/script.js?shop=holstee.myshopify.com HTTP/1.1
> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: getsimpleapps.com
> Accept: */*
> 
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Thu, 02 Aug 2012 20:43:30 GMT
Date: Thu, 02 Aug 2012 20:43:30 GMT
< Server: Apache/2.2.22 (Ubuntu)
Server: Apache/2.2.22 (Ubuntu)
< X-Powered-By: PHP/5.3.10-1ubuntu3.2
X-Powered-By: PHP/5.3.10-1ubuntu3.2
< Set-Cookie: ci_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%2204a54136cab08f9fdc5f082ebb8e739a%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A12%3A%2250.116.58.18%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A97%3A%22curl%2F7.22.0+%28i686-pc-linux-gnu%29+libcurl%2F7.22.0+OpenSSL%2F1.0.1+zlib%2F1.2.3.4+libidn%2F1.23+librtmp%2F2.3%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1343940210%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3B%7De7d7b8e2ca69b34c531ba7472b4b21b7; expires=Thu, 02-Aug-2012 22:43:30 GMT; path=/
Set-Cookie: ci_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%2204a54136cab08f9fdc5f082ebb8e739a%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A12%3A%2250.116.58.18%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A97%3A%22curl%2F7.22.0+%28i686-pc-linux-gnu%29+libcurl%2F7.22.0+OpenSSL%2F1.0.1+zlib%2F1.2.3.4+libidn%2F1.23+librtmp%2F2.3%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1343940210%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3B%7De7d7b8e2ca69b34c531ba7472b4b21b7; expires=Thu, 02-Aug-2012 22:43:30 GMT; path=/
< Content-Type: text/javascript
Content-Type: text/javascript
* no chunk, no close, no size. Assume close to signal end

< 
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

real    0m25.991s
user    0m0.015s
sys 0m0.022s

1
"It turns out that this file is loading 52% slower with https (20.08s - 29.08s) that with http (380ms)."- হাহ? দয়া করে, আপনি কি সেখানে আপনার ইউনিট এবং ব্যাকরণ দুটিবার পরীক্ষা করতে পারেন। এটি খুব একটা বোঝায় না।
MDMarra

1
আমি মনে করি ওপি মানে 53 বার ধীর। এইচটিটিপিএস সত্যিই ধীরে ধীরে লোড হচ্ছে।

সম্ভবত আপনি এটিতে ভার্চুয়ালমিন ফেলে দিন এবং এটি আপনার জন্য সবকিছু কনফিগার করার অনুমতি দিন।
অ্যান্ড্রু স্মিথ

1
হুম। এটা ভুল. অ্যাপাচি লগগুলিতে এমন কিছু আছে যা ইঙ্গিত দিতে পারে যে মন্দাটি কোথায়? আমার সার্ভারে, আমি দেখতে পাচ্ছি যে এটি HTTPS এর জন্য 263ms এবং HTTP এর জন্য 84ms ms আপনি যে খুব বড় পার্থক্যটি দেখছেন তা অন্য কোনও কারণে।
সিজেসি

1
আপনার অ্যাপাচি কনফিগারেশন পেস্ট করুন।
মাইকেল হ্যাম্পটন 19

উত্তর:


3

আমার একই সমস্যা ছিল, এইচটিটিপি এবং এইচটিটিপিএসের মধ্যে প্রায় একই রকম প্রতিক্রিয়া সময়ের পার্থক্যগুলির সাথে। এই সমস্যাটি হ'ল @htmltiger এর উত্তরের মতোই দেখা গেছে : অ্যাপাচি 2 কেবলমাত্র কর্মী প্রক্রিয়া থেকে বেরিয়ে আসছে।

কোনও কর্মী মুক্ত না হওয়া অবধি নতুন অনুরোধগুলিকে সারিবদ্ধ করার কারণ হয়ে থাকে এবং পরবর্তী একটি [ উত্স ] প্রসেস করা যায় না । আমি মনে করি যে এটি কেবল এইচটিটিপিএসকেও নয় এবং এইচটিটিপিএসকেও প্রভাবিত করে তার কারণ হ'ল আপনার প্রায় সমস্ত ট্র্যাফিক এইচটিটিপিওর ওভারে চলেছে এবং অ্যাপাচি এইচটিটিপি এবং এইচটিটিপিএসকে অনুরূপ অগ্রাধিকার দেয়, পরিবর্তে প্রতিটি সারি থেকে একটি অনুরোধ গ্রহণ করে। সুতরাং যখন এইচটিটিপিএসের সারিটি দীর্ঘতর হয়, অনুরোধগুলি আরও দীর্ঘ অপেক্ষা করে। প্রকৃতপক্ষে দুটি সারি রয়েছে, যেহেতু সারিটি লিনাক্সটি লিনাক্স টিসিপি সংযোগের ক্যু মেকানিজম এবং লিনাক্স প্রতি বন্দরে একটি সারি সরবরাহ করে।

কারণ নির্ণয়

এটি যদি আপনার সমস্যা হয় তবে নিম্নলিখিত উপসর্গগুলি প্রয়োগ করা হবে:

  • সেরা সূচক: আপনার সার্ভারে, apachectl statusদেখায় যে সমস্ত অনুমোদিত কর্মী প্রক্রিয়া চলছে। .প্রসেস স্কোরবোর্ড লাইনে কোনও বিন্দু বাদ দেওয়া হয় না এমন ক্ষেত্রে এটি প্রদর্শিত হয় "কোনও বর্তমান প্রক্রিয়াবিহীন ওপেন স্লট" বাকি নেই। লাইনটি উদাহরণস্বরূপ এটির মতো দেখতে পারে:

    KKKKKKRKKKRRCWKKKCCKWKKKKCRCKKKKKKKCKCKKKKWRKKKKWRWKKKKKKCWKKWKKK
    
  • আপনি আপনার মূল অ্যাপাচি 2 ত্রুটি লগতে এই জাতীয় বার্তা দেখতে পান ( /var/log/apache2/error.logডোমেন নির্দিষ্ট নয়):

    [mpm_prefork:error] [pid 4715] AH00161: server reached MaxRequestWorkers 
        setting, consider raising the MaxRequestWorkers setting
    
  • আপনার অ্যাপাচি ব্যাকলগে অনেকগুলি প্রক্রিয়া রয়েছে। মতে এই গভীর নিবন্ধ , আপনার কাছ থেকে এই দেখতে পারেন unacked:মান ss -lti '( sport = :https )'আউটপুট। সংস্করণ বা কনফিগারেশনের উপর নির্ভর করে সেই ssমানটি অনুপস্থিত হতে পারে।

  • "বিল্ডিং" হিসাবে অনুরোধ করা প্রাথমিক URL টির জন্য "সময়" ট্যাবে বেশিরভাগ বিলম্ব (বলুন, 20 এর 17 টি) ফায়ারফক্স নেটওয়ার্ক কনসোলে প্রদর্শিত হয়েছে।

সমাধান

এটি ধরে নিয়েছে আপনি অ্যাপাচে প্রিফার্ক এমপিএম সার্ভার মডিউলটি ব্যবহার করেন । এটি "ইভেন্ট" এবং "কর্মী" এমপিএম মডিউলগুলির ক্ষেত্রে যেমন - বিশদ

  1. সম্পাদনা করুন /etc/apache2/mods-enabled/mpm_prefork.confএবং MaxRequestWorkersসেটিংস বাড়ান ।

  2. আপনি যদি এটি 256 এর ডিফল্টের বাইরে ফেলে থাকেন তবে নিজের পরিবর্তন কার্যকর করার জন্য আপনাকে একই মানতে সার্ভারলিমিট সেট করতে হবে।

  3. পরিবর্তনগুলি প্রয়োগ করুন: service apache2 reload

  4. apachectl statusনতুন MaxRequestWorkersসেটিং কার্যকর কিনা সেটির স্কোরবোর্ড আউটপুটটিতে নিশ্চিত হন । এটি অক্ষরের স্কোরবোর্ড লাইনের দৈর্ঘ্যের সমতুল্য হতে হবে।

  5. যদি সেটিংসটি এখনও কার্যকর না হয় তবে /etc/apache2পুরানো কনফিগারেশন নির্দেশাবলী (এবং তাদের এমনকি পুরানো অবজ্ঞাত প্রতিশব্দ) অনুসন্ধান করুন যা আপনার পরিবর্তনকে ওভাররাইট করতে পারে:

    grep -R MaxRequestWorkers /etc/apache2/*
    grep -R MaxClients /etc/apache2/*
    

ডিফারেনশিয়াল ডায়াগনসিস

আপনি যদি এইচটিটিপিএস এইচটিটিপি-র তুলনায় অনেক ধীর গতিতে দেখছেন তবে পৃষ্ঠা পুনরায় লোডের (একমাত্র গড়ে) সিরিজের প্রতিটি সময় নয়, তবে আপনার এই অভিনব সমস্যার একটি বৈকল্পিক হতে পারে , এসএসএল পোর্ট 443 এ দুটি অ্যাপাচি 2 সার্ভার চলমান রয়েছে।


0

সিফারটি আরসি 4-এমডি 5 (পারফরম্যান্স এবং সুরক্ষার ভাল ভারসাম্য) এ পরিবর্তন করার চেষ্টা করুন, যেমন:

SSLCipherSuite RC4-MD5

চিয়ার্স


2
এইচটিটিপি এবং এইচটিটিপিএসের মধ্যে প্রতিবেদন করা বৈষম্য একটি সাইফার পছন্দের কারণে নয়। এটি অন্য কিছু ভুল কনফিগারেশন।
সিজেসি

@ সিজেসি আমি দেখতে চাই যে এটি কোনও পার্থক্য করে কিনা ... চেষ্টা করে আঘাত করা যায় না।
HTTP500

@ এইচটিটিপি 500 এটিকে httpd.conf- এ রেখেছেন? কি হবে SSLProtocol all?
টমাসরেগি

@ থমাসেরেগগি, কেবল এটি আপনার এসএসএলইগাইন অন লাইনের নিচে রাখুন। আমি পরামর্শ দেব: এসএসএলপ্রোটোকল অল
এসএসএলভি

কি?! এটা এখন অনেক দ্রুত। আমি অ্যাপাচি 2 পুনরায় চালু করলাম না ঠিক আছে?
টমাসরেগি

0

আমার একটি ব্যস্ত সার্ভারের জন্য একই ধরণের সমস্যা ছিল তবে ম্যাকএমকিউয়ার্কেস্ট ওয়ার্কার্সকে এমপিএম_প্রেফারক.কন্টে 400 এ বৃদ্ধি করে এটি ঠিক করে দিয়েছে।


-1

আমার সমস্যাটি দেখা যাচ্ছে আমার চাবিগুলি অন্য সার্ভারের ছিল। আমার একটি নতুন শংসাপত্র পাওয়ার দরকার ছিল এবং এটি নতুন কী দিয়ে সেট আপ করা দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.