प्रौद्योगिकी साझेदारी

Haproxy जालसमूहं निर्माति

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1: प्रकरणविश्लेषणम्

१: प्रकरणस्य अवलोकनम्

2: पूर्वप्रकरणज्ञानम्

३: प्रकरणपर्यावरणम्

२: प्रकरणस्य कार्यान्वयनम्

१: nginx सर्वरं संकलयित्वा संस्थापयन्तु (nginx वेबसाइट् द्वयोः कृते चरणाः सम्यक् समानाः सन्ति, केवलं परीक्षणपृष्ठं भिन्नम् अस्ति)

[root@localhost ~]# yum -y इंस्टॉल pcre-devel zlib-devel gcc*

[मूल @ स्थानीयमेजबान ~] # useradd -M -s /sbin/nologin nginx

[मूल@स्थानीयमेजबान ~]# तार zxvf nginx-1.12.0.tar.gz

[मूल@स्थानीयमेजबान ~]# cd nginx-1.12.0/

[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@localhost nginx-1.12.0]# संस्थापनं कुर्वन्तु && संस्थापनं कुर्वन्तु

[मूल @ स्थानीयमेजबान nginx-1.12.0] # ln -s / usr / स्थानीय / nginx / sbin / nginx / usr / स्थानीय / sbin /

[मूल@स्थानीयहोस्ट nginx-1.12.0]# cd /usr/स्थानीय/nginx/html/0

[root@localhost html]# echo "test web01" > test.html

[root@localhost ~]# systemctl अग्निप्रावरणं स्थगयतु

[मूल@स्थानीयमेजबान ~]# nginx -t

[root@localhost ~]# nginx ##nginx प्रक्रिया आरभत

[मूल@स्थानीयहोस्ट ~]# netstat -anpt | ग्रेप् ङिन्क्स

2: Haproxy इत्यस्य संकलनं संस्थापनं च कुर्वन्तु

[root@localhost ~]# systemctl अग्निप्रावरणं स्थगयतु

[मूल @ स्थानीयमेजबान ~] # setenforce 0

[root@localhost ~]# yum -y इंस्टॉल pcre-devel bzip2-devel gcc*

[मूल@स्थानीयमेजबान ~]# तार zxvf हाप्रोक्सी-1.5.19.tar.gz

[मूल@स्थानीयमेजबान ~]# cd haproxy-1.5.19/

[मूल@स्थानीयहोस्ट हाप्रोक्सी-1.5.19]# TARGET=linux26 बनाओ

[root@localhost haproxy-1.5.19]# संस्थापनं कुर्वन्तु

टीका:

Linux 2.2 कृते linux22

Linux 2.4 अपि च ततः परं कृते linux24 (पूर्वनिर्धारितम्)

Linux 2.4 कृते linux24e कार्यरतस्य epoll (> 0.21) इत्यस्य समर्थनेन सह

Linux 2.6 अपि च ततः परं कृते linux26

solaris for Solaris 8 अथवा 10 (अन्ये अपरीक्षिताः)

FreeBSD 5 तः 8.0 पर्यन्तं (अन्ये अपरीक्षिताः) कृते freebsd

OpenBSD 3.1 तः 4.6 पर्यन्तं (अन्ये अपरीक्षिताः) कृते openbsd

cygwin for Cygwin इति

अन्यस्य कस्यापि ओएस कृते सामान्यम्।

प्रत्येकं सेटिंग् मैन्युअल् रूपेण समायोजयितुं कस्टम्

3: Haproxy सर्वर विन्यासः

(1) हाप्रोक्सी विन्याससञ्चिकां रचयन्तु

[मूल@स्थानीयहोस्ट हाप्रोक्सी-१.५.१९]# mkdir /आदि/हप्रोक्सी

[root@localhost haproxy-1.5.19]# cp उदाहरणं/हप्रोक्सी.सीएफजी /आदि/हप्रोक्सी/

(2) सेवालिपिं रचयन्तु

[root@localhost haproxy-1.5.19]# cp उदाहरणानि/haproxy.init /आदि/init.d/haproxy

[root@localhost haproxy-1.5.19]# ln -s / usr/स्थानीय/sbin/haproxy /usr/sbin/haproxy

[मूल@स्थानीयहोस्ट हाप्रोक्सी-१.५.१९]# chmod +x /etc/init.d/haproxy

[मूल@स्थानीयहोस्ट ~]# chkconfig --हैप्रोक्सी जोड़ें

(3) हाप्रोक्सी विन्यास परिचय

[मूल@स्थानीयहोस्ट हाप्रोक्सी-1.5.19]# vi /आदि/हप्रोक्सी/हप्रोक्सी.cfg

