Iṣilọ lati Nginx si Aṣoju Aṣoju

Hey Habr! Eyi ni itumọ ifiweranṣẹ naa: Iṣilọ lati Nginx si Aṣoju Aṣoju.

Aṣoju jẹ olupin aṣoju pinpin iṣẹ giga (ti a kọ sinu C ++) ti a ṣe apẹrẹ fun awọn iṣẹ ati awọn ohun elo kọọkan, o tun jẹ ọkọ akero ibaraẹnisọrọ ati “ọkọ ofurufu data gbogbogbo” ti a ṣe apẹrẹ fun awọn ile-iṣẹ faaji “asopọ iṣẹ” nla. Nigbati o ba ṣẹda, awọn solusan si awọn iṣoro ti o dide lakoko idagbasoke awọn olupin bii NGINX, HAProxy, awọn iwọntunwọnsi fifuye hardware ati awọn iwọntunwọnsi fifuye awọsanma ni a gba sinu apamọ. Aṣoju ṣiṣẹ pọ pẹlu gbogbo ohun elo ati abstracts nẹtiwọọki lati pese iṣẹ ṣiṣe ti o wọpọ laibikita iru ẹrọ. Nigbati gbogbo ijabọ iṣẹ ni awọn amayederun kọja nipasẹ akoj Aṣoju, o di irọrun lati wo awọn agbegbe iṣoro nipasẹ akiyesi deede, ṣiṣatunṣe iṣẹ ṣiṣe gbogbogbo, ati ṣafikun iṣẹ ṣiṣe pataki ni ipo kan pato.

Awọn agbara

  • Itumọ ilana: aṣoju jẹ ti ara ẹni, olupin iṣẹ giga ti o gba Ramu kekere. O ṣiṣẹ ni apapo pẹlu eyikeyi ede elo tabi ilana.
  • http/2 ati atilẹyin grpc: aṣoju ni o ni ogbontarigi http/2 ati atilẹyin grpc fun awọn asopọ ti nwọle ati ti njade. O jẹ aṣoju sihin lati http/1.1 si http/2.
  • Iwontunwonsi fifuye ilọsiwaju: aṣoju ṣe atilẹyin awọn ẹya iwọntunwọnsi fifuye ilọsiwaju, pẹlu awọn igbiyanju adaṣe adaṣe, ifopinsi pq, opin oṣuwọn agbaye, ojiji ibeere, iwọntunwọnsi fifuye agbegbe agbegbe, ati bẹbẹ lọ.
  • API Iṣakoso Iṣeto: aṣoju n pese API ti o lagbara fun ṣiṣakoso iṣeto ni agbara.
  • Ifojusi: Ifojusi jinlẹ ti ijabọ L7, atilẹyin ti a ṣe sinu fun wiwa kaakiri, ati akiyesi mongodb, dynamodb ati ọpọlọpọ awọn ohun elo miiran.

Igbesẹ 1 - Apeere Iṣeto NGINX

Iwe afọwọkọ yii nlo faili ti a ṣe ni pataki nginx.conf, da lori pipe apẹẹrẹ lati Wiki. O le wo iṣeto ni olootu nipa ṣiṣi nginx.conf

Iṣeto nginx akọkọ

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;
    }
  }
}

Awọn atunto NGINX ni igbagbogbo ni awọn eroja pataki mẹta:

  1. Ṣiṣeto olupin NGINX, eto gedu, ati iṣẹ ṣiṣe Gzip. Eyi ni asọye ni agbaye ni gbogbo awọn ọran.
  2. Ṣiṣeto NGINX lati gba awọn ibeere si agbalejo naa ọkan.apẹẹrẹ.com lori ibudo 8080.
  3. Eto ibi ibi-afẹde, bii o ṣe le mu ijabọ fun awọn ẹya oriṣiriṣi ti URL naa.

