コンテナベースでのNginxアプリケーションログバックアップの実装
Load Banchingとは?
これは、タスクをコンピュータリソースに割り当てることを意味します.可用性と応答時間を最適化
Nginxに埋め込まれたLoad Balancingアルゴリズムにより
アプリケーションLoad Barcerの実装
1.nginxのインストール
5.hostosのnginx.confファイルの変更
既存のnginx.confは、Webサーバ用のconfファイルに変更でき、confファイルのロードとアンインストールに使用できます.
root@hostos1:~# cd/etc/nginx/
root@hostos1:/etc/nginx# mv nginx.conf nginx.conf.web
既存のnginx.confファイルをバックアップします.
新規作成
Seerver listen 80ポートからのリクエストに応答
/urlを介してlocation/80ポートにアクセスするリクエストに応答
Proxy pass 80ポート/urlに要求http://backend-albを発行する.ここに届けて
http上流proxy passで送信するurlを設定
6.nginx.conf修正後nginx状態をチェックでロード・バランシングが行われているかどうかを確認します.
node01
node02
node03 同じ疲労ノード010203に近いことを確認
ノード010203上の平均流量は、Nginx基本アルゴリズムroundrobinによって決定される
こうして、nginxとdockerコンテナでApplicationLoadBankを実現!
これは、タスクをコンピュータリソースに割り当てることを意味します.可用性と応答時間を最適化
Nginxに埋め込まれたLoad Balancingアルゴリズムにより
アプリケーションLoad Barcerの実装
1.nginxのインストール
sudo apt -y install nginx
2.nginx状態チェックroot@hostos1:~# nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
root@hostos1:~# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running)
root@hostos1:~# netstat -nlp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9972/nginx: master
tcp6 0 0 :::80 :::* LISTEN
3.負荷バランシングのための3つのコンテナの作成root@hostos1:~# docker run -itd -e SERVER_PORT=5001 \
-p 5001:5001 \
-h alb-node01 \
-u root \
--name=alb-node01 \
dbgurum/nginxlb:1.0
Node 2とnode 3の作成方法は同じですroot@hostos1:~# docker run -itd -e SERVER_PORT=5002 -p 5002:5002 -h alb-node02 -u root --name=alb-node02 dbgurum/nginxlb:1.0
fdb4739d8f24063689a32fb9180bac65fd80814604f6f38159540ad55a15ddf7
root@hostos1:~# docker run -itd -e SERVER_PORT=5003 -p 5003:5003 -h alb-node03 -u root --name=alb-node03 dbgurum/nginxlb:1.0
b09c38070272cb4f1ed2d154252a6c238128619ddb2438566547620586c9ac15
4.検査容器root@hostos1:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b09c38070272 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 47 seconds ago Up 46 seconds 0.0.0.0:5003->5003/tcp, :::5003->5003/tcp alb-node03
fdb4739d8f24 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" About a minute ago Up About a minute 0.0.0.0:5002->5002/tcp, :::5002->5002/tcp alb-node02
ee51a5202771 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 2 minutes ago Up 2 minutes 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp alb-node01
ポートの確認root@hostos1:~# netstat -nlp | grep 5001
tcp 0 0 0.0.0.0:5001 0.0.0.0:* LISTEN 10886/docker-proxy
tcp6 0 0 :::5001 :::* LISTEN 10893/docker-proxy
root@hostos1:~# netstat -nlp | grep 5002
tcp 0 0 0.0.0.0:5002 0.0.0.0:* LISTEN 11229/docker-proxy
tcp6 0 0 :::5002 :::* LISTEN 11236/docker-proxy
root@hostos1:~# netstat -nlp | grep 5003
tcp 0 0 0.0.0.0:5003 0.0.0.0:* LISTEN 11551/docker-proxy
tcp6 0 0 :::5003 :::* LISTEN
正常な動作を確認5.hostosのnginx.confファイルの変更
既存のnginx.confは、Webサーバ用のconfファイルに変更でき、confファイルのロードとアンインストールに使用できます.
root@hostos1:~# cd/etc/nginx/
root@hostos1:/etc/nginx# mv nginx.conf nginx.conf.web
既存のnginx.confファイルをバックアップします.
新規作成
root@hostos1:/etc/nginx# vi nginx.conf
events { worker_connections 1024; }
http {
upstream backend-alb {
server localhost:5001;
server localhost:5002;
server localhost:5003;
}
server {
listen 80 default_server;
location /{
proxy_pass http://backend-alb;
}
}
}
1024個のworker connectionインタフェースに設定Seerver listen 80ポートからのリクエストに応答
/urlを介してlocation/80ポートにアクセスするリクエストに応答
Proxy pass 80ポート/urlに要求http://backend-albを発行する.ここに届けて
http上流proxy passで送信するurlを設定
server localhost:5001 weight=6;
server localhost:5002 weight=2;
server localhost:5003 weight=2;
weightオプションで重みを設定できます!6.nginx.conf修正後nginx状態をチェック
root@hostos1:/etc/nginx# systemctl restart nginx.service
root@hostos1:/etc/nginx# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running)
node01
node02
node03
ノード010203上の平均流量は、Nginx基本アルゴリズムroundrobinによって決定される
こうして、nginxとdockerコンテナでApplicationLoadBankを実現!
Reference
この問題について(コンテナベースでのNginxアプリケーションログバックアップの実装), 我々は、より多くの情報をここで見つけました https://velog.io/@yk1700/컨테이너를-기반으로-Nginx-Application-Load-Balacing을-구현해보자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol