जब आपको अपनी वेबसाइट चलाने के लिए एक समर्पित वर्चुअल सर्वर मिलता है, तो संभावना अच्छी होती है कि यह सभी के लिए कॉन्फ़िगर किया गया हो, और वेबसाइट चलाने के लिए अधिकतम प्रदर्शन को अनुकूलित न किया गया हो।
अंतर्वस्तु[ छिपाना ]
|
अवलोकन
कई समस्या वाले क्षेत्र हैं जहाँ हम प्रदर्शन को अधिकतम करना चाहते हैं:
-
लिनक्स विन्यास
आमतौर पर ऐसी सेवाएं चल रही हैं जो स्मृति को बर्बाद करने की ज़रूरत नहीं हैं, जो कि अधिक कनेक्शन के लिए उपयोग की जा सकती हैं। -
MySQL कॉन्फ़िगरेशन
अक्सर डिफ़ॉल्ट सेटिंग्स एक छोटे सर्वर पर आधारित होती हैं, हम प्रदर्शन को काफी हद तक बढ़ाने के लिए कुछ महत्वपूर्ण बदलाव जोड़ सकते हैं। -
अपाचे विन्यास
डिफ़ॉल्ट रूप से अधिकांश होस्टिंग प्रदाता लगभग हर मॉड्यूल के साथ अपाचे स्थापित करते हैं। यदि आप कभी भी उनका उपयोग करने जा रहे हैं, तो मॉड्यूल लोड करने का कोई कारण नहीं है। -
PHP विन्यास
डिफ़ॉल्ट PHP कॉन्फ़िगरेशन समान रूप से फूला हुआ है, आमतौर पर एक टन अतिरिक्त अतिरिक्त मॉड्यूल स्थापित होते हैं। -
PHP ओपकोड कैश
PHP को हर बार लिपियों को फिर से जोड़ने की अनुमति देने के बजाय, विशाल प्रदर्शन बूस्ट के लिए मेमोरी में संकलित लिपियों को कैश करेगा। -
बैकअप
संभवत: कुछ स्वचालित बैकअप सेटअप करना चाहिए, क्योंकि आपका होस्टिंग प्रदाता आपके लिए ऐसा करने वाला नहीं है। -
सुरक्षा
निश्चित रूप से, लिनक्स डिफ़ॉल्ट रूप से पर्याप्त सुरक्षित है, लेकिन आमतौर पर कुछ चकाचौंध सुरक्षा मुद्दे हैं जिन्हें आप कुछ त्वरित सेटिंग्स के साथ ठीक कर सकते हैं।
लिनक्स विन्यास
आपके द्वारा किए जा सकने वाले काफी सारे मोड़ हैं, जो आपके द्वारा उपयोग किए जा रहे सर्वर के आधार पर थोड़ा भिन्न होगा। ये tweaks CentOS चलाने वाले सर्वर के लिए हैं, लेकिन उन्हें DV सर्वरों के बहुमत के लिए काम करना चाहिए।
डीएनएस को अक्षम करें
यदि आपका होस्टिंग प्रदाता DNS को आपके डोमेन (संभावना) के लिए संभालता है, तो आप DNS सेवा को चलाने से अक्षम कर सकते हैं।
निष्क्रिय करें /etc/init.d/onym stop chmod 644 /etc/init.d/onym
चामोड कमांड स्क्रिप्ट से निष्पादन की अनुमति को हटा देता है, इसे स्टार्टअप पर चलने से रोकता है।
SpamAssassin को अक्षम करें
यदि आप अपने सर्वर पर ईमेल खातों का उपयोग नहीं कर रहे हैं, तो आपको एंटी-स्पैम टूल चलाने से परेशान नहीं होना चाहिए। (इसके अलावा आपको Google Apps, बहुत बेहतर ईमेल समाधान की जांच करनी चाहिए)
/etc/init.d/psa-spamassassin रोकें chmod 644 /etc/init.d/psa-spamassassin
Xinetd को अक्षम करें
Xinetd प्रक्रिया में कई अन्य प्रक्रियाएं हैं, जिनमें से कोई भी एक विशिष्ट वेब सर्वर के लिए उपयोगी नहीं है।
/etc/init.d/xinetd रोकें chmod 644 /etc/init.d/xinetd
Plesk मेमोरी उपयोग सीमित करें
If you use the plesk panel, you can force it to use less memory by adding an options file.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Add the following lines to the file:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
ध्यान दें कि यह विकल्प MediaTemple DV सर्वर पर काम करने के लिए जाना जाता है, लेकिन किसी अन्य पर इसकी जाँच नहीं की गई है। (देख संदर्भ )
अक्षम करें या Plesk बंद करें (वैकल्पिक)
यदि आप वर्ष में केवल एक बार Plesk का उपयोग करते हैं, तो इसे बहुत कम चलाने का बहुत कम कारण है। ध्यान दें कि यह कदम पूरी तरह से वैकल्पिक है, और थोड़ा और अधिक उन्नत है।
Plesk को बंद करने के लिए निम्न कमांड चलाएँ:
/etc/init.d/psa रोकें
आप निम्न कमांड चलाकर इसे स्टार्टअप पर चलने से अक्षम कर सकते हैं:
chmod 644 /etc/init.d/psa
ध्यान दें कि यदि आप इसे अक्षम करते हैं, तो आप फ़ाइल अनुमतियों को वापस लिए बिना इसे मैन्युअल रूप से प्रारंभ कर सकते हैं (chmod u + x)।
MySQL कॉन्फ़िगरेशन
क्वेरी कैश सक्षम करें
अपनी /etc/my.cnf फाइल को खोलें और अपने [mysqld] सेक्शन में निम्न पंक्तियों को इस तरह जोड़ें:
[mysqld] क्वेरी-कैश-प्रकार = 1 क्वेरी-कैश-आकार = 8M
यदि आप चाहें तो क्वेरी कैश में अधिक मेमोरी जोड़ सकते हैं, लेकिन बहुत अधिक उपयोग न करें।
टीसीपी / आईपी को अक्षम करें
मेजबान की एक आश्चर्यजनक संख्या डिफ़ॉल्ट रूप से टीसीपी / आईपी पर MySQL तक पहुंच को सक्षम करती है, जो एक वेबसाइट के लिए कोई मतलब नहीं है। यदि निम्नलिखित कमांड चलाकर आप समझ सकते हैं कि mysql TCP / IP पर सुन रहा है:
netstat -an | grep 3306
अक्षम करने के लिए, अपनी /etc/my.cnf फ़ाइल में निम्न पंक्ति जोड़ें:
छोड़ नेटवर्किंग
अपाचे विन्यास
अपनी httpd.conf फ़ाइल खोलें, जो अक्सर /etc/httpd/conf/httpd.conf में मिलती है
इस तरह दिखने वाली लाइन का पता लगाएं:
टाइमआउट 120
और इसे इसे बदल दें:
टाइमआउट २०
अब उस अनुभाग को ढूंढें जिसमें ये पंक्तियाँ शामिल हैं, और कुछ इसी तरह समायोजित करें:
StartServers 2 MinSpareServers 2 मैक्सस्पेरसर्वर्स 5 ServerLimit 100 अधिकतम ग्राहक 100 MaxRequestsPerChild 4000
PHP विन्यास
PHP प्लेटफ़ॉर्म पर सर्वर को ट्विक करते समय ध्यान रखने वाली एक बात यह है कि हर एक अपाचे धागा PHP को मेमोरी में एक अलग स्थान पर लोड करने जा रहा है। इसका मतलब है कि अगर कोई अप्रयुक्त मॉड्यूल PHP में 256k मेमोरी जोड़ता है, तो 40 एपाचे थ्रेड्स में आप 10MB मेमोरी बर्बाद कर रहे हैं।
निष्कासित PHP मॉड्यूल निकालें
आपको अपनी php.ini फ़ाइल का पता लगाना होगा, जो आमतौर पर /etc/php.ini पर पाई जाती है (ध्यान दें कि कुछ वितरणों पर, .et फ़ाइलों की संख्या के साथ /etc/php.d/ निर्देशिका होगी। प्रत्येक मॉड्यूल के लिए एक।
इन मॉड्यूल के साथ किसी भी लोडमॉडल लाइनों को टिप्पणी करें:
- ODBC
- SNMP
- पीडीओ
- odbc pdo
- mysqli
- ionCube-लोडर
- json
- imap
- ldap
- ncurses
टोडो: अधिक जानकारी यहाँ जोड़ें।
PHP ओपकोड कैश
वहाँ कई opcode कैश हैं जिन्हें आप APC, eAccelerator, और Xcache सहित उपयोग कर सकते हैं, जो आखिरी स्थिरता के कारण मेरी व्यक्तिगत पसंद है।
Xcache डाउनलोड करें और इसे एक निर्देशिका में निकालें, और फिर xcache स्रोत निर्देशिका से निम्न आदेश चलाएँ:
phpize ./configure --enable-xcache बनाना स्थापित करें
अपनी php.ini फ़ाइल खोलें और xcache के लिए एक नया अनुभाग जोड़ें। यदि आपके php मॉड्यूल कहीं और से लोड किए गए हैं, तो आपको पथ समायोजित करने की आवश्यकता होगी।
vi /etc/php.ini
निम्न अनुभाग को फ़ाइल में जोड़ें:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache] ; ओपकोड कैश के आकार को बदलने के लिए xcache.size बदलें xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0 ; चर कैश के आकार को समायोजित करने के लिए xcache.var_size बदलें xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = बंद xcache.readonly_protection = पर xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = पर xcache.stat = पर xcache.optimizer = बंद
टोडो: इसे थोड़ा विस्तार देने की जरूरत है और संदर्भों में xcache से लिंक करें।
बैकअप
आपकी वेबसाइट के स्वचालित बैकअप होने की तुलना में बहुत कम महत्वपूर्ण है। आप अपने होस्टिंग प्रदाता से स्नैपशॉट बैकअप प्राप्त करने में सक्षम हो सकते हैं, जो बहुत उपयोगी भी हैं, लेकिन मैं स्वचालित बैकअप भी लेना पसंद करता हूं।
स्वचालित बैकअप स्क्रिप्ट बनाएँ
मैं आमतौर पर / backups / files directory के साथ / नीचे डायरेक्टरी डायरेक्टरी बनाकर शुरू करता हूं। आप चाहें तो इन रास्तों को समायोजित कर सकते हैं।
mkdir -p / backups / files
अब बैकअप निर्देशिका के अंदर एक backup.sh स्क्रिप्ट बनाएँ:
vi /backups/backup.sh
आवश्यक के रूप में पथ और mysqldump पासवर्ड को समायोजित करते हुए, फ़ाइल में निम्न जोड़ें:
#! / Bin / श
THEDATE = `तिथि +% d% m% y% H% M`
mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup>THEDATE.bak
tar -cf /backups/files/sitebackup$THEDATE.tar / var / www / vhosts / my-website-path / httpdocs
gzip /backups/files/sitebackup$THEDATE.tar
/ बैकअप / फ़ाइलें / साइट खोजें * -mtime +5 -exec rm {} \;
/ backups / files / db * -mtime +5 -exec rm {} \; खोजें
स्क्रिप्ट पहले एक तिथि चर बनाएगी, इसलिए सभी फ़ाइलों को एक ही बैकअप के लिए एक ही नाम दिया जाएगा, फिर डेटाबेस को डंप कर दिया जाएगा, वेब फ़ाइलों को टारगेट किया जाएगा और उन्हें gzips किया जाएगा। खोज कमांड का उपयोग 5 दिनों से अधिक पुरानी किसी भी फ़ाइल को निकालने के लिए किया जाता है, क्योंकि आप नहीं चाहते कि आपकी ड्राइव अंतरिक्ष से बाहर चले जाए।
निम्नलिखित कमांड चलाकर स्क्रिप्ट को निष्पादन योग्य बनाएं:
chmod u + x /backups/backup.sh
आगे आपको क्रोन द्वारा स्वचालित रूप से चलने के लिए असाइन करना होगा। सुनिश्चित करें कि आप उस खाते का उपयोग करते हैं जिसकी बैकअप निर्देशिका तक पहुंच है।
Crontab -e
निम्नलिखित पंक्ति को क्रॉस्टैब में जोड़ें:
1 1 * * * /बाकुप्स/बैकअप.श
आप उपयोगकर्ता खाते में लॉग ऑन करते समय इसे स्क्रिप्ट को समय से पहले परीक्षण कर सकते हैं। (मैं आमतौर पर बैकअप को रूट के रूप में चलाता हूं)
Rsync के साथ सिंक बैकअप साइट
अब जब आपके पास अपने सर्वर के स्वचालित बैकअप चल रहे हैं, तो आप rsync उपयोगिता का उपयोग करके उन्हें कहीं और सिंक कर सकते हैं। आप इस लेख को स्वचालित लॉगिन के लिए ssh कुंजियों को सेटअप करने के बारे में पढ़ना चाहते हैं: एक कमांड में रिमोट सर्वर से सार्वजनिक SSH कुंजी जोड़ें
आप इस कमांड को किसी अन्य स्थान पर एक लाइनक्स या मैक मशीन पर चलाकर इसका परीक्षण कर सकते हैं (मेरे पास घर पर एक लिनक्स सर्वर है, जहां मैं इसे चलाता हूं)
rsync -a [email protected]: / backups / files / * / offsitebackups /
इसे पहली बार चलाने में काफी समय लगेगा, लेकिन अंत में आपके स्थानीय कंप्यूटर पर / offsitebackups / निर्देशिका में फ़ाइलों की निर्देशिका की एक प्रति होनी चाहिए। (स्क्रिप्ट चलाने से पहले उस निर्देशिका को बनाना सुनिश्चित करें)
आप इसे एक क्रॉस्टैब लाइन में जोड़कर इसे शेड्यूल कर सकते हैं:
Crontab -e
निम्न पंक्ति जोड़ें, जो 45 मिनट के निशान पर हर घंटे rsync चलाएगी। आप देखेंगे कि हम यहां rsync के लिए पूर्ण पथ का उपयोग करते हैं।
45 * * * * / usr / bin / rsync -a [email protected]: / बैकअप / फाइलें / * / ऑफसाइटबैक /
आप इसे एक अलग समय पर, या केवल एक बार प्रति दिन चलाने के लिए शेड्यूल कर सकते हैं। यह वास्तव में आप पर निर्भर है।
ध्यान दें कि बहुत सारी उपयोगिताओं हैं जो आपको ssh या ftp के माध्यम से सिंक करने की अनुमति देंगी। आपको rsync का उपयोग नहीं करना होगा
सुरक्षा
पहली चीज जो आप करना चाहते हैं, सुनिश्चित करें कि आपके पास ssh के माध्यम से उपयोग करने के लिए एक नियमित उपयोगकर्ता खाता है, और सुनिश्चित करें कि आप रूट पर स्विच करने के लिए su का उपयोग कर सकते हैं। यह बहुत बुरा विचार है कि ssh पर रूट के लिए सीधे प्रवेश की अनुमति है।
SSH से अधिक रूट लॉगिन अक्षम करें
/ Etc / ssh / sshd_config फ़ाइल संपादित करें, और निम्नलिखित पंक्ति देखें:
#PermitRootLogin हाँ
इस तरह दिखने के लिए उस लाइन को बदलें:
PermitRootLogin नहीं
सुनिश्चित करें कि आपके पास एक नियमित उपयोगकर्ता खाता है और इस परिवर्तन को करने से पहले आप रूट कर सकते हैं, अन्यथा आप अपने आप को बंद कर सकते हैं।
SSH संस्करण को अक्षम करें 1
SSH संस्करण 2 के अलावा और कुछ भी उपयोग करने का वास्तव में कोई कारण नहीं है, क्योंकि यह पिछले संस्करणों की तुलना में अधिक सुरक्षित है। / Etc / ssh / sshd_config फ़ाइल संपादित करें, और निम्नलिखित अनुभाग देखें:
# गाजोकोल 2,1 प्रोटोकॉल 2
सुनिश्चित करें कि आप केवल प्रोटोकॉल 2 का उपयोग कर रहे हैं जैसा कि दिखाया गया है।
SSH सर्वर को पुनरारंभ करें
अब आपको इसे प्रभावी बनाने के लिए SSH सर्वर को पुनः आरंभ करने की आवश्यकता होगी।
/etc/init.d/sshd पुनरारंभ करें
ओपन पोर्ट की जाँच करें
आप निम्न कमांड का उपयोग करके देख सकते हैं कि सर्वर किस पोर्ट पर सुन रहा है:
netstat -an | ग्रीप लिस्टेन
आपको वास्तव में पोर्ट्स 22, 80 और संभवतः 8443 पोर्ट्स के अलावा कुछ भी नहीं सुनना चाहिए।
एक फ़ायरवॉल सेटअप करें
आप अधिक कनेक्शन ब्लॉक करने के लिए वैकल्पिक रूप से एक iptables फ़ायरवॉल सेटअप कर सकते हैं। उदाहरण के लिए, मैं आमतौर पर अपने काम के नेटवर्क के अलावा किसी भी अन्य बंदरगाहों तक पहुंच को अवरुद्ध करता हूं। यदि आपके पास एक गतिशील आईपी पता है तो आप उस विकल्प से बचना चाहते हैं।
यदि आपने अब तक इस गाइड के सभी चरणों का पालन किया है, तो संभवतः मिश्रण में फ़ायरवॉल जोड़ना भी आवश्यक नहीं है, लेकिन आपके विकल्पों को समझना अच्छा है।
यह सभी देखें
- लिनक्स पर Iptables का उपयोग करना