Kii ṣe gbogbo iṣeto ni yoo kan si Aṣoju Aṣoju ati pe o ko nilo lati tunto diẹ ninu awọn eto. Aṣoju Aṣoju ni mẹrin bọtini orisi, eyiti o ṣe atilẹyin awọn amayederun ipilẹ ti NGINX funni. Ekuro ni:

  • Awọn olutẹtisi: Wọn ṣalaye bi Aṣoju Aṣoju ṣe gba awọn ibeere ti nwọle. Aṣoju Aṣoju lọwọlọwọ ṣe atilẹyin awọn olutẹtisi orisun TCP nikan. Ni kete ti asopọ kan ba ti fi idi mulẹ, o ti kọja si eto àlẹmọ fun sisẹ.
  • Ajọ: Wọn jẹ apakan ti faaji opo gigun ti epo ti o le ṣe ilana data ti nwọle ati ti njade. Iṣẹ ṣiṣe yii pẹlu awọn asẹ bii Gzip, eyiti o rọ data ṣaaju fifiranṣẹ si alabara.
  • Awọn olulana: Wọn ṣe atunṣe ijabọ si ibi ti o fẹ, ti ṣalaye bi iṣupọ kan.
  • Awọn akojọpọ: Wọn ṣalaye aaye ipari fun ijabọ ati awọn aṣayan iṣeto ni.

A yoo lo awọn paati mẹrin wọnyi lati ṣẹda iṣeto Aṣoju Aṣoju lati baamu iṣeto NGINX kan pato. Idi ti Aṣoju jẹ iṣẹ API ati iṣeto ni agbara. Ni idi eyi, iṣeto ipilẹ yoo lo aimi, awọn aṣayan koodu-lile lati NGINX.

Igbesẹ 2 - Iṣeto NGINX

Apa akọkọ nginx.conf n ṣalaye diẹ ninu awọn inu NGINX ti o gbọdọ tunto.

Awọn isopọ Osise

Iṣeto ni isalẹ pinnu nọmba awọn ilana oṣiṣẹ ati awọn asopọ. Eyi tọkasi bi NGINX yoo ṣe iwọn lati pade ibeere.

worker_processes  2;

events {
  worker_connections   2000;
}

Aṣoju Aṣoju n ṣakoso awọn ṣiṣan iṣẹ ati awọn asopọ ni awọn ọna oriṣiriṣi.

Aṣoju ṣẹda okun oṣiṣẹ fun gbogbo okun ohun elo ninu eto naa. Okun oṣiṣẹ kọọkan ṣiṣẹ lupu iṣẹlẹ ti kii ṣe idilọwọ ti o jẹ iduro fun

  1. Nfetisi olutẹtisi kọọkan (olugbọ)
  2. Gbigba titun awọn isopọ
  3. Ṣẹda àlẹmọ ṣeto fun asopọ kan
  4. Ṣiṣe gbogbo awọn iṣẹ I/O nigba igbesi aye asopọ naa.

Gbogbo sisẹ siwaju ti asopọ ni a mu ni kikun ni okun oṣiṣẹ, pẹlu eyikeyi ihuwasi firanšẹ siwaju.

Fun okun oṣiṣẹ kọọkan ni Aṣoju, asopọ kan wa ninu adagun-odo naa. Nitorinaa awọn adagun-isopọ HTTP/2 nikan ṣe agbekalẹ asopọ kan fun agbalejo ita kọọkan ni akoko kan, pẹlu awọn okun oṣiṣẹ mẹrin, awọn asopọ HTTP/2 mẹrin yoo wa fun agbalejo ita kọọkan ni ipo iduroṣinṣin. Nipa titọju ohun gbogbo lori okun oṣiṣẹ kan, o fẹrẹ jẹ pe gbogbo koodu ni a le kọ ni bulọọki-ọfẹ bi ẹnipe o tẹle-ọkan. Ti o ba pin awọn okun oṣiṣẹ diẹ sii ju iwulo lọ, eyi le ja si iranti asonu, ṣiṣẹda nọmba nla ti awọn asopọ ti ko ṣiṣẹ, ati idinku nọmba asopọ ti o pada sẹhin si adagun-odo.

Fun alaye siwaju sii ibewo Aṣoju bulọọgi.

HTTP iṣeto ni

Àkọsílẹ atunto NGINX ti o tẹle n ṣalaye awọn eto HTTP gẹgẹbi:

  • Ohun ti mime orisi ni atilẹyin
  • Awọn akoko aipe
  • Gzip iṣeto ni

O le ṣe akanṣe awọn aaye wọnyi pẹlu awọn asẹ ni Aṣoju Aṣoju, eyiti a yoo jiroro nigbamii.

