この記事では、kod Kedao クラウド ネットワーク ディスク プロジェクトをデプロイする方法を紹介します。まず、Alibaba Cloud を使用して、7 つの負荷レイヤー、2 つの Web サーバー、https 証明書を含む小規模なアーキテクチャを構築し、次に kod ネットワーク ディスクを構築します。ウェブ。
導入プロセス
1.Web01購入作成
まず、ECS を購入し、購入内容をカスタマイズします。ここでは、より安価な従量課金制の North China 6 Ulanqab (ランダムな可用性ゾーン 1cpu1g) を選択します。
イメージとして CentOS を選択し、バージョンとして 7.9 を選択し、システム ディスク タイプとして High Efficiency Cloud Disk を選択します。これは安価な 20G です。企業の場合は、ニーズに基づいて選択する必要があります。選択後、次のステップに進むことができます. アカウントは 100 元以上でなければならないことに注意してください。
ロード バランシングがあり、ロード バランシングにはパブリック ネットワーク経由でアクセスできるため、パブリック IP をパブリック ネットワークに割り当てないことを選択してください。以下で開いているすべてのプロトコル ポートを確認して、次の手順に進むことができます。
パスワードにはカスタム パスワードを選択し、インスタンス名とホスト名が一致していることを確認し、web01 を入力して次のステップに進みます。
タグを追加したり、セキュリティ グループを選択したりすることができますが、これを行う必要はなく、次のステップに進んで順序を確認するだけです。
利用規約を確認し、「インスタンスの作成」をクリックします。
作成が成功したことを示すメッセージが表示されます。管理コンソールをクリックして、作成されたインスタンスを確認します。
2. web01にディスクを追加します
ECS クラウド ディスクの管理コンソールをクリックし、クラウド ディスクを作成して ECS インスタンスにマウントし、web01 と同じリージョンの Ulanqab を選択し、web01 インスタンスを選択して、従量課金制のクラウド ディスク支払いを選択します。も高効率クラウドディスクです。 以上、40G、注文を確認してください。
下にスクロールして [インスタンスでリリース] を選択し、サービス契約を確認して名前を変更し、 [注文の確認] をクリックして作成を確認します。しばらくすると、クラウド ディスクが作成されたことを示すメッセージが表示されます。
作成後、管理コンソールのクラウドディスク一覧に表示されます。
Alibaba Cloud を通じてサーバーを管理するには、インスタンス コンソールをクリックし、右側の [リモート接続] をクリックします。
デフォルトの方法を使用してすぐにログインしてください。
パスワードを入力してログインした後、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 に拡張します
クラウド ディスク管理コンソールで、[拡張] を選択します。
すでに知られておりバックアップされているため、引き続き拡張します。100G に入り、オンライン拡張を選択します。
次のステップ
コンソールには拡張が表示されますが、実際の拡張はありません。
サーバーにリモートで接続し、手動でマウントをキャンセルし、ファイル システムを作成してから再マウントします。
[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 にバインドします
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 サイトで、[今すぐダウンロード] ボタンを見つけて右クリックし、リンク アドレスをコピーします
[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 を入力します。
9. kodネットワークディスクをインストールしてアクセスします
次のステップ
データベースをインストールしていないため、PHP に付属のデータベースを選択できます。
アカウントのパスワードを入力し、確認してインストールを完了します。
普通にログインする
テストアップロード、問題なし、プロジェクトは正常に実行されます
10. スナップショット回復サービスのテスト
サーバー削除コードディレクトリ
[root@web01 nginx]# rm -rf /code
ブラウザでURLにアクセスしましたが、アクセスできないことがわかりました。
インスタンスを停止する
スナップショットを復元する
nginxとphpが起動時に自動的に起動するように設定しているので、スナップショットが復元されると業務も自動的に復元されます。
スナップショットが正常に復元された後、再度アクセスするとブラウザが正常に表示されます。
11. スナップショットに基づくミラーリング
カスタム イメージを作成するためのスナップショット コンソール
確認する
作成が完了したら、イメージリストでそれを表示し、「インスタンスの作成」をクリックします。
12. イメージに基づいて web02 サーバーを作成します
web01 と同じアベイラビリティーゾーンを選択します
パブリックIPを割り当てる必要はありません
注文を確認し、署名して注文します
13. web01 の Elastic Public IP のバインドを解除します
コンソールの例、Elastic IP のバインドを解除する
14. 従来の SLB ロードを購入し、Elastic Public IP をバインドします
従来の負荷分散の場合、リージョンが Web リージョンと一致していることに注意してください。
図で構成されているように、負荷分散にバインドできる Elastic IP があるため、プライベート ネットワークを選択します。
即購入
今すぐ開いて、署名して注文してください。
Elastic IP をバインドする
15. ペイロード証明書を構成し、バックエンド WEB に転送します。
証明書を申請する
関連情報を入力したら、審査のために送信します
インスタンスコンソール、モニタリング構成ウィザード
ポート443を追加
証明書を追加して作成します。申請したばかりです。間違ったものを選択しないように注意してください。ここでは別のドメイン名を選択したので、画像はこれ以上変更しません。
サーバーの追加、ポートの追加
次のステップ、次のステップ、提出するだけです
ポート 80 を構成し、443 でリッスンします。次のステップでは、ポート 80 を送信します。
web01 に転送するには 5555 を、web02 に転送するには 6666 をそれぞれ追加します。
次のステップ、次のステップ、送信、ポート 6666 が web02 のポート 22 に転送されるように構成します
次のステップ、次のステップ、送信
17. 異常なブラウザアクセス、Webサーバー設定ファイルの変更
Web サーバー上の PHP が https プロトコルを認識しないため、Web 上の構成ファイルを変更する必要があるため、ブラウザー アクセスがグルグル回転し続けます。
[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
ブラウザでアクセスし、通常の状態に戻れば完了です。
私の名前はKotenです。運用保守の経験は10年あります。運用保守のヒントを共有し続けています。読んで注目していただき、ありがとうございます!