वैश्विक

log 127.0.0.1 स्थानीय0

log 127.0.0.1 स्थानीय1 सूचना

# लॉग लॉगहोस्ट स्थानीय0 जानकारी

maxconn ४०९६ इति

उइड ९९

गिद् ९९

राक्षसः

# त्रुटिनिवारणम्

#शांतिम्

पूर्वनिर्धारितं भवति

log global

मोड http

विकल्पः httplog

विकल्पः dontlognull इति

पुनः प्रयासं करोति 3

# पुनः प्रेषण

maxconn 2000

contimeout 5000 इति

clitimeout 50000

srvtimeout 50000

जालसमूहं शृणुत 0.0.0.0:80

विकल्पः httpchk GET /index.html

संतुलन गोलरोबिन

सर्वर inst1 192.168.1.61:80 check inter 2000 fall 3

server inst2 192.168.1.62:80 चेक अन्तर 2000 पतनम् 3

भारमूल्यं सेट् कर्तुं प्रत्येकस्य सर्वरस्य अनन्तरं भारं योजयितुं शक्नुवन्ति ।

सर्वर inst1 192.168.1.61:80 check inter 2000 fall 3भारः १

server inst2 192.168.1.62:80 चेक अन्तर 2000 पतनम् 3भारः २

प्रत्येकस्य कथनस्य व्याख्या

वैश्विक

log 127.0.0.1 स्थानीय0 \ .लॉगिंग् विन्यस्तं कुर्वन्तु, .स्थानीय0लॉग्-यन्त्रम् अस्ति, पूर्वनिर्धारितं सिस्टम्-लॉग् अस्ति

log 127.0.0.1 स्थानीय1 सूचना \ .लॉग् स्तरः अस्तिसूचना

# लॉग लॉगहोस्ट स्थानीय0 जानकारी

maxconn ४०९६ \ ९.अधिकतमं संयोजनानां संख्या

उइड ९९ \ ९.उपयोक्ताउइड्

गिद् ९९ \ ९.उपयोक्तागिद्

राक्षस \ .डेमन प्रक्रियारूपेण चालयन्तु

# त्रुटिनिवारण \ .त्रुटिनिवारणविधिः, मानकनिर्गमं प्रति स्टार्टअपसूचना निर्गम

#शांतिम् \शांत मोड, स्टार्टअप समये कोऽपि आउटपुट् नास्ति

पूर्वनिर्धारितं भवति

log global \ 1 .उपयुञ्जताम्‌गोलाकारःlog परिभाषितम् in

मोडः http \ .गुणः इतिhttp

विकल्पः httplog \ .उपयुञ्जताम्‌httpलॉगिंग् इत्यस्य प्रारूपम्

विकल्पः dontlognull \ .सुनिश्चोतुHAProxy इतिस्थितिदत्तांशं ज्ञातुं उच्चस्तरीयभारसंतुलकेन प्रेषिताः हृदयस्पन्दनपैकेट् न अभिलेखयन्तु ।

पुनः प्रयतते ३ \ .नोड् संयोजनविफलतायाः संख्यां पश्यन्तु, या अतिक्रमति3नोडः अनुपलब्धः इति मन्यते

  # पुनः प्रेषण\यदा भारं भवतियदा मूल्यम् अतीव अधिकं भवति तदा वर्तमानपङ्क्तौ दीर्घकालं यावत् संसाधिताः संयोजनाः स्वयमेव समाप्ताः भविष्यन्ति ।

maxconn 2000 \ .अधिकतमं संयोजनानां संख्या

contimeout 5000 \ .संयोजनस्य समयसमाप्तिःms

clitimeout 50000ग्राहकस्य समयसमाप्तिःms

srvtimeout 50000सर्वरस्य समयसमाप्तिःms

शृणुत जालसमूहः 0.0.0.0:80 \ .क्लस्टर तथा श्रवण-पोर्ट्-सङ्ख्याः परिभाषयन्तु

विकल्पः httpchk GET /index.html \ .सर्वरस्य जाँचं कुर्वन्तुindex.html इतिप्रलेख,हृदयस्पन्दनपरिचय URL सेटिंग्स्

संतुलन गोलरोबिन \ .भारसंतुलननिर्धारण-अल्गोरिदम् गोल-रोबिन् अस्ति

सर्वर inst1 192.168.1.61:80 चेक अन्तर 2000 पतन 3 \ .ऑनलाइन नोड्स परिभाषयन्तु

server inst2 192.168.1.62:80 चेक अन्तर 2000 पतनम् 3