Igbesẹ 3 - Iṣeto olupin

Ninu bulọọki iṣeto HTTP, iṣeto NGINX ni pato lati tẹtisi lori ibudo 8080 ati dahun si awọn ibeere ti nwọle fun awọn ibugbe ọkan.apẹẹrẹ.com и www.one.example.com.

 server {
    listen        8080;
    server_name   one.example.com  www.one.example.com;

Ninu Aṣoju, Awọn olutẹtisi ṣakoso eyi.

Awọn olutẹtisi Aṣoju

Abala pataki julọ ti bibẹrẹ pẹlu Aṣoju Aṣoju jẹ asọye awọn olutẹtisi. O nilo lati ṣẹda faili iṣeto ni ti o ṣe apejuwe bi o ṣe fẹ ṣiṣe apẹẹrẹ Aṣoju naa.

Awọn snippet ti o wa ni isalẹ yoo ṣẹda olutẹtisi tuntun kan ki o si dè e si ibudo 8080. Iṣeto ni sọ fun aṣoju aṣoju aṣoju ti o yẹ ki o ni asopọ si awọn ibeere ti nwọle.

Aṣoju Aṣoju nlo aami YAML fun iṣeto rẹ. Fun ifihan si akiyesi yii, wo Nibi ọna asopọ.

Copy to Editorstatic_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: { address: 0.0.0.0, port_value: 8080 }

Ko si ye lati setumo orukọ olupin, bi awọn Ajọ aṣoju aṣoju yoo mu eyi.

Igbesẹ 4 - Iṣeto ipo

Nigbati ibeere kan ba de NGINX, idinaduro ipo pinnu bi o ṣe le mu ati ibiti o le ṣe ipa ọna. Ninu ajẹkù ti o tẹle, gbogbo awọn ijabọ si aaye naa ni a gbe lọ si oke (akọsilẹ onitumọ: oke jẹ igbagbogbo olupin ohun elo) iṣupọ ti a npè ni afojusunCluster. Iṣupọ oke n ṣalaye awọn apa ti o yẹ ki o ṣe ilana ibeere naa. A yoo jiroro eyi ni igbesẹ ti nbọ.

location / {
    proxy_pass         http://targetCluster/;
    proxy_redirect     off;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
}

Ni Envoy, eyi ni ohun ti Awọn Ajọ ṣe.

Awọn Ajọ Aṣoju

Fun iṣeto ni aimi, awọn asẹ pinnu bi awọn ibeere ti nwọle ṣe ṣe ilana. Ni idi eyi, a ṣeto awọn asẹ ti o baamu awọn orukọ olupin ni išaaju igbese. Nigbati awọn ibeere ti nwọle ba wọle ti o baamu awọn ibugbe ati awọn ipa-ọna kan, awọn ọna gbigbe lọ si iṣupọ naa. Eyi jẹ deede ti iṣeto ni oke 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

Имя envoy.http_connection_manager jẹ àlẹmọ ti a ṣe sinu Aṣoju Aṣoju. Awọn asẹ miiran pẹlu Redis, Mongo, TCP. O le wa atokọ pipe ni iwe.

Fun alaye diẹ sii lori awọn eto imulo iwọntunwọnsi fifuye miiran, ṣabẹwo Iwe Aṣoju.

Igbesẹ 5 - Aṣoju ati Iṣeto Igbesoke

Ni NGINX, iṣeto ni oke ti n ṣalaye ṣeto ti awọn olupin ibi-afẹde ti yoo ṣe ilana ijabọ naa. Ni ọran yii, a ti yan awọn iṣupọ meji.

  upstream targetCluster {
    172.18.0.3:80;
    172.18.0.4:80;
  }

Ninu Aṣoju eyi ni iṣakoso nipasẹ awọn iṣupọ.

Awọn iṣupọ Aṣoju

Iwọn deede ti oke ni asọye bi awọn iṣupọ. Ni idi eyi, awọn ọmọ-ogun ti yoo sin ijabọ naa ti ni asọye. Bii o ṣe n wọle si awọn agbalejo, gẹgẹbi akoko isunmọ, jẹ asọye bi iṣeto iṣupọ kan. Eyi ngbanilaaye iṣakoso ti o dara julọ lori granularity ti awọn aaye bii lairi ati iwọntunwọnsi fifuye.

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 }}
    ]

