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;
पीएचपी
सेटिंग्स 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
आवश्यकतानुसार मूल्य बढ़ाया जाना चाहिए। यह मत भूलो कि कैश उन तालिकाओं पर कुशलता से काम करना बंद कर देता है जो अक्सर अपडेट किए जाते हैं।
सारांश
सारांश के रूप में, सबसे महत्वपूर्ण सेटिंग्स के साथ एक छोटी सूची पर प्रकाश डाला गया:
- nginx
- worker_processes
- स्टैटिक्स के लिए अधिकतम समय सीमा समाप्त
- access_log बंद करें
- यूनिक्स कुर्सियां
- पीएचपी
- MySQL
- key_buffer
- innodb_buffer_pool_size
- innodb_flush_log_at_trx_commit = 0
- query_cache_size
- innodb_flush_method = O_DIRECT
- thread_cache_size
सूत्रों का कहना है
इन लेखों में इन सेटिंग्स का अधिक विस्तृत वर्णन है, साथ ही सर्वर साइड को अनुकूलित करने के लिए अतिरिक्त तरीके भी हैं।