check inter 2000हृदयस्पन्दन-आवृत्तिः (प्रत्येकः) ज्ञातुं भवति२०००म्एकवारं ज्ञातः), २.पतनम् ३आम्‌3विफलतायां सर्वरः अनुपलब्धः इति गण्यते

नूतने संस्करणे समयसमाप्तिसेटिंग्स् समायोजिताः सन्ति, यथा ।

contimeout इत्यस्य स्थाने timeout connect इति भवति:बैकएण्ड् सर्वरं प्रति क्लायन्ट्-अनुरोधानाम् अग्रे प्रेषणार्थं haproxy प्रतीक्षते इति समय-समाप्ति-कालः परिभाषयन्तु

clitimeout इत्यस्य स्थाने timeout client इति भवति:क्लायन्ट्-निष्क्रियतायाः समय-समाप्तिः एप्-इत्यस्य हाप्रोक्सी-सङ्गतिं कर्तुं यः समयः भवति

srvtimeout इत्यस्य स्थाने timeout सर्वरः भवति:क्लायन्ट् सर्वरेण सह संयोजनं स्थापयित्वा, सर्वरस्य प्रतीक्षमाणः समयसमाप्तावधिः सः समयः भवति यत् haproxy इत्यस्य पृष्ठभागजालसर्वरस्य सह संयोजनाय भवति ।

टीका:

हाप्रोक्सीअष्टौ समयनिर्धारण-अल्गोरिदम्स् सन्ति

    1. balance leastconnन्यूनतमसंयोजनानां संख्या
    2. संतुलन गोलरोबिनमतदानम्
    3. संतुलन स्रोतःग्राहकस्य मतेIPहैशिंग् कथं करणीयम्
    4. स्थिर-रृभारस्य अनुसारम्
    5. उरीअनुरोधेनउरी
    6. उर्ल्_परम्अनुरोधेनURlपैरामीटर्
    7. hdr(नाम) ९.तदनुसारम्एचटीटीपीप्रत्येकं समये ताडयितुं शीर्षकं अनुरोधयन्तुएचटीटीपीपृच्छतु
    8. rdp-कुकी(नाम) ९.तदनुसारम्कुकी(नाम) २.प्रतिवारं ताडयितुं हैशं च कर्तुंTCPपृच्छतु

छ्रूत् /usr/share/haproxy \ 1।अर्थात् कार्यक्रमस्य निष्पादने सन्दर्भितं मूलनिर्देशिकास्थानं परिवर्तयितुं यदि भवतां समीपे एषः कोडः अस्ति तर्हि भवता एतत् निर्देशिका निर्मातव्या ।

लॉग् स्तरस्य विषये

स्थिर स्तर DEBUG

DEBUG Level इत्येतत् दर्शयति यत् सूक्ष्म-कणिका-सूचना-घटनानि अनुप्रयोगानाम् त्रुटिनिवारणाय अतीव सहायकानि भवन्ति ।

स्थिर स्तर INFO

INFO स्तरः सूचयति यत् सन्देशः स्थूल-कणिका-स्तरस्य अनुप्रयोगस्य चालन-प्रक्रियाम् प्रकाशयति ।

स्थिर स्तर WARN

WARN स्तरः सम्भाव्यदोषस्थितिं सूचयति ।

स्थिर स्तर त्रुटि

ERROR स्तरः सूचयति यत् यद्यपि त्रुटिघटना भवति तथापि तत् प्रणाल्याः निरन्तरसञ्चालनं न प्रभावितं करोति ।

स्थिर स्तर FATAL

FATAL स्तरः सूचयति यत् प्रत्येकं गम्भीरदोषघटना अनुप्रयोगस्य निर्गमनस्य कारणं भविष्यति ।

तदतिरिक्तं द्वौ विशेषौ लॉगिंगस्तरौ उपलभ्यते : १.

static स्तर ALL

ALL Level इति निम्नतमस्तरः अस्ति तथा च सर्वाणि लॉगिंग् चालू कर्तुं उपयुज्यते ।

स्थिर स्तर OFF

OFF Level इति उच्चतमस्तरः अस्ति तथा च सर्वाणि लॉगिंग् निष्क्रियं कर्तुं उपयुज्यते ।

४: आरभत