Nigba lilo wiwa iṣẹ STRICT_DNS Aṣoju yoo tẹsiwaju nigbagbogbo ati asynchronously yanju awọn ibi-afẹde DNS pàtó kan. Àdírẹ́ẹ̀sì IP kọ̀ọ̀kan tí a dá padà láti inú àbájáde DNS ni a ó kà sí olùgbàlejò pàtó nínú ìdìpọ̀ òkè. Eyi tumọ si pe ti ibeere ba da awọn adirẹsi IP meji pada, Aṣoju yoo ro pe awọn ogun meji wa ninu iṣupọ ati pe awọn mejeeji yẹ ki o jẹ iwọntunwọnsi fifuye. Ti o ba ti yọ ogun kuro lati abajade, Aṣoju ro pe ko si tẹlẹ ati pe yoo fa ijabọ lati eyikeyi awọn adagun asopọ asopọ ti o wa tẹlẹ.

Fun alaye diẹ ẹ sii wo Aṣoju iwe aṣẹ.

Igbesẹ 6 - Wọle Wiwọle ati Awọn aṣiṣe

Ik iṣeto ni ìforúkọsílẹ. Dipo ti titari awọn aṣiṣe aṣiṣe si disk, Aṣoju Aṣoju gba ọna ti o da lori awọsanma. Gbogbo awọn igbasilẹ ohun elo ni o jade si stdout и stderr.

Nigbati awọn olumulo ba ṣe ibeere, awọn iwe iwọle jẹ iyan ati alaabo nipasẹ aiyipada. Lati mu awọn igbasilẹ wiwọle ṣiṣẹ fun awọn ibeere HTTP, mu iṣeto naa ṣiṣẹ wiwọle_log fun oluṣakoso asopọ HTTP. Ọna naa le jẹ boya ẹrọ bii stdout, tabi faili kan lori disiki, da lori awọn ibeere rẹ.

Iṣeto ni atẹle yoo darí gbogbo awọn iwe iwọle si stdout (Akọsilẹ onitumọ - stdout nilo lati lo aṣoju inu docker. Ti o ba lo laisi docker, lẹhinna rọpo / dev/stdout pẹlu ọna si faili log deede). Daakọ snippet si apakan iṣeto fun oluṣakoso asopọ:

Copy to Clipboardaccess_log:
- name: envoy.file_access_log
  config:
    path: "/dev/stdout"

Awọn abajade yẹ ki o dabi eyi:

      - 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:

Nipa aiyipada, Aṣoju ni okun ọna kika ti o pẹlu awọn alaye ti ibeere HTTP:

