さて、今回はほぼ同じ物を同居させてみようと思います。
ポートやら何やら色々いろいろモロかぶりです。
思い出しながら書いてるので抜けとか間違いとかあって、このままでは動かないかもしれません。
ドメインはharvestasya.comにそれぞれサブドメインを追加して以下のようにしました。
Symbol: symbol02.harvestasya.com
dHealth: dhealth02.harvestasya.com
Nginxの設定
まずは通信ポートが被っているので、これをホスト名で分岐させます。
あ、今回は面倒なのでHTTPSは対応させてません。
streamを使うのでngx_stream_module.soが導入されていること。
入ってなかったらapt -y install libnginx-mod-stream
Symbol: symbol02.harvestasya.com
REST-Gateway: 3000->3010
ノード間通信: 7900->7910
dHealth: dhealth02.harvestasya.com
REST-Gateway: 3000->3050
ノード間通信: 7900->7950
http {
~略~
# Websocket用
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
server_name symbol02.harvestasya.com;
listen 3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
location / {
proxy_pass http://127.0.0.1:3010;
}
}
server {
server_name dhealth02.harvestasya.com;
listen 3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
location / {
proxy_pass http://127.0.0.1:3050;
}
}
}
stream {
map $ssl_preread_server_name $domain {
symbol02.harvestasya.com symbol02_node;
dhealth02.harvestasya.com dhealth02_node;
}
upstream symbol02_node {
server 127.0.0.1:7910;
}
upstream dhealth02_node {
server 127.0.0.1:7950;
}
server {
listen 7900;
proxy_pass $domain;
proxy_next_upstream on;
ssl_preread on;
}
}
Symbol-bootstrap
そのままだと、互いのコンテナ消し合ってしまうので、プロジェクト名を付けます。
targetディレクトリが出来る階層に.env
ファイルを作成します。
名前は分かれば何でも良いです。
COMPOSE_PROJECT_NAME=symbol-bootstrap
次にカスタムプリセットを設定しましょう。
Symbolは基本的にポートの変更程度に抑えてます。
maxChainBytesPerSyncAttempt: 10MB
messageSynchronizationMaxResponseSize: 5MB
blockDisruptorMaxMemorySize: 1000MB
nodes:
-
host: symbol02.harvestasya.com
friendlyName: _symbol_HarvestasyaNode02/.
voting: false
openPort: 7910
brokerOpenPort: 7912
gateways:
-
openPort: 3010
あとはいつも通りに設定ファイルとcomposeの作成して起動。
symbol-bootstrap config -p mainnet -a dual -c my-preset.yml --upgrade
symbol-bootstrap compose --upgrade
symbol-bootstrap run -d
YourDLT
dHealth側も同じように.env
ファイルを作成します。
COMPOSE_PROJECT_NAME=dHealth-network
カスタムプリセット。
こちらはポートとコンテナ名やらipやらを変更します。
maxChainBytesPerSyncAttempt: 10MB
messageSynchronizationMaxResponseSize: 5MB
blockDisruptorMaxMemorySize: 1000MB
nodes:
-
host: dhealth02.harvestasya.com
friendlyName: _dHealth_HarvestasyaNode02/.
voting: false
brokerName: dhealth-broker
databaseHost: dhealth-db
openPort: 7950
brokerOpenPort: 7952
trustedHosts: '127.0.0.1, 172.20.50.25'
localNetworks: '127.0.0.1, 172.20.50.25'
databases:
-
name: dhealth-db
gateways:
-
name: dhealth-rest-gateway
databaseHost: dhealth-db
apiNodeBrokerHost: dhealth-broker
openPort: 3050
ipv4_address: 172.20.50.25
subnet: 172.20.50.0/24
こちらも同じように設定とcomposeを作成して起動。
yourdlt config -p dhealth -a dual -c my-preset.yml --upgrade
yourdlt compose --upgrade
yourdlt run -d
これで起動するはず。
runでエラーが出るようになったら
以下のコマンドで不要なもの消したら動くようになるかもしれません。。。
docker system prune
docker network prune
コメントを残す