PHP / Mysql / Nginx के लिए VPS ऑप्टिमाइज़ेशन चेकलिस्ट

Nginx + PHP + Mysql पर चलने वाला उच्च प्रदर्शन VPS सर्वर कैसे प्रदान करें? यह आलेख मूल सेटिंग्स की एक चेकलिस्ट प्रदान करता है जो सर्वर को महत्वपूर्ण रूप से अनुकूलित करेगा। सेटअप को 10 मिनट से अधिक नहीं लगेगा और कॉन्फ़िगरेशन फ़ाइलों को संपादित करने के अलावा किसी अन्य चीज की आवश्यकता नहीं है।

सेटिंग्स के उदाहरण डेबियन 7 ऑपरेटिंग सिस्टम और वीपीएस सर्वर के लिए 1 प्रोसेसर और 512 एमबी रैम के साथ दिए गए हैं।

nginx


सेटिंग्स /etc/nginx/nginx.conf फ़ाइल, साथ ही साथ वर्चुअल होस्ट सेटिंग्स (आमतौर पर / etc / nginx / साइट्स-सक्षम फ़ोल्डर में) बनाई जाती हैं

श्रमिकों की संख्या

नग्नेक्स श्रमिकों की संख्या को कोर की संख्या से मेल खाना चाहिए:

worker_processes 1; 


कैश कंट्रोल हेडर

कैश-कंट्रोल हेडर सेट करने से आपके सर्वर को बार-बार उन फ़ाइलों तक पहुंचने से राहत मिलेगी जो नहीं बदलती (या शायद ही कभी बदलती हैं, उदाहरण के लिए css / js / jpg / png / gif):

 location ~* \.(css|js|png|gif|jpg)$ { expires max; } 


प्रवेश लॉग

लॉगिंग के कारण हमें अनावश्यक डिस्क संचालन की आवश्यकता नहीं है, बंद करें:

 access_log off; 


यूनिक्स सॉकेट

हम PHP के साथ काम के लिए यूनिक्स सॉकेट शामिल करते हैं:

 location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; #    php-fpm, .  fastcgi_index index.php; include fastcgi_params; } 


पीएचपी


सेटिंग्स fpm php-fpm.conf कॉन्फ़िगरेशन फ़ाइल में की जाती हैं, जो हमारे मामले में यहाँ /etc/php5/fpm/pool.d/www.conf पर स्थित है।

यूनिक्स सॉकेट

हम सुनिश्चित करते हैं कि php-fpm यूनिक्स सॉकेट्स के साथ काम करता है, न कि tcp के साथ:

 listen = /var/run/php5-fpm.sock 


एपीसी

APC एक्सटेंशन स्थापित करें - आंतरिक PHP कैश, जो PHP पार्सर के लिए संसाधनों को महत्वपूर्ण रूप से बचाएगा:

 apt-get install php-apc 


MySQL सेटअप


सभी MySQL सेटिंग्स my.cnf फ़ाइल में की जाती हैं, जो आमतौर पर यहाँ /etc/my.cnf पर स्थित होती हैं

key_buffer

यदि आप केवल MyISAM तालिकाओं का उपयोग करते हैं, तो इस मान को 30% पर सेट करें ... सर्वर पर सभी उपलब्ध RAM का 40%:

 key_buffer = 128M 


innodb_buffer_pool_size

यदि आप केवल InnoDB तालिकाओं का उपयोग करते हैं, तो इस मान को अधिकतम संभव (80% उपलब्ध स्मृति) पर सेट करें। हमारे मामले में, स्थापित करें:

 innodb_buffer_pool_size = 350M 


ध्यान दें , इस तरह के ज्ञान को केवल '' ' key_buffer ' '' को कम करके स्थापित किया जा सकता है। यानी इन दो सेटिंग्स के बीच आपको एक विकल्प बनाने की ज़रूरत है जो इस्तेमाल की जाने वाली तालिकाओं के प्रकार (MyISAM या InnoDB) पर निर्भर करता है।

innodb_flush_log_at_trx_commit

InnoDB तालिकाओं के लिए महत्वपूर्ण लेखन त्वरण इस पैरामीटर को 0 पर सेट करके प्राप्त किया जा सकता है, जब प्रत्येक ऑपरेशन के बाद लिखने वाले बफर को डिस्क में फ्लश नहीं किया जाएगा, लेकिन प्रति सेकंड एक बार:

 innodb_flush_log_at_trx_commit = 0 


innodb_flush_method

इस विकल्प को O_DIRECT पर सेट करने से दोहरे कैशिंग से बचा जाता है (यह MySQL डेटा फ़ाइलों के लिए परिचालन कैश बंद कर देता है):

 innodb_flush_method = O_DIRECT 


thread_cache_size

यह विकल्प निर्मित थ्रेड्स के लिए कैश आकार निर्धारित करता है। इसे प्रयोगात्मक रूप से चुना जाता है, लेकिन शुरुआती ज्ञान को 16 तक बढ़ाना बेहतर होता है:

 thread_cache_size = 16 


query_cache_size

MySQL आंतरिक कैश चालू करें:

 query_cache_size = 16 


आवश्यकतानुसार मूल्य बढ़ाया जाना चाहिए। यह मत भूलो कि कैश उन तालिकाओं पर कुशलता से काम करना बंद कर देता है जो अक्सर अपडेट किए जाते हैं।

सारांश


सारांश के रूप में, सबसे महत्वपूर्ण सेटिंग्स के साथ एक छोटी सूची पर प्रकाश डाला गया:



सूत्रों का कहना है


इन लेखों में इन सेटिंग्स का अधिक विस्तृत वर्णन है, साथ ही सर्वर साइड को अनुकूलित करने के लिए अतिरिक्त तरीके भी हैं।

Source: https://habr.com/ru/post/In221803/


All Articles