[%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

Abajade okun ọna kika yii jẹ:

[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"

Awọn akoonu ti o wu le ti wa ni adani nipa siseto aaye kika. Fun apere:

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"

Laini log tun le ṣejade ni ọna kika JSON nipa siseto aaye naa json_kika. Fun apẹẹrẹ:

access_log:
- name: envoy.file_access_log
  config:
    path: "/dev/stdout"
    json_format: {"protocol": "%PROTOCOL%", "duration": "%DURATION%", "request_method": "%REQ(:METHOD)%"}

Fun alaye diẹ sii lori ilana iforukọsilẹ aṣoju, ṣabẹwo

https://www.envoyproxy.io/docs/envoy/latest/configuration/access_log#config-access-log-format-dictionaries

Wiwọle kii ṣe ọna nikan lati ni rilara fun ṣiṣẹ pẹlu Aṣoju Aṣoju. O ti ni ilọsiwaju wiwa kakiri ati awọn metiriki ti a ṣe sinu. O le wa diẹ sii ni kakiri iwe tabi nipasẹ Ibanisọrọ afisona akosile.

Igbesẹ 7 - Ifilọlẹ

O ti ṣe ṣílọ sí iṣeto ni bayi lati NGINX si Aṣoju Aṣoju. Igbesẹ ti o kẹhin ni lati ṣe ifilọlẹ apẹẹrẹ Aṣoju Aṣoju lati ṣe idanwo rẹ.

Ṣiṣe bi olumulo

Ni oke ti laini iṣeto NGINX olumulo www; tọkasi pe NGINX nṣiṣẹ bi olumulo ti o ni anfani kekere lati mu aabo dara sii.

Aṣoju Aṣoju gba ọna orisun-awọsanma lati ṣakoso ẹniti o ni ilana kan. Nigba ti a ba nṣiṣẹ Aṣoju Aṣoju nipasẹ apoti kan, a le pato olumulo anfani kekere kan.

Ṣiṣe aṣoju aṣoju

Aṣẹ ti o wa ni isalẹ yoo ṣe ifilọlẹ Aṣoju Aṣoju nipasẹ apoti Docker kan lori agbalejo naa. Aṣẹ yii fun Aṣoju ni agbara lati tẹtisi awọn ibeere ti nwọle lori ibudo 80. Sibẹsibẹ, gẹgẹbi pato ninu iṣeto olutẹtisi, Aṣoju Aṣoju n tẹtisi fun ijabọ ti nwọle lori ibudo 8080. Eyi ngbanilaaye ilana lati ṣiṣẹ bi olumulo pẹlu awọn anfani kekere.

docker run --name proxy1 -p 80:8080 --user 1000:1000 -v /root/envoy.yaml:/etc/envoy/envoy.yaml envoyproxy/envoy

Igbeyewo

Pẹlu aṣoju nṣiṣẹ, awọn idanwo le ṣee ṣe ati ni ilọsiwaju bayi. Aṣẹ cURL ti o tẹle n ṣe ibeere kan pẹlu akọsori agbalejo ti a ṣalaye ninu iṣeto aṣoju.

curl -H "Host: one.example.com" localhost -i

Ibeere HTTP yoo ja si aṣiṣe 503. Eyi jẹ nitori awọn asopọ oke ko ṣiṣẹ ati pe ko si. Nitorinaa, Aṣoju Aṣoju ko ni awọn ibi ibi-afẹde ti o wa fun ibeere naa. Aṣẹ atẹle yoo bẹrẹ lẹsẹsẹ awọn iṣẹ HTTP ti o baamu iṣeto ni asọye fun Aṣoju.

docker run -d katacoda/docker-http-server; docker run -d katacoda/docker-http-server;

Pẹlu awọn iṣẹ ti o wa, Aṣoju le ṣaṣeyọri ijabọ aṣoju si opin irin ajo rẹ.

curl -H "Host: one.example.com" localhost -i

O yẹ ki o wo esi kan ti o nfihan iru apoti Docker ti mu ibeere naa. Ninu awọn akọọlẹ aṣoju aṣoju, o yẹ ki o tun rii okun iwọle ti a tẹ jade.

Afikun Awọn akọle Idahun HTTP (Idahun HTTP)

Iwọ yoo rii afikun awọn akọle HTTP ni awọn akọle idahun ti ibeere to wulo. Akọsori fihan akoko ti agbalejo oke lo sisẹ ibeere naa. Ti ṣalaye ni awọn iṣẹju-aaya. Eyi wulo ti alabara ba fẹ pinnu akoko iṣẹ dipo airi nẹtiwọọki.

x-envoy-upstream-service-time: 0
server: envoy

Ipari konfigi

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 }

Alaye ni afikun lati ọdọ onitumọ

Awọn ilana fun fifi sori ẹrọ aṣoju aṣoju le ṣee ri lori oju opo wẹẹbu https://www.getenvoy.io/

Ko si atunto iṣẹ eto ni rpm nipasẹ aiyipada.

Ṣafikun atunto iṣẹ eto si /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

O nilo lati ṣẹda /etc/envoy/ directory ki o si fi atunto config.yaml sibẹ.

Iwiregbe telegram kan wa fun aṣoju aṣoju aṣoju: https://t.me/envoyproxy_ru

Aṣoju Aṣoju ko ṣe atilẹyin sisin akoonu aimi. Nitorina tani o le dibo fun ẹya kan: https://github.com/envoyproxy/envoy/issues/378

Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.

Njẹ ifiweranṣẹ yii gba ọ niyanju lati fi sori ẹrọ ati idanwo aṣoju aṣoju?

  • bẹẹni

  • ko si

75 olumulo dibo. 18 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun