[運用とメンテナンスの高度な知識] Alibaba Cloud を使用して、kod Kedao クラウド ネットワーク ディスク プロジェクトをデプロイします (HTTPS 証明書 + 負荷分散 + 2 つの Web)

この記事では、kod Kedao クラウド ネットワーク ディスク プロジェクトをデプロイする方法を紹介します。まず、Alibaba Cloud を使用して、7 つの負荷レイヤー、2 つの Web サーバー、https 証明書を含む小規模なアーキテクチャを構築し、次に kod ネットワーク ディスクを構築します。ウェブ。

導入プロセス

1.Web01購入作成

まず、ECS を購入し、購入内容をカスタマイズします。ここでは、より安価な従量課金制の North China 6 Ulanqab (ランダムな可用性ゾーン 1cpu1g) を選択します。

7fc86e1576c24b84939922cb748d436b.png

イメージとして CentOS を選択し、バージョンとして 7.9 を選択し、システム ディスク タイプとして High Efficiency Cloud Disk を選択します。これは安価な 20G です。企業の場合は、ニーズに基づいて選択する必要があります。選択後、次のステップに進むことができます. アカウントは 100 元以上でなければならないことに注意してください。

ec0d68e391cc4e0ea0fc92550a65e29d.png

ロード バランシングがあり、ロード バランシングにはパブリック ネットワーク経由でアクセスできるため、パブリック IP をパブリック ネットワークに割り当てないことを選択してください。以下で開いているすべてのプロトコル ポートを確認して、次の手順に進むことができます。

52dc468efb9442398251e81194e8c237.png パスワードにはカスタム パスワードを選択し、インスタンス名とホスト名が一致していることを確認し、web01 を入力して次のステップに進みます。

a48d669fa16f4682b980fd605b8af7b3.png

 タグを追加したり、セキュリティ グループを選択したりすることができますが、これを行う必要はなく、次のステップに進んで順序を確認するだけです。

a1b253b61a194220bede0537f175d30f.png利用規約を確認し、「インスタンスの作成」をクリックします。2de9a7b0a0814de5825fb9cee1f0819e.png

作成が成功したことを示すメッセージが表示されます。管理コンソールをクリックして、作成されたインスタンスを確認します。

2. web01にディスクを追加します

ECS クラウド ディスクの管理コンソールをクリックし、クラウド ディスクを作成して ECS インスタンスにマウントし、web01 と同じリージョンの Ulanqab を選択し、web01 インスタンスを選択して、従量課金制のクラウド ディスク支払いを選択します。も高効率クラウドディスクです。 以上、40G、注文を確認してください。 

e9491a4f894f4a09adc9614557b9a1b6.png下にスクロールして [インスタンスでリリース] を選択し、サービス契約を確認して名前を変更し、 [注文の確認] をクリックして作成を確認します。しばらくすると、クラウド ディスクが作成されたことを示すメッセージが表示されます。 

a4446b6014974aac8e2acd3db68bddf4.png作成後、管理コンソールのクラウドディスク一覧に表示されます。

687241aa5fcc49389f1a3a63a6f14ac0.png Alibaba Cloud を通じてサーバーを管理するには、インスタンス コンソールをクリックし、右側の [リモート接続] をクリックします。

965d863e4cfb4148b1a9b89933b284ad.png

デフォルトの方法を使用してすぐにログインしてください。 

f057b79af28647c69e20ab748a9b072a.png

パスワードを入力してログインした後、df -h を使用してマウント情報を確認できます。見つからなくてもパニックにならないでください。実際、この情報はすでに web01 にあるため、手動でマウントできます。

[root@web01 ~]# yum -y install ntfsprogs
[root@web01 ~]# mkfs.ext4 /dev/vdb
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   
[root@web01 ~]# mount /dev/vdb /mnt
[root@web01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        461M     0  461M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M  488K  471M   1% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/vda1        20G  2.3G   17G  13% /
tmpfs            95M     0   95M   0% /run/user/0
/dev/vdb         40G   49M   38G   1% /mnt

3. データディスクを 100G に拡張します

クラウド ディスク管理コンソールで、[拡張] を選択します。 

39d5cc3aa64647c48a0164303f6f8d50.pngすでに知られておりバックアップされているため、引き続き拡張します。100G に入り、オンライン拡張を選択します。

 

b7c87ae84e474cb7ace1134a9c4589e4.png

次のステップ 

fe00e3cbd049486f8ff475f0297baae4.png  コンソールには拡張が表示されますが、実際の拡張はありません。

7036d37bf7f144b7b8256bdc9fee04cb.png サーバーにリモートで接続し、手動でマウントをキャンセルし、ファイル システムを作成してから再マウントします。

[root@web01 ~]# umount /mnt
[root@web01 ~]# mkfs.ext4 /dev/vdb
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2174746624
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

[root@web01 ~]# mount /dev/vdb/ /mnt
[root@web01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        461M     0  461M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M  560K  471M   1% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/vda1        20G  2.4G   17G  13% /
tmpfs            95M     0   95M   0% /run/user/0
/dev/vdb         99G   61M   94G   1% /mnt
[root@web01 ~]# 

 4. web01にnginxをインストールする

[root@web01 ~]# yum -y install nginx

#删除nginx中的这部分内容,我们自己在conf.d中创建
    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

[root@web01 nginx]# cat /etc/nginx/conf.d/kod.conf 
server {
        listen 80;
        server_name kod.koten.vip;
	location / {
                root /code/kod;
                index index.php index.html index.htm;
	}
        location ~\.php$ {
                root /code/kod;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;    #需要加这个,不然白屏
	}        
}    
[root@web01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

php、圧縮パッケージのアップロードが含まれるため、xshell を使用して接続する必要があります。最初に Elastic Public IP を web01 に構成し、後でロード バランサーへのバインドを解除します。

5. Elastic IP を web01 にバインドします

72a308fc091c45909d974fc2a581ef4c.pnga5ad4c5068c6426d9a79efc7e81bbaf1.png

f19f0558089b4a778aa1739f9fb25727.png

d223644831d149f8868b9f0e0c48f336.png

0a0dedd57d464695aab57f76cfe5923f.png

1240a4a34bf1416693a68003dc9ddea5.png

 6. web01 インストール php

[root@web01 ~]# yum -y install lrzsz
[root@web01 ~]# rz -E

[root@web01 ~]# tar xf php71.tar.gz 
[root@web01 ~]# yum -y localinstall *.rpm
[root@web01 ~]# systemctl start php-fpm.service
[root@web01 ~]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

[root@web01 ~]# cat /etc/php-fpm.d/www.conf    #统一用户
user = nginx
group = nginx

 7.kodプロジェクトをデプロイする

Kedaoyun 公式 Web サイトで、[今すぐダウンロード] ボタンを見つけて右クリックし、リンク アドレスをコピーします 

6c87bb7569a94ae5ae1edee9f13e7540.png

[root@web01 ~]# wget https://static.kodcloud.com/update/download/kodbox.1.38.zip
[root@web01 ~]# yum -y install unzip
[root@web01 ~]# mkdir -p /code/kod
[root@web01 ~]# unzip kodbox.1.38.zip -d /code/kod
[root@web01 ~]# chown -R nginx.nginx /code/kod/

8. ドメイン名解決のパブリックネットワークIP

事前にドメイン名を登録しておく必要があるので、Cloud Resolution DNS に入り、以下の操作を行い、レコードの値に先ほど作成した Elastic IP を入力します。 

651cfa243ae840eabc32e8a4bd36c7f7.png

9. kodネットワークディスクをインストールしてアクセスします

次のステップ 

73af650ffa97453bb448b767f1c04e7a.png

データベースをインストールしていないため、PHP に付属のデータベースを選択できます。

a2242aea7c4f4ef3887fc74e8072fb43.png

アカウントのパスワードを入力し、確認してインストールを完了します。 

a9661d1b08274446885352952889e106.png

普通にログインする

f6aaf6382c4941baac5666146125a101.pngテストアップロード、問題なし、プロジェクトは正常に実行されます 

5a7b4d25eb2049229c661c9da14cacbd.png

10. スナップショット回復サービスのテスト

9598b99629994de6907b6b423c0d4dd1.png

d55813fb7396461e98​​215aaaafa09db4.png 4d2c3640c52c4a36926c3feca24f057f.png

180300e2f6d742d889f0d58d1d169a5b.png

サーバー削除コードディレクトリ

[root@web01 nginx]# rm -rf /code

 ブラウザでURLにアクセスしましたが、アクセスできないことがわかりました。43cfbd83f7e34ff08c9fdad4400c34e4.png

インスタンスを停止する 

 c664777c1ed54e23b10db50ad2f64396.png

77403d2cac234f72b32dd9829cffd331.png

スナップショットを復元する 

1d28c66095c64638b85c329851c6729d.png

d82203fc766344d580eda64107202b7c.png

nginxとphpが起動時に自動的に起動するように設定しているので、スナップショットが復元されると業務も自動的に復元されます。 

スナップショットが正常に復元された後、再度アクセスするとブラウザが正常に表示されます。

7d9f82d7ef8e42629cb040156095ad6d.png

11. スナップショットに基づくミラーリング

カスタム イメージを作成するためのスナップショット コンソール

ed0d1f4458cf4c4fbb7afc0755a31f59.png
92fb4643fc1547ea9b9509ed55391221.png

確認する 

f32c8f02ddc94115a5901e749e8fa6e2.png

作成が完了したら、イメージリストでそれを表示し、「インスタンスの作成」をクリックします。

f3a129dfe895499493adde1427397eda.png

12. イメージに基づいて web02 サーバーを作成します

web01 と同じアベイラビリティーゾーンを選択します

bdd22287a9884feaa433468cd9bcc59a.png

1d80348f268f4661b16aae34ba7a044d.png

パブリックIPを割り当てる必要はありません

f40942186e4d44b88ceeaac03d3cecba.png

9f640e1c2d2e4abf98f2e66ed7b028d0.png

 8fd01b37da594ea891ea7f954004c2c0.png

注文を確認し、署名して注文します49627b61c9a94a459de870c6b2001887.png

13. web01 の Elastic Public IP のバインドを解除します

コンソールの例、Elastic IP のバインドを解除する

b51c31affc9d446e872447df94e830a3.png14. 従来の SLB ロードを購入し、Elastic Public IP をバインドします

従来の負荷分散の場合、リージョンが Web リージョンと一致していることに注意してください。 

0feedd4c23e2467c949dae80745cad3e.png

図で構成されているように、負荷分散にバインドできる Elastic IP があるため、プライベート ネットワークを選択します。

3a37c88492b744a8a6a3d8cf0f3fc963.png

066609b77e4c4d528c5703ba0bd36c10.png

 即購入1182b98d485a4d14898a4672bd19ee95.png

今すぐ開いて、署名して注文してください。 

f48070fb38dc40c3a96b9d1e2c394ff1.png

Elastic IP をバインドする 

ecd1aad16a714e7b9e60d6f7bf8b00a5.png

d8500b0455cc4543bdb4537d3627204b.png

15. ペイロード証明書を構成し、バックエンド WEB に転送します。

証明書を申請する

d027a30a847b45c9b90a28353979ab95.png

関連情報を入力したら、審査のために送信しますfe61f53052b343e1aa709c6a14e1411f.png5e1202c130174976b7b82e67c3152155.png

インスタンスコンソール、モニタリング構成ウィザード 

d61dd14fcd764463a20537646d6b79fd.png

ポート443を追加 7990fb7c027e4124a18a69d917a9ea55.png

 証明書を追加して作成します。申請したばかりです。間違ったものを選択しないように注意してください。ここでは別のドメイン名を選択したので、画像はこれ以上変更しません。

2af341dc74da4efd92d8b303a0cb8​​159.png

サーバーの追加、ポートの追加 

bf8370df920049e3b0ee9e1160b2fafb.png

次のステップ、次のステップ、提出するだけです

ポート 80 を構成し、443 でリッスンします。次のステップでは、ポート 80 を送信します。

5ee41d03d3a242778e19b599fe9375fe.png

web01 に転送するには 5555 を、web02 に転送するには 6666 をそれぞれ追加します。 

f971890eb8814124ab14e37eb11096fb.png

16ac1d07ff6b44618d833309c6441d8c.png

11f91ae290ac4ddfacc8f6a20b151f25.png

 次のステップ、次のステップ、送信、ポート 6666 が web02 のポート 22 に転送されるように構成します

9bf7b0cde2e645109bb2c4217350adc3.png

db87dc1fe6d742f9ae137ea0323e5d7e.png3df9b2f33a9145439ca8d9bd7dc1bf0e.png

次のステップ、次のステップ、送信 

17. 異常なブラウザアクセス、Webサーバー設定ファイルの変更

Web サーバー上の PHP が https プロトコルを認識しないため、Web 上の構成ファイルを変更する必要があるため、ブラウザー アクセスがグルグル回転し続けます。

d7d1989dbeaf48808229dc4df73d010b.png

 

 

[c:\~]$ ssh 8.130.97.32 5555


Connecting to 8.130.97.32:5555...
Connection established.
To escape to local shell, press Ctrl+Alt+].

Last login: Sun Apr 23 20:18:34 2023 from 123.112.17.24

Welcome to Alibaba Cloud Elastic Compute Service !

[root@web01 ~]# cat /etc/nginx/conf.d/kod.conf
server {
        listen 80;
        server_name kod.koten.vip;
	location / {
                root /code/kod;
                index index.php index.html index.htm;
	}
        location ~\.php$ {
                root /code/kod;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
		fastcgi_param HTTPS on;
	}
}
[root@web01 ~]# systemctl restart nginx


[c:\~]$ ssh 8.130.97.32 6666


Connecting to 8.130.97.32:6666...
Connection established.
To escape to local shell, press Ctrl+Alt+].

Last login: Sun Apr 23 18:23:09 2023 from 123.112.17.24

Welcome to Alibaba Cloud Elastic Compute Service !

[root@web02 ~]# cat /etc/nginx/conf.d/kod.conf
server {
        listen 80;
        server_name kod.koten.vip;
	location / {
                root /code/kod;
                index index.php index.html index.htm;
	}
        location ~\.php$ {
                root /code/kod;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
		fastcgi_param HTTPS on;
	}
}
[root@web02 ~]# systemctl restart nginx

ブラウザでアクセスし、通常の状態に戻れば完了です。a1cbb9c6644342898475610cd5a117c8.png


私の名前はKotenです。運用保守の経験は10年あります。運用保守のヒントを共有し続けています。読んで注目していただき、ありがとうございます! 

 

おすすめ

転載: blog.csdn.net/qq_37510195/article/details/130324416