एक समर्पित वर्चुअल वेब सर्वर Tweaking
जब आपको अपनी वेबसाइट चलाने के लिए एक समर्पित वर्चुअल सर्वर मिलता है, तो संभावना अच्छी होती है कि यह हर किसी के लिए कॉन्फ़िगर किया गया हो, और वेबसाइट चलाने के लिए अधिकतम प्रदर्शन को अनुकूलित न किया गया हो.
अंतर्वस्तु[छिपाना]
|
अवलोकन
समस्या क्षेत्रों की एक संख्या है जहाँ हम प्रदर्शन को अधिकतम करना चाहते हैं:
- लिनक्स विन्यास
आम तौर पर ऐसी सेवाएं चल रही हैं जो स्मृति को बर्बाद करने की आवश्यकता नहीं हैं, जो कि अधिक कनेक्शन के लिए उपयोग की जा सकती हैं. - MySQL कॉन्फ़िगरेशन
अक्सर डिफ़ॉल्ट सेटिंग्स एक छोटे सर्वर पर आधारित होती हैं, हम प्रदर्शन को बहुत अधिक बढ़ाने के लिए कुछ महत्वपूर्ण बदलाव जोड़ सकते हैं. - अपाचे विन्यास
डिफ़ॉल्ट रूप से अधिकांश होस्टिंग प्रदाता लगभग हर मॉड्यूल के साथ अपाचे स्थापित करते हैं। यदि आप कभी भी उनका उपयोग नहीं करने जा रहे हैं तो मॉड्यूल लोड करने का कोई कारण नहीं है. - PHP विन्यास
डिफ़ॉल्ट PHP कॉन्फ़िगरेशन समान रूप से फूला हुआ है, आमतौर पर एक टन अतिरिक्त अतिरिक्त मॉड्यूल स्थापित होते हैं. - PHP ओपकोड कैश
PHP को हर बार स्क्रिप्ट को फिर से खोलने की अनुमति देने के बजाय, एक ओपकोड कैश संकलित स्क्रिप्ट को बड़े प्रदर्शन को बढ़ावा देने के लिए मेमोरी में कैश करेगा।. - बैकअप
शायद कुछ स्वचालित बैकअप सेटअप करना चाहिए, क्योंकि आपका होस्टिंग प्रदाता आपके लिए ऐसा करने वाला नहीं है. - सुरक्षा
निश्चित रूप से, लिनक्स डिफ़ॉल्ट रूप से पर्याप्त सुरक्षित है, लेकिन आमतौर पर कुछ चकाचौंध सुरक्षा मुद्दे हैं जिन्हें आप कुछ त्वरित सेटिंग्स के साथ ठीक कर सकते हैं.
लिनक्स विन्यास
आपके द्वारा किए जा सकने वाले काफी सारे मोड़ हैं, जो आपके द्वारा उपयोग किए जा रहे सर्वर के आधार पर थोड़ा भिन्न होगा। ये tweaks CentOS चलाने वाले सर्वर के लिए हैं, लेकिन उन्हें DV सर्वर के बहुमत के लिए काम करना चाहिए.
डीएनएस को अक्षम करें
यदि आपका होस्टिंग प्रदाता आपके डोमेन (संभावना) के लिए DNS को संभालता है, तो आप DNS सेवा को चलने से अक्षम कर सकते हैं.
dns /etc/init.d/onym stop chmod 644 /etc/init.d/onym रोकें
चामोड कमांड स्क्रिप्ट से निष्पादन की अनुमति को हटा देता है, इसे स्टार्टअप पर चलने से रोकता है.
SpamAssassain को अक्षम करें
यदि आप अपने सर्वर पर ईमेल खातों का उपयोग नहीं कर रहे हैं, तो आपको एंटी-स्पैम टूल चलाने से परेशान नहीं होना चाहिए। (इसके अलावा आपको Google Apps की जांच करनी चाहिए, बहुत बेहतर ईमेल समाधान)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Xinetd को अक्षम करें
Xinetd प्रक्रिया में कई अन्य प्रक्रियाएं हैं, जिनमें से कोई भी एक विशिष्ट वेब सर्वर के लिए उपयोगी नहीं है.
/etc/init.d/xinetd chmod 644 /etc/init.d/xinetd रोकें
Plesk मेमोरी उपयोग सीमित करें
यदि आप plesk पैनल का उपयोग करते हैं, तो आप इसे विकल्प फ़ाइल जोड़कर कम मेमोरी का उपयोग करने के लिए बाध्य कर सकते हैं.
vi /usr/local/psa/admin/conf/httpsd.custom.include
निम्न पंक्तियों को फ़ाइल में जोड़ें:
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] क्वेरी-कैश-प्रकार = १ क्वेरी-कैश-आकार =] एम
यदि आप चाहें तो क्वेरी कैश में अधिक मेमोरी जोड़ सकते हैं, लेकिन बहुत अधिक उपयोग न करें.
टीसीपी / आईपी को अक्षम करें
मेजबान की एक आश्चर्यजनक संख्या डिफ़ॉल्ट रूप से टीसीपी / आईपी पर MySQL तक पहुंच को सक्षम करती है, जो एक वेबसाइट के लिए कोई मतलब नहीं है। यदि निम्नलिखित कमांड चलाकर आप समझ सकते हैं कि mysql TCP / IP पर सुन रहा है:
netstat -an | grep 3306
अक्षम करने के लिए, अपनी /etc/my.cnf फ़ाइल में निम्न पंक्ति जोड़ें:
छोड़-नेटवर्किंग
अपाचे विन्यास
अपनी httpd.conf फ़ाइल खोलें, जो अक्सर /etc/httpd/conf/httpd.conf में मिलती है
इस तरह दिखने वाली लाइन का पता लगाएं:
टाइमआउट 120
और इसे इसे बदल दें:
टाइमआउट २०
अब उस अनुभाग को ढूंढें जिसमें ये लाइनें शामिल हैं, और कुछ इसी तरह समायोजित करें:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
PHP विन्यास
PHP प्लेटफ़ॉर्म पर सर्वर को घुमाते समय ध्यान रखने वाली एक बात यह है कि हर एक अपाचे धागा PHP को मेमोरी में एक अलग स्थान पर लोड करने जा रहा है। इसका मतलब है कि अगर कोई अप्रयुक्त मॉड्यूल PHP के लिए 256k मेमोरी जोड़ता है, तो 40 एपाचे थ्रेड्स में आप 10MB मेमोरी बर्बाद कर रहे हैं.
निष्कासित PHP मॉड्यूल निकालें
आपको अपनी php.ini फ़ाइल का पता लगाना होगा, जो आमतौर पर /etc/php.ini पर पाई जाती है (ध्यान दें कि कुछ वितरणों पर,। Ini फ़ाइल की एक संख्या के साथ /etc/php.d/ निर्देशिका होगी। प्रत्येक मॉड्यूल के लिए एक.
इन मॉड्यूल के साथ किसी भी लोडमॉडल लाइनों को टिप्पणी करें:
- ODBC
- SNMP
- पीडीओ
- odbc pdo
- mysqli
- ionCube-लोडर
- json
- imap
- ldap
- ncurses
टोडो: अधिक जानकारी यहाँ जोड़ें.
PHP ओपकोड कैश
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" xadache.admin.pass = "putanmd5hashhere" [xcache]; परिवर्तन xcache.size को opcode कैश के आकार को बदलने के लिए xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8 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.var_sl Xcache.mmap_path = "/ tmp / xcache" पर xcache.coredump_directory = "" xcache.cacher = on xcache.stat = on xcache.optimizer = Off
टोडो: इसे थोड़ा विस्तार देने और संदर्भों में xcache से लिंक करने की आवश्यकता है.
बैकअप
आपकी वेबसाइट के स्वचालित बैकअप होने की तुलना में बहुत कम महत्वपूर्ण है। आप अपने होस्टिंग प्रदाता से स्नैपशॉट बैकअप प्राप्त करने में सक्षम हो सकते हैं, जो बहुत उपयोगी भी हैं, लेकिन मैं स्वचालित बैकअप भी लेना पसंद करता हूं.
स्वचालित बैकअप स्क्रिप्ट बनाएँ
मैं आमतौर पर / backups / files directory के साथ / नीचे डायरेक्टरी डायरेक्टरी बनाकर शुरू करता हूं। आप चाहें तो इन रास्तों को समायोजित कर सकते हैं.
mkdir -p / backups / files
अब बैकअप निर्देशिका के अंदर एक backup.sh स्क्रिप्ट बनाएँ:
vi /backups/backup.sh
आवश्यक के रूप में पथ और mysqldump पासवर्ड को समायोजित करते हुए, फ़ाइल में निम्न जोड़ें:
# /! / बिन / श THEDATE = "दिनांक +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbacka.coTHEDATE.bak टार्क-बैकअप / फाइलें / साइटबैकअप $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar खोज / बैकअप / फाइलें / साइट * -mtime +5 -ex rm \; / backups / files / db * -mtime +5 -exec rm \; खोजें
स्क्रिप्ट पहले एक डेट वेरिएबल बनाएगी, इसलिए सभी फाइलों को एक ही बैकअप के लिए एक ही नाम दिया जाएगा, फिर डेटाबेस को डंप कर दिया जाएगा, वेब फाइलों को टार्ज़ किया जाएगा और उन्हें जिप्सी दी जाएगी। खोज कमांड का उपयोग 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]: / backups / files / * / offsitebackups /
आप इसे एक अलग समय पर, या केवल एक बार प्रति दिन चलाने के लिए शेड्यूल कर सकते हैं। यह वास्तव में आप पर निर्भर है.
ध्यान दें कि बहुत सारी उपयोगिताओं हैं जो आपको ssh या ftp के माध्यम से सिंक करने की अनुमति देंगी। आपको rsync का उपयोग करने की आवश्यकता नहीं है.
सुरक्षा
पहली चीज जो आप करना चाहते हैं, सुनिश्चित करें कि आपके पास ssh के माध्यम से उपयोग करने के लिए एक नियमित उपयोगकर्ता खाता है, और सुनिश्चित करें कि आप रूट पर स्विच करने के लिए su का उपयोग कर सकते हैं। रूट ओवर ssh के लिए सीधे लॉगिन की अनुमति देना बहुत बुरा विचार है.
SSH पर रूट लॉगिन को अक्षम करें
/ Etc / ssh / sshd_config फ़ाइल संपादित करें, और निम्नलिखित पंक्ति देखें:
#PermitRootLogin हाँ
इस तरह दिखने के लिए उस लाइन को बदलें:
PermitRootLogin नहीं
सुनिश्चित करें कि आपके पास एक नियमित उपयोगकर्ता खाता है और इस परिवर्तन को करने से पहले आप रूट कर सकते हैं, अन्यथा आप अपने आप को लॉक कर सकते हैं.
SSH संस्करण को अक्षम करें 1
SSH संस्करण 2 के अलावा कुछ भी उपयोग करने का वास्तव में कोई कारण नहीं है, क्योंकि यह पिछले संस्करणों की तुलना में अधिक सुरक्षित है। / Etc / ssh / sshd_config फ़ाइल संपादित करें, और निम्नलिखित अनुभाग देखें:
#Protocol 2,1 प्रोटोकॉल 2
सुनिश्चित करें कि आप केवल प्रोटोकॉल 2 का उपयोग कर रहे हैं जैसा कि दिखाया गया है.
SSH सर्वर को पुनरारंभ करें
अब आपको इसे प्रभावी बनाने के लिए SSH सर्वर को पुनरारंभ करना होगा.
/etc/init.d/sshd पुनरारंभ करें
ओपन पोर्ट की जाँच करें
आप निम्न कमांड का उपयोग यह देखने के लिए कर सकते हैं कि सर्वर किस पोर्ट पर सुन रहा है:
netstat -an | ग्रीप लिस्टेन
आपके पास वास्तव में पोर्ट्स 22, 80 और संभवतः 8443 के अलावा अन्य कुछ भी नहीं होना चाहिए.
एक फ़ायरवॉल सेटअप करें
मुख्य लेख: लिनक्स पर Iptables का उपयोग करना
आप अधिक कनेक्शन ब्लॉक करने के लिए वैकल्पिक रूप से एक iptables फ़ायरवॉल सेटअप कर सकते हैं। उदाहरण के लिए, मैं आमतौर पर अपने कार्य नेटवर्क के अलावा किसी भी अन्य बंदरगाहों तक पहुंच को अवरुद्ध करता हूं। यदि आपके पास एक गतिशील आईपी पता है तो आप उस विकल्प से बचना चाहेंगे.
यदि आपने अब तक इस गाइड के सभी चरणों का पालन किया है, तो संभवत: मिश्रण में फ़ायरवॉल जोड़ना आवश्यक नहीं है, लेकिन आपके विकल्पों को समझना अच्छा है.
यह भी देखें
- लिनक्स पर Iptables का उपयोग करना
संदर्भ
- अपने DV सर्वर (mediatemple.net) को अनुकूलित करना
- XCache