เดŽเตปเดœเดฟเตปเด•เตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเตˆเด—เตเดฐเต‡เดทเตป

เดนเดฒเต‹, เดนเดฌเตเตผ! เดชเต‹เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดžเดพเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต: เดŽเตปเดœเดฟเตปเด•เตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเตˆเด—เตเดฐเต‡เดทเตป.

เดตเตเดฏเด•เตเดคเดฟเด—เดค เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดค เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดกเต เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟ เดธเต†เตผเดตเดฑเดพเดฃเต เดŽเตปเดตเต‹เดฏเต, เด‡เดคเต เด’เดฐเต เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเด•เตเด•เต‡เดทเตป เดฌเดธเตเด‚ เดตเดฒเดฟเดฏ เดฎเตˆเด•เตเดฐเต‹ เดธเตผเดตเต€เดธเต โ€œเดธเตผเดตเต€เดธเต เดฎเต†เดทเตโ€ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ โ€œเดฏเต‚เดฃเดฟเดตเต‡เดดเตโ€Œเดธเตฝ เดกเดพเดฑเตเดฑเดพ เดชเตเดฒเต†เดฏเดฟเดจเตเด‚โ€ เด•เต‚เดŸเดฟเดฏเดพเดฃเต. เด‡เดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, NGINX, HAProxy, เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฑเตเด•เตพ, เด•เตเดฒเต—เดกเต เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฑเตเด•เตพ เดคเตเดŸเด™เตเด™เดฟเดฏ เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต† เดตเดฟเด•เดธเดจ เดธเดฎเดฏเดคเตเดคเต เด‰เดฃเตเดŸเดพเดฏ เดชเตเดฐเดถเตเดจเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดจเตเดจเต. เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เดชเตŠเดคเตเดตเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดŽเตปเดตเต‹เดฏเต เด“เดฐเต‹ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต†เดฏเตเด‚ เด’เดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดจเต† เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดฐเต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดธเต‡เดตเดจ เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด‚ เดŽเตปเดตเต‹เดฏเต เดฎเต†เดทเดฟเดฒเต‚เดŸเต† เด’เดดเตเด•เตเดฎเตเดชเต‹เตพ, เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚, เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเด•เดŸเดจเด‚ เดŸเตเดฏเต‚เตบ เดšเต†เดฏเตเดฏเตฝ, เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเตเดฅเดฒเดคเตเดคเต เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดถเตเดจเดฎเตเดณเตเดณ เดชเตเดฐเดฆเต‡เดถเด™เตเด™เตพ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด‚.

เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ

  • เด”เดŸเตเดŸเต-เด“เดซเต-เดชเตเดฐเต‹เดธเดธเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ: เดŽเตปเดตเต‹เดฏเต เดŽเดจเตเดจเดคเต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด…เดณเดตเดฟเดฒเตเดณเตเดณ เดฑเดพเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจ, เดธเตเดตเดฏเด‚ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจ, เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ เดธเต†เตผเดตเดฑเดพเดฃเต. เด‡เดคเต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดญเดพเดทเดฏเตเดฎเดพเดฏเต‹ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเดฎเดพเดฏเต‹ เดธเด‚เดฏเต‹เดœเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.
  • http/2, grpc เดชเดฟเดจเตเดคเตเดฃ: เดŽเตปเดตเต‹เดฏเตโ€Œเด•เตเด•เต เดซเดธเตเดฑเตเดฑเต เด•เตเดฒเดพเดธเต http/2, เด‡เตปเด•เดฎเดฟเด‚เด—เต, เด”เดŸเตเดŸเตโ€Œเด—เต‹เดฏเดฟเด‚เด—เต เด•เดฃเด•เตเดทเดจเตเด•เตพเด•เตเด•เต grpc เดชเดฟเดจเตเดคเตเดฃเดฏเตเดฃเตเดŸเต. เด‡เดคเต http/1.1 เดฎเตเดคเตฝ http/2 เดตเดฐเต†เดฏเตเดณเตเดณ เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เดชเตเดฐเต‹เด•เตเดธเดฟ เด†เดฃเต.
  • เด…เดกเตเดตเดพเตปเดธเตเดกเต เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด™เต: เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดฑเต€เดŸเตเดฐเต€เดธเต, เดšเต†เดฏเดฟเตป เดฌเตเดฐเต‡เด•เตเด•เดฟเด‚เด—เต, เด—เตเดฒเต‹เดฌเตฝ เดฑเต‡เดฑเตเดฑเต เดฒเดฟเดฎเดฟเดฑเตเดฑเดฟเด‚เด—เต, เดฑเดฟเด•เตเดตเดธเตเดฑเตเดฑเต เดทเดพเดกเต‹เดตเดฟเด‚เด—เต, เดฒเต‹เด•เตเด•เตฝ เดธเต‹เตบ เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด™เต เดคเตเดŸเด™เตเด™เดฟเดฏเดต เด‰เตพเดชเตเดชเต†เดŸเต†เดฏเตเดณเตเดณ เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด™เต เดซเต€เดšเตเดšเดฑเตเด•เดณเต† เดฆเต‚เดคเตป เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต.
  • เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดจเต‡เดœเตโ€Œเดฎเต†เดจเตเดฑเต API: เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดŽเตปเดตเต‹เดฏเต เด’เดฐเต เดถเด•เตเดคเดฎเดพเดฏ API เดจเตฝเด•เตเดจเตเดจเต.
  • เดจเดฟเดฐเต€เด•เตเดทเดฃเด•เตเดทเดฎเดค: L7 เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดจเตเดฑเต† เด†เดดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚, mongodb, dynamodb เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต†เดฏเตเด‚ เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เดจเต‡เดฑเตเดฑเต€เดตเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฃเด•เตเดทเดฎเดคเดฏเตเด‚.

เด˜เดŸเตเดŸเด‚ 1 - เด‰เดฆเดพเดนเดฐเดฃเด‚ NGINX เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เดˆ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฎเดพเดฏเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต nginx.conf, เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเต‚เตผเดฃเตเดฃ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ 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 เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพเด•เตเด•เต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฎเต‚เดจเตเดจเต เดชเตเดฐเดงเดพเดจ เด˜เดŸเด•เด™เตเด™เตพ เด‰เดฃเตเดŸเต:

  1. NGINX เดธเต†เตผเดตเตผ, เดฒเต‹เด—เต เด˜เดŸเดจ, Gzip เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดŽเดจเตเดจเดฟเดต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเดฒเตเด‚ เด‡เดคเต เด†เด—เต‹เดณเดคเดฒเดคเตเดคเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต.
  2. เดนเต‹เดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต NGINX เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต one.example.com เดชเต‹เตผเดŸเตเดŸเต 8080-เตฝ.
  3. เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดฒเตŠเด•เตเด•เต‡เดทเตป เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, URL-เดจเตเดฑเต† เดตเดฟเดตเดฟเดง เดญเดพเด—เด™เตเด™เดณเดฟเตฝ เดŸเตเดฐเดพเดซเดฟเด•เต เดŽเด™เตเด™เดจเต† เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเด‚.

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเด•เตเด•เต เดŽเดฒเตเดฒเดพ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด‚ เดฌเดพเดงเด•เดฎเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพ เดšเดฟเดฒ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ. เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‰เดฃเตเดŸเต เดจเดพเดฒเต เดชเตเดฐเดงเดพเดจ เดคเดฐเด™เตเด™เตพ, NGINX เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เต‹เตผ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เด•เดพเดคเตฝ เด‡เดคเดพเดฃเต:

  • เดถเตเดฐเต‹เดคเดพเด•เตเด•เตพ: เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‡เตปเด•เดฎเดฟเด‚เด—เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดŽเด™เตเด™เดจเต† เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด…เดตเตผ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดจเดฟเดฒเดตเดฟเตฝ เดŸเดฟเดธเดฟเดชเดฟ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดถเตเดฐเต‹เดคเดพเด•เตเด•เดณเต† เดฎเดพเดคเตเดฐเดฎเต‡ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เต‚. เด’เดฐเต เด•เดฃเด•เตเดทเตป เดธเตเดฅเดพเดชเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เด…เดคเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต.
  • เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ: เด‡เตปเด•เดฎเดฟเด‚เด—เต, เด”เดŸเตเดŸเตโ€Œเด—เต‹เดฏเดฟเด‚เด—เต เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เดชเตˆเดชเตเดชเต เดฒเตˆเตป เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฃเต เด…เดต. เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ Gzip เดชเต‹เดฒเตเดณเตเดณ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดคเต เด•เตเดฒเดฏเดจเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดกเดพเดฑเตเดฑ เด•เด‚เดชเตเดฐเดธเตเดธเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดฑเต‚เดŸเตเดŸเดฑเตเด•เตพ: เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดพเดฏเดฟ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดฒเด•เตเดทเตเดฏเดธเตเดฅเดพเดจเดคเตเดคเต‡เด•เตเด•เต เด…เดตเตผ เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต.
  • เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เตพ: เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดจเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพเด•เตเด•เตเดฎเตเดณเตเดณ เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเต เด…เดตเตผ เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต.

เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ NGINX เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดˆ เดจเดพเดฒเต เด˜เดŸเด•เด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚. เดŽเดชเดฟเดเด•เดณเตเด‚ เดกเตˆเดจเดพเดฎเดฟเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดŽเตปเดตเต‹เดฏเดฟเดฏเตเดŸเต† เดฒเด•เตเดทเตเดฏเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป NGINX-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต, เดนเดพเตผเดกเต-เด•เต‹เดกเดกเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เด˜เดŸเตเดŸเด‚ 2 - NGINX เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เด†เดฆเตเดฏ เดญเดพเด—เด‚ nginx.conf เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เดšเดฟเดฒ NGINX เด‡เดจเตเดฑเต‡เดฃเดฒเตเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต.

เดคเตŠเดดเดฟเดฒเดพเดณเดฟ เด•เดฃเด•เตเดทเดจเตเด•เตพ

เดคเดพเดดเต†เดฏเตเดณเตเดณ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดคเตŠเดดเดฟเดฒเดพเดณเดฟ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเตเดŸเต†เดฏเตเด‚ เด•เดฃเด•เตเดทเดจเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดŽเดฃเตเดฃเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เด†เดตเดถเตเดฏเด‚ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ NGINX เดŽเด™เตเด™เดจเต† เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเตเดฎเต†เดจเตเดจเต เด‡เดคเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

worker_processes  2;

events {
  worker_connections   2000;
}

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเต€เดคเดฟเด•เดณเดฟเตฝ เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เด•เดณเตเด‚ เด•เดฃเด•เตเดทเดจเตเด•เดณเตเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต† เด“เดฐเต‹ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดคเตเดฐเต†เดกเดฟเดจเตเด‚ เดŽเตปเดตเต‹เดฏเต เด’เดฐเต เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด“เดฐเต‹ เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเตเด‚ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฏ เด’เดฐเต เดจเต‹เตบ-เดฌเตเดฒเต‹เด•เตเด•เดฟเด‚เด—เต เด‡เดตเดจเตเดฑเต เดฒเต‚เดชเตเดชเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

  1. เด“เดฐเต‹ เดถเตเดฐเต‹เดคเดพเดตเดฟเดจเต†เดฏเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต
  2. เดชเตเดคเดฟเดฏ เด•เดฃเด•เตเดทเดจเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
  3. เด’เดฐเต เด•เดฃเด•เตเดทเดจเดพเดฏเดฟ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต
  4. เด•เดฃเด•เตเดทเดจเตเดฑเต† เดœเต€เดตเดฟเดคเด•เดพเดฒเดคเตเดคเต เดŽเดฒเตเดฒเดพ I/O เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•.

เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดซเต‹เตผเดตเต‡เดกเดฟเด‚เด—เต เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเด‚ เด‰เตพเดชเตเดชเต†เดŸเต†, เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด•เดฃเด•เตเดทเตป เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเดฟเดฒเดพเดฃเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต.

เดŽเตปเดตเต‹เดฏเดฟเดฏเดฟเดฒเต† เด“เดฐเต‹ เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเดฟเดจเตเด‚ เด’เดฐเต เด•เดฃเด•เตเดทเตป เดชเต‚เตพ เด‰เดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ HTTP/2 เด•เดฃเด•เตเดทเตป เดชเต‚เดณเตเด•เตพ เด’เดฐเต เดฌเดพเดนเตเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเต เด’เดฐเต เดธเดฎเดฏเด‚ เด’เดฐเต เด•เดฃเด•เตเดทเตป เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚, เดจเดพเดฒเต เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเตเด•เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด…เดตเดธเตเดฅเดฏเดฟเตฝ เด’เดฐเต เดฌเดพเดนเตเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเต เดจเดพเดฒเต HTTP/2 เด•เดฃเด•เตเดทเดจเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเด‚. เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเต เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เด•เต‹เดกเตเด•เดณเตเด‚ เด’เดฑเตเดฑ เดคเตเดฐเต†เดกเตเดณเตเดณเดคเตเดชเต‹เดฒเต† เดฌเตเดฒเต‹เด•เตเด•เต เดšเต†เดฏเตเดฏเดพเดคเต† เดŽเดดเตเดคเดพเดจเดพเด•เตเด‚. เด†เดตเดถเตเดฏเดคเตเดคเดฟเดฒเดงเดฟเด•เด‚ เดตเตผเด•เตเด•เตผ เดคเตเดฐเต†เดกเตเด•เตพ เด…เดจเตเดตเดฆเดฟเดšเตเดšเดพเตฝ, เด‡เดคเต เดชเดพเดดเดพเดฏ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดงเดพเดฐเดพเดณเด‚ เดจเดฟเดทเตโ€Œเด•เตเดฐเดฟเดฏ เด•เดฃเด•เตเดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เดฃเด•เตเดทเดจเตเด•เตพ เดชเต‚เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต เดธเดจเตเดฆเตผเดถเดฟเด•เตเด•เตเด• เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดฌเตเดฒเต‹เด—เต.

