வணக்கம், ஹப்ர்! இடுகையின் மொழிபெயர்ப்பை உங்கள் கவனத்திற்குக் கொண்டு வருகிறேன்:
Envoy என்பது தனிப்பட்ட சேவைகள் மற்றும் பயன்பாடுகளுக்காக வடிவமைக்கப்பட்ட உயர் செயல்திறன் கொண்ட விநியோகிக்கப்பட்ட ப்ராக்ஸி சர்வர் (C++ இல் எழுதப்பட்டது), இது ஒரு தகவல் தொடர்பு பேருந்து மற்றும் பெரிய மைக்ரோ சர்வீஸ் "சர்வீஸ் மெஷ்" கட்டமைப்புகளுக்காக வடிவமைக்கப்பட்ட "யுனிவர்சல் டேட்டா பிளேன்" ஆகும். அதை உருவாக்கும் போது, NGINX, HAProxy, ஹார்டுவேர் லோட் பேலன்சர்கள் மற்றும் கிளவுட் லோட் பேலன்சர்கள் போன்ற சேவையகங்களின் வளர்ச்சியின் போது எழுந்த சிக்கல்களுக்கான தீர்வுகள் கணக்கில் எடுத்துக்கொள்ளப்பட்டன. தூதர் ஒவ்வொரு பயன்பாட்டிலும் இணைந்து செயல்படுகிறது மற்றும் தளத்தைப் பொருட்படுத்தாமல் பொதுவான செயல்பாட்டை வழங்க நெட்வொர்க்கை சுருக்குகிறது. ஒரு உள்கட்டமைப்பில் உள்ள அனைத்து சேவைப் போக்குவரமும் என்வாய் மெஷ் மூலம் பாயும் போது, சிக்கல் பகுதிகளை சீரான கண்காணிப்பு, ஒட்டுமொத்த செயல்திறனை மாற்றியமைத்தல் மற்றும் ஒரு குறிப்பிட்ட இடத்தில் முக்கிய செயல்பாட்டைச் சேர்ப்பது எளிதாகிறது.
வாய்ப்புகளை
- செயல்பாட்டிற்கு வெளியே உள்ள கட்டமைப்பு: தூதுவர் என்பது ஒரு சிறிய அளவிலான ரேமை எடுத்துக் கொள்ளும் தன்னியக்கமான, உயர் செயல்திறன் கொண்ட சர்வர் ஆகும். இது எந்த பயன்பாட்டு மொழி அல்லது கட்டமைப்புடன் இணைந்து செயல்படுகிறது.
- http/2 மற்றும் grpc ஆதரவு: தூதர் முதல்-வகுப்பு http/2 மற்றும் உள்வரும் மற்றும் வெளிச்செல்லும் இணைப்புகளுக்கான grpc ஆதரவைக் கொண்டுள்ளது. இது http/1.1 முதல் http/2 வரையிலான வெளிப்படையான ப்ராக்ஸி ஆகும்.
- மேம்பட்ட சுமை சமநிலை: தானியங்கி மறு முயற்சிகள், சங்கிலி உடைத்தல், உலகளாவிய விகிதத்தை கட்டுப்படுத்துதல், கோரிக்கை நிழல், உள்ளூர் மண்டல சுமை சமநிலை போன்ற மேம்பட்ட சுமை சமநிலை அம்சங்களை தூதுவர் ஆதரிக்கிறார்.
- உள்ளமைவு மேலாண்மை API: உங்கள் உள்ளமைவை மாறும் வகையில் நிர்வகிப்பதற்கான ஒரு வலுவான API ஐ தூதர் வழங்குகிறது.
- கவனிக்கக்கூடிய தன்மை: L7 போக்குவரத்தின் ஆழமான அவதானிப்பு, விநியோகிக்கப்பட்ட டிரேசிங்கிற்கான சொந்த ஆதரவு மற்றும் mongodb, dynamodb மற்றும் பல பயன்பாடுகளின் அவதானிப்பு.
படி 1 - எடுத்துக்காட்டு NGINX கட்டமைப்பு
இந்த ஸ்கிரிப்ட் சிறப்பாக வடிவமைக்கப்பட்ட கோப்பைப் பயன்படுத்துகிறது nginx.conf, இருந்து முழு உதாரணம் அடிப்படையில்
nginx மூல கட்டமைப்பு
user www www;
pid /var/run/nginx.pid;
worker_processes 2;
events {
worker_connections 2000;
}
http {
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
upstream targetCluster {
172.18.0.3:80;
172.18.0.4:80;
}
server {
listen 8080;
server_name one.example.com www.one.example.com;
access_log /var/log/nginx.access_log main;
error_log /var/log/nginx.error_log info;
location / {
proxy_pass http://targetCluster/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
NGINX கட்டமைப்புகளில் பொதுவாக மூன்று முக்கிய கூறுகள் உள்ளன:
- NGINX சேவையகம், பதிவு அமைப்பு மற்றும் Gzip செயல்பாடுகளை கட்டமைக்கிறது. இது எல்லா நிகழ்வுகளிலும் உலகளவில் வரையறுக்கப்படுகிறது.
- ஹோஸ்டுக்கான கோரிக்கைகளை ஏற்க NGINX ஐ உள்ளமைக்கிறது one.example.com போர்ட் 8080 இல்.
- இலக்கு இருப்பிடத்தை அமைத்தல், URL இன் வெவ்வேறு பகுதிகளுக்கான போக்குவரத்தை எவ்வாறு கையாள்வது.
அனைத்து உள்ளமைவுகளும் என்வாய் ப்ராக்ஸிக்கு பொருந்தாது, மேலும் நீங்கள் சில அமைப்புகளை உள்ளமைக்க வேண்டியதில்லை. தூதர் ப்ராக்ஸி உள்ளது நான்கு முக்கிய வகைகள்NGINX வழங்கும் முக்கிய உள்கட்டமைப்பை ஆதரிக்கிறது. மையமானது:
- கேட்போர்: உள்வரும் கோரிக்கைகளை தூதர் ப்ராக்ஸி எவ்வாறு ஏற்றுக்கொள்கிறது என்பதை அவர்கள் தீர்மானிக்கிறார்கள். Envoy Proxy தற்போது TCP அடிப்படையிலான கேட்போரை மட்டுமே ஆதரிக்கிறது. ஒரு இணைப்பு நிறுவப்பட்டதும், அது செயலாக்கத்திற்கான வடிகட்டிகளின் தொகுப்பிற்கு அனுப்பப்படும்.
- வடிப்பான்கள்: அவை உள்வரும் மற்றும் வெளிச்செல்லும் தரவைச் செயலாக்கக்கூடிய பைப்லைன் கட்டமைப்பின் ஒரு பகுதியாகும். இந்த செயல்பாடு Gzip போன்ற வடிப்பான்களை உள்ளடக்கியது, இது கிளையண்டிற்கு அனுப்பும் முன் தரவை சுருக்குகிறது.
- திசைவிகள்: அவை ட்ராஃபிக்கை தேவையான இடத்திற்கு அனுப்புகின்றன, இது ஒரு கிளஸ்டர் என வரையறுக்கப்படுகிறது.
- கொத்துகள்: அவை போக்குவரத்து மற்றும் உள்ளமைவு அளவுருக்களுக்கான இறுதிப்புள்ளியை வரையறுக்கின்றன.
ஒரு குறிப்பிட்ட NGINX உள்ளமைவுடன் பொருந்துவதற்கு ஒரு Envoy Proxy உள்ளமைவை உருவாக்க இந்த நான்கு கூறுகளையும் பயன்படுத்துவோம். ஏபிஐகள் மற்றும் டைனமிக் உள்ளமைவுடன் பணிபுரிவதே தூதுவரின் குறிக்கோள். இந்த வழக்கில், அடிப்படை உள்ளமைவு NGINX இலிருந்து நிலையான, கடின-குறியிடப்பட்ட அமைப்புகளைப் பயன்படுத்தும்.
படி 2 - NGINX கட்டமைப்பு
முதல் பகுதி nginx.conf கட்டமைக்க வேண்டிய சில NGINX இன்டர்னல்களை வரையறுக்கிறது.
தொழிலாளர் இணைப்புகள்
கீழே உள்ள கட்டமைப்பு தொழிலாளர் செயல்முறைகள் மற்றும் இணைப்புகளின் எண்ணிக்கையை தீர்மானிக்கிறது. தேவையை பூர்த்தி செய்ய NGINX எவ்வாறு அளவிடப்படும் என்பதை இது குறிக்கிறது.
worker_processes 2;
events {
worker_connections 2000;
}
Envoy Proxy வெவ்வேறு வழிகளில் பணிப்பாய்வு மற்றும் இணைப்புகளை நிர்வகிக்கிறது.
அமைப்பில் உள்ள ஒவ்வொரு ஹார்டுவேர் நூலுக்கும் தூதர் ஒரு தொழிலாளி நூலை உருவாக்குகிறார். ஒவ்வொரு தொழிலாளி நூலும் ஒரு தடையற்ற நிகழ்வு வளையத்தை செயல்படுத்துகிறது, அது பொறுப்பாகும்
- ஒவ்வொரு கேட்பவரையும் கேட்பது
- புதிய இணைப்புகளை ஏற்றுக்கொள்வது
- இணைப்பிற்கான வடிப்பான்களின் தொகுப்பை உருவாக்குதல்
- இணைப்பின் வாழ்நாளில் அனைத்து I/O செயல்பாடுகளையும் செயல்படுத்தவும்.
எந்தவொரு முன்னனுப்புதல் நடத்தை உட்பட, மேலும் அனைத்து இணைப்புச் செயலாக்கமும் பணியாளர் நூலில் முழுமையாகக் கையாளப்படுகிறது.
தூதுவர் ஒவ்வொரு தொழிலாளி நூலுக்கும், ஒரு இணைப்புக் குளம் உள்ளது. எனவே HTTP/2 இணைப்புக் குளங்கள் ஒரு நேரத்தில் ஒரு வெளிப்புற ஹோஸ்டுக்கு ஒரு இணைப்பை மட்டுமே நிறுவுகின்றன, நான்கு வேலை செய்பவர் நூல்கள் இருந்தால், ஒரு நிலையான நிலையில் ஒரு வெளிப்புற ஹோஸ்டுக்கு நான்கு HTTP/2 இணைப்புகள் இருக்கும். ஒரு தொழிலாளி நூலில் அனைத்தையும் வைத்திருப்பதன் மூலம், கிட்டத்தட்ட அனைத்து குறியீடுகளும் ஒற்றை திரிக்கப்பட்டதைப் போல் தடுக்காமல் எழுதலாம். தேவைக்கு அதிகமாக வேலை செய்பவர் த்ரெட்கள் ஒதுக்கப்பட்டால், இது நினைவகத்தை வீணடித்து, அதிக எண்ணிக்கையிலான செயலற்ற இணைப்புகளை உருவாக்கி, குளத்திற்குத் திரும்பும் இணைப்புகளின் எண்ணிக்கையைக் குறைக்கும்.
மேலும் தகவலுக்கு பார்வையிடவும்
HTTP கட்டமைப்பு
பின்வரும் NGINX உள்ளமைவுத் தொகுதி HTTP அமைப்புகளை வரையறுக்கிறது:
- என்ன மைம் வகைகள் ஆதரிக்கப்படுகின்றன
- இயல்புநிலை காலக்கெடு
- Gzip கட்டமைப்பு
Envoy Proxy இல் உள்ள வடிப்பான்களைப் பயன்படுத்தி இந்த அம்சங்களை நீங்கள் தனிப்பயனாக்கலாம், அதை நாங்கள் பின்னர் விவாதிப்போம்.
படி 3 - சர்வர் கட்டமைப்பு
HTTP உள்ளமைவுத் தொகுதியில், NGINX கட்டமைப்பு போர்ட் 8080 இல் கேட்கவும், டொமைன்களுக்கான உள்வரும் கோரிக்கைகளுக்கு பதிலளிக்கவும் குறிப்பிடுகிறது. one.example.com и www.one.example.com.
server {
listen 8080;
server_name one.example.com www.one.example.com;
தூதுவரின் உள்ளே, அது கேட்பவர்களால் கட்டுப்படுத்தப்படுகிறது.
தூதர் கேட்போர்
என்வாய் ப்ராக்ஸியுடன் தொடங்குவதற்கான மிக முக்கியமான அம்சம் உங்கள் கேட்பவர்களை வரையறுப்பதாகும். நீங்கள் என்வாய் நிகழ்வை எவ்வாறு இயக்க விரும்புகிறீர்கள் என்பதை விவரிக்கும் உள்ளமைவு கோப்பை உருவாக்க வேண்டும்.
கீழே உள்ள துணுக்கை ஒரு புதிய கேட்பவரை உருவாக்கி அதை போர்ட் 8080 உடன் இணைக்கும். உள்வரும் கோரிக்கைகளுக்கு எந்த போர்ட்களை இணைக்க வேண்டும் என்பதை உள்ளமைவு தூதர் ப்ராக்ஸியிடம் கூறுகிறது.
என்வாய் ப்ராக்ஸி அதன் உள்ளமைவுக்கு YAML குறியீட்டைப் பயன்படுத்துகிறது. இந்த குறியீட்டின் அறிமுகத்திற்கு, இங்கே பார்க்கவும்
Copy to Editorstatic_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 8080 }
வரையறுக்க வேண்டிய அவசியமில்லை சர்வருடனான, Envoy Proxy வடிப்பான்கள் இதை கையாளும் என்பதால்.
படி 4 - இருப்பிட கட்டமைப்பு
NGINX இல் கோரிக்கை வரும்போது, ட்ராஃபிக்கை எப்படிச் செயலாக்குவது மற்றும் எங்கு வழிநடத்துவது என்பதை இருப்பிடத் தொகுதி தீர்மானிக்கிறது. பின்வரும் துண்டில், தளத்திற்கான அனைத்து போக்குவரமும் அப்ஸ்ட்ரீமுக்கு மாற்றப்படும் (மொழிபெயர்ப்பாளரின் குறிப்பு: அப்ஸ்ட்ரீம் பொதுவாக ஒரு பயன்பாட்டு சேவையகம்) என்ற பெயரிடப்பட்ட கிளஸ்டருக்கு இலக்கு கிளஸ்டர். அப்ஸ்ட்ரீம் கிளஸ்டர் கோரிக்கையைச் செயல்படுத்த வேண்டிய முனைகளை வரையறுக்கிறது. அடுத்த கட்டத்தில் இதைப் பற்றி விவாதிப்போம்.
location / {
proxy_pass http://targetCluster/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
தூதுவளையில், வடிகட்டிகள் இதைச் செய்கின்றன.
தூதுவர் வடிப்பான்கள்
நிலையான உள்ளமைவுக்கு, உள்வரும் கோரிக்கைகளை எவ்வாறு செயலாக்குவது என்பதை வடிப்பான்கள் தீர்மானிக்கின்றன. இந்த வழக்கில் பொருந்தக்கூடிய வடிப்பான்களை அமைக்கிறோம் சர்வர்_பெயர்கள் முந்தைய கட்டத்தில். குறிப்பிட்ட டொமைன்கள் மற்றும் வழிகளுடன் பொருந்தக்கூடிய உள்வரும் கோரிக்கைகள் வரும்போது, ட்ராஃபிக் கிளஸ்டருக்கு அனுப்பப்படும். இது NGINX பாட்டம்-அப் உள்ளமைவுக்குச் சமம்.
Copy to Editor filter_chains:
- filters:
- name: envoy.http_connection_manager
config:
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: backend
domains:
- "one.example.com"
- "www.one.example.com"
routes:
- match:
prefix: "/"
route:
cluster: targetCluster
http_filters:
- name: envoy.router
பெயர் தூதுவர்.http_connection_manager என்வாய் ப்ராக்ஸியில் உள்ளமைக்கப்பட்ட வடிகட்டியாகும். பிற வடிப்பான்கள் அடங்கும் Redis, மோங்கோ, டிசிபி. முழுமையான பட்டியலை நீங்கள் இங்கே காணலாம்
பிற சுமை சமநிலைக் கொள்கைகள் பற்றிய கூடுதல் தகவலுக்கு, பார்வையிடவும்
படி 5 - ப்ராக்ஸி மற்றும் அப்ஸ்ட்ரீம் உள்ளமைவு
NGINX இல், அப்ஸ்ட்ரீம் உள்ளமைவு போக்குவரத்தைச் செயலாக்கும் இலக்கு சேவையகங்களின் தொகுப்பை வரையறுக்கிறது. இந்த வழக்கில், இரண்டு கிளஸ்டர்கள் ஒதுக்கப்பட்டன.
upstream targetCluster {
172.18.0.3:80;
172.18.0.4:80;
}
தூதுவளையில், இது கிளஸ்டர்களால் நிர்வகிக்கப்படுகிறது.
தூதுவர்கள் கிளஸ்டர்கள்
அப்ஸ்ட்ரீம் சமமானது கிளஸ்டர்களாக வரையறுக்கப்படுகிறது. இந்த வழக்கில், போக்குவரத்திற்கு சேவை செய்யும் ஹோஸ்ட்கள் அடையாளம் காணப்பட்டுள்ளன. ஹோஸ்ட்களை அணுகும் விதம், நேரமுடிவுகள் போன்றவை, கிளஸ்டர் உள்ளமைவாக வரையறுக்கப்படுகிறது. இது தாமதம் மற்றும் சுமை சமநிலை போன்ற அம்சங்களில் அதிக நுண்ணிய கட்டுப்பாட்டை அனுமதிக்கிறது.
Copy to Editor clusters:
- name: targetCluster
connect_timeout: 0.25s
type: STRICT_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
hosts: [
{ socket_address: { address: 172.18.0.3, port_value: 80 }},
{ socket_address: { address: 172.18.0.4, port_value: 80 }}
]
சேவை கண்டுபிடிப்பைப் பயன்படுத்தும் போது STRICT_DNS குறிப்பிட்ட DNS இலக்குகளைத் தூதுவர் தொடர்ந்து மற்றும் ஒத்திசைவின்றித் தீர்ப்பார். DNS முடிவில் இருந்து திரும்பிய ஒவ்வொரு IP முகவரியும் அப்ஸ்ட்ரீம் கிளஸ்டரில் வெளிப்படையான ஹோஸ்டாகக் கருதப்படும். இதன் பொருள், கோரிக்கை இரண்டு ஐபி முகவரிகளை வழங்கினால், கிளஸ்டரில் இரண்டு ஹோஸ்ட்கள் இருப்பதாகவும், இரண்டும் சுமை சமநிலையில் இருக்க வேண்டும் என்றும் தூதர் கருதுவார். முடிவுகளில் இருந்து ஒரு ஹோஸ்ட் அகற்றப்பட்டால், அது இனி இல்லை என்று தூதர் கருதி, ஏற்கனவே உள்ள இணைப்புக் குளங்களில் இருந்து போக்குவரத்தை இழுப்பார்.
மேலும் தகவலுக்கு பார்க்கவும்
படி 6 - பதிவு அணுகல் மற்றும் பிழைகள்
இறுதி கட்டமைப்பு பதிவு ஆகும். பிழை பதிவுகளை வட்டுக்குத் தள்ளுவதற்குப் பதிலாக, என்வாய் ப்ராக்ஸி கிளவுட் அடிப்படையிலான அணுகுமுறையை எடுக்கிறது. அனைத்து பயன்பாட்டுப் பதிவுகளும் வெளியிடப்படுகின்றன stdout и stderr.
பயனர்கள் கோரிக்கை வைக்கும் போது, அணுகல் பதிவுகள் விருப்பமானது மற்றும் இயல்பாகவே முடக்கப்படும். HTTP கோரிக்கைகளுக்கான அணுகல் பதிவுகளை இயக்க, உள்ளமைவை இயக்கவும் அணுகல்_பதிவு HTTP இணைப்பு மேலாளருக்கு. பாதை ஒரு சாதனமாக இருக்கலாம் stdout, அல்லது வட்டில் உள்ள கோப்பு, உங்கள் தேவைகளைப் பொறுத்து.
பின்வரும் உள்ளமைவு அனைத்து அணுகல் பதிவுகளையும் திருப்பிவிடும் stdout (மொழிபெயர்ப்பாளரின் குறிப்பு - docker இன் உள்ளே envoy ஐப் பயன்படுத்த stdout தேவை. டோக்கர் இல்லாமல் பயன்படுத்தினால், வழக்கமான பதிவுக் கோப்பிற்கான பாதையுடன் /dev/stdout ஐ மாற்றவும்). இணைப்பு மேலாளருக்கான உள்ளமைவுப் பகுதிக்கு துணுக்கை நகலெடுக்கவும்:
Copy to Clipboardaccess_log:
- name: envoy.file_access_log
config:
path: "/dev/stdout"
முடிவுகள் இப்படி இருக்க வேண்டும்:
- name: envoy.http_connection_manager
config:
codec_type: auto
stat_prefix: ingress_http
access_log:
- name: envoy.file_access_log
config:
path: "/dev/stdout"
route_config:
இயல்பாக, HTTP கோரிக்கையின் விவரங்களை உள்ளடக்கிய ஒரு வடிவமைப்பு சரத்தை Envoy கொண்டுள்ளது:
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%" "%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"n
இந்த வடிவமைப்பு சரத்தின் முடிவு:
[2018-11-23T04:51:00.281Z] "GET / HTTP/1.1" 200 - 0 58 4 1 "-" "curl/7.47.0" "f21ebd42-6770-4aa5-88d4-e56118165a7d" "one.example.com" "172.18.0.4:80"
வடிவமைப்பு புலத்தை அமைப்பதன் மூலம் வெளியீட்டு உள்ளடக்கத்தை தனிப்பயனாக்கலாம். உதாரணத்திற்கு:
access_log:
- name: envoy.file_access_log
config:
path: "/dev/stdout"
format: "[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"n"
புலத்தை அமைப்பதன் மூலம் பதிவு வரியை JSON வடிவத்தில் வெளியிடலாம் json_format. உதாரணமாக:
access_log:
- name: envoy.file_access_log
config:
path: "/dev/stdout"
json_format: {"protocol": "%PROTOCOL%", "duration": "%DURATION%", "request_method": "%REQ(:METHOD)%"}
தூதர் பதிவு முறை பற்றிய கூடுதல் தகவலுக்கு, பார்வையிடவும்
பதிவுசெய்தல் மட்டுமே Envoy Proxy உடன் பணிபுரிவதற்கான நுண்ணறிவைப் பெறுவதற்கான ஒரே வழி அல்ல. இது மேம்பட்ட டிரேசிங் மற்றும் மெட்ரிக்ஸ் திறன்களைக் கொண்டுள்ளது. நீங்கள் மேலும் அறியலாம்
படி 7 - துவக்கவும்
நீங்கள் இப்போது உங்கள் உள்ளமைவை NGINX இலிருந்து Envoy Proxyக்கு மாற்றியுள்ளீர்கள். கடைசிப் படி, அதைச் சோதிக்க ஒரு தூதர் ப்ராக்ஸி நிகழ்வைத் தொடங்க வேண்டும்.
பயனராக இயக்கவும்
NGINX உள்ளமைவு வரியின் மேலே பயனர் www www; பாதுகாப்பை மேம்படுத்த குறைந்த சலுகை பெற்ற பயனராக NGINX ஐ இயக்கக் குறிப்பிடுகிறது.
செயல்பாட்டின் உரிமையாளர் யார் என்பதை நிர்வகிப்பதற்கு என்வாய் ப்ராக்ஸி கிளவுட் அடிப்படையிலான அணுகுமுறையை எடுக்கிறது. கன்டெய்னர் மூலம் Envoy Proxyஐ இயக்கும்போது, குறைந்த சலுகை பெற்ற பயனரைக் குறிப்பிடலாம்.
தூதர் பதிலாள் தொடங்குதல்
கீழே உள்ள கட்டளை, ஹோஸ்டில் உள்ள டோக்கர் கண்டெய்னர் மூலம் என்வாய் ப்ராக்ஸியை இயக்கும். இந்த கட்டளை போர்ட் 80 இல் உள்வரும் கோரிக்கைகளை கேட்கும் திறனை என்வாய்க்கு வழங்குகிறது. இருப்பினும், கேட்பவர் கட்டமைப்பில் குறிப்பிடப்பட்டுள்ளபடி, போர்ட் 8080 இல் உள்வரும் போக்குவரத்தை என்வாய் ப்ராக்ஸி கேட்கிறது. இது குறைந்த சலுகை பெற்ற பயனராக செயல்பட அனுமதிக்கிறது.
docker run --name proxy1 -p 80:8080 --user 1000:1000 -v /root/envoy.yaml:/etc/envoy/envoy.yaml envoyproxy/envoy
சோதனை
ப்ராக்ஸி இயங்குவதன் மூலம், இப்போது சோதனைகள் செய்யப்பட்டு செயலாக்கப்படும். பின்வரும் cURL கட்டளையானது ப்ராக்ஸி உள்ளமைவில் வரையறுக்கப்பட்ட ஹோஸ்ட் தலைப்புடன் கோரிக்கையை வழங்குகிறது.
curl -H "Host: one.example.com" localhost -i
HTTP கோரிக்கை பிழையை ஏற்படுத்தும் 503. அப்ஸ்ட்ரீம் இணைப்புகள் வேலை செய்யாதது மற்றும் கிடைக்காததே இதற்குக் காரணம். எனவே, என்வாய் ப்ராக்ஸியிடம் கோரிக்கைக்கு எந்த இடமும் இல்லை. பின்வரும் கட்டளையானது தூதுவருக்காக வரையறுக்கப்பட்ட உள்ளமைவுடன் பொருந்தக்கூடிய HTTP சேவைகளின் தொடரைத் தொடங்கும்.
docker run -d katacoda/docker-http-server; docker run -d katacoda/docker-http-server;
கிடைக்கும் சேவைகள் மூலம், தூதர் தனது இலக்குக்கு டிராஃபிக்கை வெற்றிகரமாக மாற்ற முடியும்.
curl -H "Host: one.example.com" localhost -i
எந்த டோக்கர் கொள்கலன் கோரிக்கையைச் செயலாக்கியது என்பதைக் குறிக்கும் பதிலை நீங்கள் பார்க்க வேண்டும். Envoy Proxy பதிவுகளில் நீங்கள் அணுகல் சர வெளியீட்டையும் பார்க்க வேண்டும்.
கூடுதல் HTTP பதில் தலைப்புகள்
உண்மையான கோரிக்கையின் பதில் தலைப்புகளில் கூடுதல் HTTP தலைப்புகளைக் காண்பீர்கள். கோரிக்கையைச் செயலாக்க அப்ஸ்ட்ரீம் ஹோஸ்ட் செலவழித்த நேரத்தை தலைப்பு காட்டுகிறது. மில்லி விநாடிகளில் வெளிப்படுத்தப்பட்டது. நெட்வொர்க் தாமதத்துடன் ஒப்பிடும்போது கிளையன்ட் சேவை நேரத்தை தீர்மானிக்க விரும்பினால் இது பயனுள்ளதாக இருக்கும்.
x-envoy-upstream-service-time: 0
server: envoy
இறுதி கட்டமைப்பு
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 8080 }
filter_chains:
- filters:
- name: envoy.http_connection_manager
config:
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: backend
domains:
- "one.example.com"
- "www.one.example.com"
routes:
- match:
prefix: "/"
route:
cluster: targetCluster
http_filters:
- name: envoy.router
clusters:
- name: targetCluster
connect_timeout: 0.25s
type: STRICT_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
hosts: [
{ socket_address: { address: 172.18.0.3, port_value: 80 }},
{ socket_address: { address: 172.18.0.4, port_value: 80 }}
]
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9090 }
மொழிபெயர்ப்பாளரிடமிருந்து கூடுதல் தகவல்
Envoy Proxy ஐ நிறுவுவதற்கான வழிமுறைகளை இணையதளத்தில் காணலாம்
முன்னிருப்பாக, rpm இல் systemd சேவை கட்டமைப்பு இல்லை.
systemd சேவை கட்டமைப்பைச் சேர்க்கவும் /etc/systemd/system/envoy.service:
[Unit]
Description=Envoy Proxy
Documentation=https://www.envoyproxy.io/
After=network-online.target
Requires=envoy-auth-server.service
Wants=nginx.service
[Service]
User=root
Restart=on-failure
ExecStart=/usr/bin/envoy --config-path /etc/envoy/config.yaml
[Install]
WantedBy=multi-user.target
நீங்கள் ஒரு கோப்பகத்தை /etc/envoy/ உருவாக்கி அங்கு config.yaml config ஐ வைக்க வேண்டும்.
தூதர் ப்ராக்ஸியைப் பயன்படுத்தி தந்தி அரட்டை உள்ளது:
தூதர் ப்ராக்ஸி நிலையான உள்ளடக்கத்தை வழங்குவதை ஆதரிக்காது. எனவே, அம்சத்திற்கு யார் வாக்களிக்க முடியும்:
பதிவு செய்த பயனர்கள் மட்டுமே கணக்கெடுப்பில் பங்கேற்க முடியும்.
இந்த இடுகை தூதுவர் ப்ராக்ஸியை நிறுவி சோதிக்க உங்களை ஊக்குவித்ததா?
-
ஆம்
-
எந்த
75 பயனர்கள் வாக்களித்தனர். 18 பயனர்கள் வாக்களிக்கவில்லை.
ஆதாரம்: www.habr.com