この小さなマニュアルの作成に先立って、プロジェクトでの作業を試みる数週間の苦痛がありました。作業用のサイトを備えたコンテナ、テストアセンブリを備えたコンテナを起動して、テスターが基本データの新しいシステム機能を安全にテストできるようにする必要がある場合、および技術サポートのビルドを調査する必要がありました。 「戦闘」に近い条件でシステムを操作します。
さらに、開発チームのメンバー向けのサービスWebインターフェイスが機能するはずです。この場合、一部のシステムはphpのあるバージョンで動作し、一部は別のバージョンで動作するはずです。同時に、サイトが動作する環境には違いがあります。オペレーティングシステムとリクエストを処理するhttp-serverから始まり、インストールされたphpモジュールで終わります。
複雑なことではないようです。コンテナを持ち上げて、ポートを外側に進めます。ただし、コンテナごとに、覚えておく必要のある独自の外部ポートを指定してから、たとえば会計士(これはテスターでもあります)に転送して、使用するシステムの改善点を確認する必要があります。修正したばかりのスクリプトが期待どおりに機能しなかった理由や、サイトがまったく開かなかった理由を私自身が理解できないことがありました。
HAPRoxy , 80 443, .
docker
docker , .
docker . HAProxy ip- , - .
docker network create develop --subnet=172.20.0.0/16
ip docker-compose.yml :
networks:
default:
external:
name: develop
, HAProxy, ip-.
networks:
default:
ipv4_address: 172.20.1.1
https
HAProxy https .
, HAProxy.
- (key)
sudo openssl genrsa -out site.key 2048
- Certificate Signing Request (csr)
sudo openssl req -new -key site.key -out site.csr
- (crt)
sudo openssl x509 -req -days 365 -in site.csr -signkey site.key -out site.crt
- (pem)
sudo bash -c 'cat site.key site.crt >> site.pem'
HAProxy.
, HAProxy Docker.
haproxy.cfg docker-compose.yml.
, . , HAProxy docker-compose.
HAPRoxy
HAProxy 80 443, , , 80 . https.
443 .
HAProxy frontend , .
frontend , backend.
Backend, , .
defaults .
docker HAProxy /usr/local/etc/haproxy/haproxy.cfg
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_frontend
bind *:80
redirect scheme https if !{ ssl_fc }
frontend https_frontend
bind *:443 ssl crt /etc/ssl/certs/site.pem
acl is_microbase hdr_end(host) -i microbase.localhost
use_backend microbase if is_microbase
acl is_coordinator hdr_end(host) -i coordinator.localhost
use_backend coordinator if is_coordinator
backend microbase
server microbase 172.20.1.1:80 check
backend coordinator
server coordinator 172.20.1.2:80 check
docker-compose.yml
docker docker-compose, yml .
microbase.localhost coordinator.localhost HAProxy.
c HAProxy .
docker-compose docker-compose.yml .
-f.
docker-compose -f. , .
version: "3"
services:
microbase:
image: "inblank/php7.4-apache"
volumes:
- ./microbase:/var/www
networks:
default:
ipv4_address: 172.20.1.1
coordinator:
image: "inblank/php7.4-apache"
volumes:
- ./coordinator:/var/www
networks:
default:
ipv4_address: 172.20.1.2
haproxy:
image: "haproxy:2.2-alpine"
ports:
- 80:80
- 443:443
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
- ./cert.pem:/etc/ssl/certs/site.pem
networks:
default:
external:
name: develop
siege 25 . 1- .
siege coordinator.localhost -t 1m
php :
<?php
echo "Hello World!";
apache 2.4 php .
Intel Core i5-8250U 1.60GHz, 8 SSD . Linux Mint 20 Cinnamon
.
- 80
HAProxy ** SIEGE 4.0.4 ** Preparing 25 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: 258084 hits Availability: 100.00 % Elapsed time: 59.39 secs Data transferred: 2.95 MB Response time: 0.01 secs Transaction rate: 4345.58 trans/sec Throughput: 0.05 MB/sec Concurrency: 24.72 Successful transactions: 258084 Failed transactions: 0 Longest transaction: 0.04 Shortest transaction: 0.00
** SIEGE 4.0.4 ** Preparing 25 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: 314572 hits Availability: 100.00 % Elapsed time: 59.18 secs Data transferred: 3.60 MB Response time: 0.00 secs Transaction rate: 5315.51 trans/sec Throughput: 0.06 MB/sec Concurrency: 24.64 Successful transactions: 314572 Failed transactions: 0 Longest transaction: 0.11 Shortest transaction: 0.00
~18%.
- 80 443
HAProxy ** SIEGE 4.0.4 ** Preparing 25 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: 114804 hits Availability: 100.00 % Elapsed time: 59.44 secs Data transferred: 0.66 MB Response time: 0.01 secs Transaction rate: 1931.43 trans/sec Throughput: 0.01 MB/sec Concurrency: 24.78 Successful transactions: 114824 Failed transactions: 0 Longest transaction: 1.03 Shortest transaction: 0.00
** SIEGE 4.0.4 ** Preparing 25 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: 134364 hits Availability: 100.00 % Elapsed time: 59.80 secs Data transferred: 19.99 MB Response time: 0.01 secs Transaction rate: 2246.89 trans/sec Throughput: 0.33 MB/sec Concurrency: 24.74 Successful transactions: 134374 Failed transactions: 0 Longest transaction: 0.08 Shortest transaction: 0.00
~14.5%.
予想どおり、HAProxyを使用したソリューションを使用するとパフォーマンスが低下しますが、サイトの開発およびテストアセンブリへのアクセスの提供のプロセスでこの構成を使用する場合は重要ではありません。