HTTP เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ NGINX เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฌเตเดฒเต‹เด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเตเดณเตเดณ HTTP เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต:

  • เดเดคเต เดฎเตˆเด‚ เดคเดฐเด™เตเด™เดณเดพเดฃเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดคเต
  • เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดŸเตˆเด‚เด”เดŸเตเดŸเตเด•เตพ
  • Gzip เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเดฒเต† เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดตเดถเด™เตเด™เตพ เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเต เดžเด™เตเด™เตพ เดชเดฟเดจเตเดจเต€เดŸเต เดšเตผเดšเตเดš เดšเต†เดฏเตเดฏเตเด‚.

เด˜เดŸเตเดŸเด‚ 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 }

เดจเดฟเตผเดตเดšเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‡เดคเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดฎเต†เดจเตเดจเดคเดฟเดจเดพเตฝ.

เด˜เดŸเตเดŸเด‚ 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 เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเดฒเต† เด’เดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดซเดฟเตฝเดŸเตเดŸเดฑเดพเดฃเต. เดฎเดฑเตเดฑเต เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต เดฐเต†เดฆเดฟเดธเต, เดฎเต‡เดพเด™เตเด•เต‡เดพ, TCP. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เด‡เดตเดฟเดŸเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

เดฎเดฑเตเดฑเต เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด™เต เดจเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เดธเดจเตเดฆเตผเดถเดฟเด•เตเด•เตเด• เดฆเต‚เดคเตป เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป.

เด˜เดŸเตเดŸเด‚ 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 เดตเดฟเดฒเดพเดธเดตเตเด‚ เด…เดชเตโ€ŒเดธเตเดŸเตเดฐเต€เด‚ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เด’เดฐเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดนเต‹เดธเตเดฑเตเดฑเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด‚. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚, เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฐเดฃเตเดŸเต IP เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เดจเตฝเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดฐเดฃเตเดŸเต เดนเต‹เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดŽเตปเดตเต‹เดฏเต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเด‚, เดฐเดฃเตเดŸเตเด‚ เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเตเดกเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดซเดฒเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดนเต‹เดธเตเดฑเตเดฑเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเต†เดจเตเดจเต เดŽเตปเดตเต‹เดฏเต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด•เดฃเด•เตเดทเตป เดชเต‚เดณเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดจเต† เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเตเด• เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป.

เด˜เดŸเตเดŸเด‚ 6 - เดฒเต‹เด—เต เด†เด•เตเดธเดธเตเด‚ เดชเดฟเดถเด•เตเด•เดณเตเด‚

เด…เดตเดธเดพเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฐเดœเดฟเดธเตเดŸเตเดฐเต‡เดทเดจเดพเดฃเต. เดชเดฟเดถเด•เต เดฒเต‹เด—เตเด•เตพ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดคเดณเตเดณเตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚, เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด’เดฐเต เด•เตเดฒเต—เดกเต เด…เดงเดฟเดทเตเด เดฟเดค เดธเดฎเต€เดชเดจเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเต‹เด—เตเด•เดณเตเด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด†เดฃเต stdout ะธ stderr.

เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดŸเดคเตเดคเตเดฎเตเดชเต‹เตพ, เด†เด•เตเดธเดธเต เดฒเต‹เด—เตเด•เตพ เด“เดชเตเดทเดฃเตฝ เด†เด•เตเด•เดฏเตเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. HTTP เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เดพเดฏเดฟ เด†เด•เตเดธเดธเต เดฒเต‹เด—เตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป, เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด• เด†เด•เตเดธเดธเต_เดฒเต‹เด—เต HTTP เด•เดฃเด•เตเดทเตป เดฎเดพเดจเต‡เดœเตผเด•เตเด•เดพเดฏเดฟ. เดชเดพเดค เด’เดจเตเดจเตเด•เดฟเตฝ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เด†เด•เดพเด‚ stdout, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต เดกเดฟเดธเตเด•เดฟเดฒเตเดณเตเดณ เด’เดฐเต เดซเดฏเตฝ.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเดฒเตเดฒเดพ เด†เด•เตโ€Œเดธเดธเต เดฒเต‹เด—เตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เดšเต†เดฏเตเดฏเตเด‚ stdout (เดตเดฟเดตเตผเดคเตเดคเด•เดจเตเดฑเต† เด•เตเดฑเดฟเดชเตเดชเต - เดกเต‹เด•เตเด•เดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดŽเตปเดตเต‹เดฏเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต 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:

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เดŽเดšเตเดšเตเดŸเดฟเดŸเดฟเดชเดฟ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เต เดŽเตปเดตเต‹เดฏเตโ€Œเด•เตเด•เต เด‰เดฃเตเดŸเต:

[%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)%"}

เดŽเตปเดตเต‹เดฏเต เดฐเดœเดฟเดธเตเดŸเตเดฐเต‡เดทเตป เดฐเต€เดคเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เดธเดจเตเดฆเตผเดถเดฟเด•เตเด•เตเด•

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

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เตพเด•เตเด•เดพเดดเตเดš เดจเต‡เดŸเดพเดจเตเดณเตเดณ เด’เดฐเต‡เดฏเตŠเดฐเต เดฎเดพเตผเด—เตเด—เด‚ เดฒเต‹เด—เดฟเด‚เด—เต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ. เด‡เดคเดฟเดจเต เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต, เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เด•เดดเดฟเดตเตเด•เตพ เด‰เดฃเตเดŸเต. เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดฒเต‚เดŸเต† เด‡เดจเตเดฑเดฑเดพเด•เตเดŸเต€เดตเต เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต.

เด˜เดŸเตเดŸเด‚ 7 - เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•

เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ NGINX-เตฝ เดจเดฟเดจเตเดจเต เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเตˆเด—เตเดฐเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดคเต. เด‡เดคเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‡เตปเดธเตเดฑเตเดฑเตปเดธเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดตเดธเดพเดจ เด˜เดŸเตเดŸเด‚.

เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

NGINX เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฒเตˆเดจเดฟเดจเตเดฑเต† เดฎเตเด•เดณเดฟเตฝ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต www www; เดธเตเดฐเด•เตเดท เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดฒเต‹-เดชเตเดฐเดฟเดตเดฟเดฒเต‡เดœเตเดกเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดพเดฏเดฟ NGINX เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต.

เด’เดฐเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดธเตเดฅเดค เด†เตผเด•เตเด•เดพเดฃเต†เดจเตเดจเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด•เตเดฒเต—เดกเต เด…เดงเดฟเดทเตเด เดฟเดค เดธเดฎเต€เดชเดจเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เด’เดฐเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดฒเต‚เดŸเต† เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เตเดฑเดžเตเดž เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเดฎเตเดณเตเดณ เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดจเดฎเตเด•เตเด•เต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต

เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดนเต‹เดธเตเดฑเตเดฑเดฟเดฒเต† เด’เดฐเต เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เดตเดดเดฟ เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เดˆ เด•เดฎเดพเตปเดกเต เดชเต‹เตผเดŸเตเดŸเต 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

เดเดคเต เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดพเดฃเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดคเดคเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚. เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดฒเต‹เด—เตเด•เดณเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด†เด•เตเดธเดธเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด‚ เด•เดพเดฃเตเด‚.

เด…เดงเดฟเด• 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 }

เดตเดฟเดตเตผเดคเตเดคเด•เดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดงเดฟเด• เดตเดฟเดตเดฐเด™เตเด™เตพ

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเดฟเตฝ เด•เดพเดฃเดพเด‚ https://www.getenvoy.io/

เดธเตเดตเดคเดตเต‡, 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 เด‡เดŸเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚.

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดšเดพเดฑเตเดฑเต เด‰เดฃเตเดŸเต: https://t.me/envoyproxy_ru

เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต† เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเดพเตฝ, เดซเต€เดšเตเดšเดฑเดฟเดจเต เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด†เตผเด•เตเด•เตŠเด•เตเด•เต† เด•เดดเดฟเดฏเตเด‚: https://github.com/envoyproxy/envoy/issues/378

เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดธเตˆเตป เด‡เตปเดฆเดฏเดตเดพเดฏเดฟ.

เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เดˆ เดชเต‹เดธเตเดฑเตเดฑเต เดจเดฟเด™เตเด™เดณเต† เดชเตเดฐเต‹เดคเตเดธเดพเดนเดฟเดชเตเดชเดฟเดšเตเดšเต‹?

  • เด…เดคเต†

  • เด‡เดฒเตเดฒ

75 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 18 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•