[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy प्रारम्भ

5: जालसमूहस्य परीक्षणं कुर्वन्तु

http://192.168.1.60/test.html इति ग्रन्थः

परीक्षणार्थं पृष्ठं ताजगीं कुर्वन्तु

अथवा स्क्रिप्ट् इत्यस्य उपयोगेन परीक्षणं कुर्वन्तु

[मूल @ स्थानीयमेजबान ~] # $ (seq 10) मध्ये i कृते; do curl http://192.168.1.60/test.html ;कृतम्

6: हाप्रोक्सी लॉग्

Haproxy पूर्वनिर्धारितरूपेण लॉग्स् न अभिलेखयति haproxy.conf इत्यस्मिन् वैश्विकखण्डे लॉग् आउटपुट् निर्दिष्टुं अतिरिक्तं, भवद्भिः सिस्टम् लॉग् विन्याससञ्चिकां विन्यस्तं कर्तव्यम् ।

विधिः प्रथमः : १.

[मूल@स्थानीयहोस्ट हाप्रोक्सी-1.4.24]# vi /आदि/हप्रोक्सी/हप्रोक्सी.cfg

वैश्विक

# log 127.0.0.1 स्थानीय0

# log 127.0.0.1 स्थानीय1 सूचना

# लॉग लॉगहोस्ट स्थानीय0 जानकारी

maxconn ४०९६ इति

chroot /usr/share/haproxy इति

उइड ९९

गिद् ९९

राक्षसः

# त्रुटिनिवारणम्

#शांतिम्

log /dev/log स्थानीय0 सूचना

log /dev/log local0 सूचना

[root@localhost haproxy-1.4.24]# /etc/rsyslog.d/haproxy.conf स्पर्शं कुर्वन्तु

[मूल@स्थानीयहोस्ट हाप्रोक्सी-1.4.24]# vi /etc/rsyslog.d/haproxy.conf

यदि ($programname == 'haproxy' तथा $syslogseverity-text == 'info') तर्हि -/var/log/haproxy/haproxy-info.log

& ~

यदि ($programname == 'haproxy' तथा $syslogseverity-text == 'सूचना') तर्हि -/var/log/haproxy/haproxy-notice.log

& ~

[root@localhost haproxy-1.4.24]# सेवा rsyslog पुनः आरम्भ

[root@localhost ~]#/etc/init.d/haproxy पुनः आरम्भ

[मूल @ स्थानीयमेजबान ~] # बिल्ली / var / लॉग / haproxy / haproxy-info.log

द्वितीयः विधिः : १.

(1) /etc/haproxy/haproxy.conf सम्पादयतु

[मूल@स्थानीयमेजबान ~]# vi /आदि/हप्रोक्सी/हप्रोक्सी.सीएफजी

वैश्विक

log 127.0.0.1 स्थानीय3

#local3 इति यन्त्रम्, /etc/rsyslog.conf इत्यस्मिन् विन्यासस्य अनुरूपं, तथा च info इत्यस्य लॉग् स्तरः पूर्वनिर्धारितरूपेण पुनःप्रयुक्तः भवति ।

(2) haproxy log file लिखन्तु

[मूल @ स्थानीयमेजबान ~] # vim / इत्यादि / rsyslog.d / haproxy.conf

$ModLoad imudp

$UDPSserverRun 514

स्थानीय3.* /var/log/haproxy.log

&~

टीका:

$ModLoad imudpलॉग्स् संग्रहणार्थं प्रोटोकॉल UDP

$UDPSserverRun 514लॉग् संग्रहणार्थं प्रयुक्तं पोर्ट् सङ्ख्यां निर्दिशन्तु

स्थानीय3.* /var/log/haproxy.logलॉग् भण्डारणस्थानं निर्दिशन्तु

(3) rsyslog इत्यस्य मुख्यविन्याससञ्चिकां विन्यस्य दूरस्थं लॉगिंग् सक्षमं कुर्वन्तु (वैकल्पिकम्)

[मूल @ स्थानीयमेजबान ~] # vim / इत्यादि / sysconfig / rsyslog

SYSLOGD_OPTIONS=”-c 2 -r -m 0′′ 1.1.

#-c 2 संगतताविधानस्य उपयोगं कुर्वन्तु, पूर्वनिर्धारितं -c 5 अस्ति

#-r दूरस्थं लॉगिंग् सक्षमं कुर्वन्तु

#-m 0 चिह्न समयमुद्रिका।एककं निमेषः भवति यदा 0 भवति तदा कार्यं अक्षमम् इति अर्थः ।

(4) haproxy तथा rsyslog सेवां पुनः आरभत

[root@localhost ~]# systemctl rsyslog पुनः आरभत

[root@localhost ~]# systemctl पुनः आरंभ हप्रोक्सी

(५) जालपुटं गत्वा लॉगं पश्यन्तु

[मूल@स्थानीयमेजबान ~]# बिल्ली /var/log/हाप्रोक्सी.लॉग

विस्तार: प्रॉक्सी mysql

mysql 0.0.0.0:3306 शृणुत

सर्वर mysql1 192.168.10.205:3306 चेक पोर्ट 3306 maxconn 300