【ECS】Alibaba Cloud ECSのインストールと各種環境構築

目次

ECS クラウドサーバーの初心者向け

1. ECS インスタンス リソースを作成する

2. ECS 管理コンソールに入るための RAM ユーザー ログイン (サブユーザーとサブユーザー パスワード)

3. インスタンスを表示し、リージョンを選択して ECS インスタンス リソースを見つけ、ID をクリックしてインスタンスの管理インターフェイスに入ります。

4. リモート接続: ssh [email protected]

Linuxクラウドサーバーを素早く設定

ecs.s6-c1m1.small (1 vCPU、1GiB) のインスタンス仕様を例として、 Alibaba Cloud Linux 2.1903 LTS 64 ビットシステムの ECS インスタンスを作成します。インスタンスが不要になった場合は、解放できます。リリース後、インスタンスは課金を停止し、データを復元できなくなります。

料金請求書の表示: ECS 管理コンソールのトップ メニュー バー、料金、ユーザー センター、請求書の詳細、詳細な請求書

基本構成:

構成アイテム 説明する
支払いモデル 使った分だけ 従量課金制モデルは比較的柔軟に動作します。詳細については、「請求の概要」を参照してください。注: Web サイトのドメイン名を申請する必要がある場合は、[サブスクリプション] を選択する必要があります。
リージョンとアベイラビリティゾーン リージョン: 中国東部 1 (杭州) アベイラビリティゾーン: ランダム割り当て インスタンスの作成後は、リージョンとアベイラビリティーゾーンを直接変更することはできません。慎重に選択してください。
インスタンスの仕様 タイプファミリー: 共有標準 s6 インスタンスタイプ: ecs.s6-c1m1.small ECS インスタンスを購入できるリージョンに移動して、各リージョンでのインスタンスの可用性を確認できます。
鏡像 タイプ: パブリック イメージ バージョン: Alibaba Cloud Linux 2.1903 LTS 64 ビット インスタンスが起動すると、システム ディスクにミラーリングされたオペレーティング システムとアプリケーション データが完全にコピーされます。

ネットワークとセキュリティグループ:

構成アイテム 説明する
独自のネットワーク デフォルトの VPC 初めてデフォルトの VPC を使用することをお勧めします。VPC を作成する場合は、「下のコンソールに移動して作成します」をクリックします。
スイッチ デフォルトのスイッチ 初めて使用する場合は、デフォルトのスイッチを使用することをお勧めします。スイッチを作成する場合は、「下のコンソール作成に進む」をクリックします。
パブリックネットワークのIPv4アドレスを割り当てる 「パブリックIPv4アドレスの割り当て」を選択します。 選択すると、パブリック ネットワークの IPv4 アドレスが自動的に割り当てられます。
帯域幅課金モード 利用トラフィック別 トラフィックモードに応じて、消費したパブリック ネットワーク トラフィックの料金のみを支払う必要があります。詳細については、「パブリック ネットワーク帯域幅の請求」を参照してください。
帯域幅のピーク 5Mbps なし。
セキュリティグループ デフォルトのセキュリティグループ

システム構成

構成アイテム 説明する
ログイン認証情報 カスタムパスワード このチュートリアルでは、カスタム パスワードを選択し、リモート接続および ECS インスタンスへのログイン用のパスワードを手動で設定します。
ログインパスワード Ecs123456 ログイン認証情報にカスタム パスワードを選択する場合は、このオプションを設定してパスワードを確認する必要があります。ECS インスタンスに接続するときは、ユーザー名 root とここで設定したパスワードを入力する必要があります。
インスタンス名 Ecsクイックスタート

グループ設定はデフォルトのままです

VNC にリモート接続する

作成が成功したら、VNCにリモート接続します。インスタンス リストページでインスタンス リソースを見つけ、右側の操作列の下にある[リモート接続]をクリックします。

1. [VNC パスワードの入力] ダイアログ ボックスで、[VNC パスワードのリセット]をクリックします。

2. ECS インスタンスにリモートで接続し、 ECS インスタンスのユーザー名パスワードを入力します。

Apache サービスを構成する

  1. 次のコマンドを実行して、Apache サービスをインストールします。
yum install -y httpd
  1. 次のコマンドを実行して、Apache サービスを開始します。
systemctl start httpd
  1. 以下のコマンドを実行して、起動時にApacheサービスが自動起動するように設定します。
systemctl enable httpd
  1. 次のコマンドを実行して、Apache サービスが実行されているかどうかを確認します。
systemctl status httpd
#回应是active(running)
  1. 現在のブラウザ ページで新しい Web ページを開き、アドレス バーにインスタンスのElastic IP アドレスを入力して、Enter キーを押します。
http://<实例公网IP地址>
#出现Hello Apache

Webサイトのドメイン名を解決する

インスタンスのパブリック IP アドレスを介して Apache サービスに直接アクセスすると、サーバーのセキュリティが低下します。すでにドメイン名をお持ちの場合、または Apache Web サイトのドメイン名を登録したい場合は、以下の手順を参照してください。

1. ドメイン名を登録します。詳細については、「汎用ドメイン名の登録」を参照してください。

2. ドメイン名が指す Web サイトが中国本土の Alibaba Cloud のノード サーバーでホストされている場合は、ドメイン名を登録する必要があります。

初めての出願については最初の出願プロセスを参照し、その他の場合については ICP 出願プロセスの概要を参照してください。

3. ドメイン名を解決し、そのドメイン名がインスタンスのパブリック IP を指すようにします。

ドメイン名の解決は、ドメイン名を使用して Web サイトにアクセスするために不可欠な部分です。具体的な操作手順については、「ドメイン名解決の設定」を参照してください。

4. 解決されたドメイン名を使用して、Apache サービスにアクセスします (例: https://ecs-quickstarts.info)。

LNMP環境を素早く構築(Linux+Nginx+MySQL+PHP)

CentOS 7.7 ベース

MySQL 5.7.41 をインストールして構成する

1. 次のコマンドを実行して、公式 MySQL Yum リポジトリをダウンロードしてインストールします。

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server --nogpgcheck

2. 次のコマンドを実行して、MySQL データベースを起動します。

systemctl start mysqld.service

3. 以下のコマンドを実行して、MySQL の実行状況を確認します。

systemctl status mysqld.service

4. 次のコマンドを実行して、MySQL の初期パスワードを表示します。

grep "password" /var/log/mysqld.log

5. 以下のコマンドを実行してデータベースにログインします。

mysql -uroot -p

6. 次のコマンドを実行して、デフォルトの MySQL パスワードを変更します。

set global validate_password_policy=0;  #修改密码安全策略为低(只校验密码长度,至少8位)。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';

7. 次のコマンドを実行して、root ユーザーにリモート管理権限を付与します。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';

8. 「exit」と入力してデータベースを終了します。

データベース最適化の事例

その他の関連する MySQL インデックス:

インデックスを作成せずに SQL 実行プランを確認すると、key と key_len の値が両方とも null であることがわかります。

explain select * from test_tb where name='abc';

test_tb テーブルのテーブル構造を表示する

show create table test_tb;

test_tb テーブルのインデックスを作成し、もう一度 test_tb テーブルのテーブル構造を確認すると、テーブル構造にもう 1 つあることがわかります。KEY `name` (`name`)

alter table test_tb add index(name);

データベースの実行中のSQLを確認する

select * from `information_schema`.`PROCESSLIST`

Nginx 1.17.10をインストールする

1. Nginx の実行に必要なプラグインをインストールします。

  • gccをインストールします。gcc は Linux 上のコンパイラで、C、C++、Ada、Object C、Java などの言語をコンパイルできます。
yum -y install gcc
  • pcreをインストールします。pcre は Perl ライブラリであり、Nginx の HTTP モジュールは pcre を使用して正規表現を解析します。
yum install -y pcre pcre-devel
  • zlibをインストールします。zlib はファイルの圧縮と解凍用のライブラリで、Nginx は zlib を使用して HTTP パケットの gzip 圧縮と解凍を実行します。
yum install -y zlib zlib-devel

2. Nginx インストール パッケージをダウンロードします。

wget http://nginx.org/download/nginx-1.17.10.tar.gz

3. Nginx インストール パッケージを解凍します。

tar -zxvf nginx-1.17.10.tar.gz

4. Nginx をコンパイルしてインストールします。

cd nginx-1.17.10
./configure
make && make install

5. Nginxを起動します。

cd /usr/local/nginx/
sbin/nginx

6. Nginx の起動をテストします。ブラウザのアドレスバーにECSサーバーのパブリックネットワークアドレスxx.xx.xx.xxを入力し、以下の画面が表示されればインストールは正常に開始されます。

PHP5.4.16をインストールする

1. PHPをインストールします。

yum -y install php php-mysql php-fpm

2. nginx.conf ファイルに PHP のサポートを追加します。

vim /usr/local/nginx/conf/nginx.conf

Vim エディターに入ったら、i キーを押して編集モードに入り、サーバーのルートルーティング構成にindex.php を追加します。

location / {
      root   html;
      index  index.html index.htm index.php;
}

そして、ルートルートの下に次の設定を追加します。サーバー内{in}

if (!-e $request_filename) {
     rewrite ^/(.*)$ /index.php/$1 last;
}

location ~ .*\.php(\/.*)*$ {
     fastcgi_pass   127.0.0.1:9000;
     include       fastcgi.conf;
     fastcgi_index  index.php;
}

ESC キーを押し、「wq」と入力して保存し、Vim エディターを終了します。

3. php-fpm サービスを再起動します。

systemctl restart php-fpm

4. Nginx サービスを再起動します。

/usr/local/nginx/sbin/nginx -s reload

5. PHP のインストールを確認します。

a. Nginx Web サイトのルート ディレクトリに PHP プローブ ファイル phpinfo.php を作成します。

echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/phpinfo.php

b. PHP プローブ ページにアクセスします。ブラウザのアドレス バーに xx.xx.xx.xx/phpinfo.php と入力します (xx.xx.xx.xx を ECS サーバーのパブリック ネットワーク アドレスに置き換えてください)。次のページが表示され、PHP が環境設定は成功しました。

LAMP環境を素早く構築(Linux+Apache+MySQL+PHP)

CentOS 7.7 ベース

Apache サービスを構成する

  1. 次のコマンドを実行して、Apache サービスとその拡張パッケージをインストールします。
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql
  1. 次のコマンドを実行して、Apache サービスを開始します。
systemctl start httpd.service
  1. 現在のブラウザ ページで新しい Web ページを開き、アドレス バーにインスタンスのElastic IP アドレスを入力して、Enter キーを押します。
http://<实例公网IP地址>

MySQL 5.7.41 をインストールして構成する

1. 次のコマンドを実行して、公式 MySQL Yum リポジトリをダウンロードしてインストールします。

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server --nogpgcheck

2. 次のコマンドを実行して、MySQL データベースを起動します。

systemctl start mysqld.service

3. 以下のコマンドを実行して、MySQL の実行状況を確認します。

systemctl status mysqld.service

4. 次のコマンドを実行して、MySQL の初期パスワードを表示します。

grep "password" /var/log/mysqld.log

5. 以下のコマンドを実行してデータベースにログインします。

mysql -uroot -p

6. 次のコマンドを実行して、デフォルトの MySQL パスワードを変更します。

set global validate_password_policy=0;  #修改密码安全策略为低(只校验密码长度,至少8位)。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';

7. 次のコマンドを実行して、root ユーザーにリモート管理権限を付与します。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';

8. 次のコマンドを実行して、MySQL のバージョン番号を表示します。

mysql -V

PHP5.4.16をインストールする

PHP (PHP: Hypertext Preprocessor recursive の略語) 中国語名は「ハイパーテキスト プリプロセッサ」で、広く使用されている汎用のオープン ソース スクリプト言語で、Web サイトの開発に適しており、HTML に埋め込むことができます。プログラミング パラダイムは、オブジェクト指向の命令型プログラミングです。

1. PHP環境をインストールします。

yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

2. 以下のコマンドを実行して、PHP テストページを作成します。

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

3. 以下のコマンドを実行して、Apache サービスを再起動します。

systemctl restart httpd

4. ローカル ブラウザのアドレス バーで http://<ECS パブリック ネットワーク IP>/phpinfo.php にアクセスすると、次のページが表示され、PHP 言語環境が正常にインストールされたことが示されます。

phpMyAdmin 4.0.10.20をインストールする

phpMyAdmin は MySQL データベース管理ツールであり、Web インターフェイスを通じてデータベースを便利かつ迅速に管理できます。

1. 以下のコマンドを実行して、phpMyAdminデータ格納ディレクトリを作成します。

mkdir -p /var/www/html/phpmyadmin

2. 次のコマンドを実行して、phpMyAdmin 圧縮パッケージをダウンロードします。

wget --no-check-certificate https://labfileapp.oss-cn-hangzhou.aliyuncs.com/phpMyAdmin-4.0.10.20-all-languages.zip

3. 次のコマンドを実行して、phpMyAdmin 圧縮パッケージを解凍してインストールします。

yum install -y unzip
unzip phpMyAdmin-4.0.10.20-all-languages.zip

4. 以下のコマンドを実行して、phpMyAdminファイルをデータ格納ディレクトリにコピーします。

mv phpMyAdmin-4.0.10.20-all-languages/*  /var/www/html/phpmyadmin

5. ローカル ブラウザのアドレス バーに「http://インスタンス パブリック ネットワーク IP/phpmyadmin」と入力して、phpMyAdmin にアクセスします。

戻るページに phpMyAdmin ログイン ページが表示され、phpMyAdmin が正常にインストールされたことが示されます。

6. phpMyAdmin ログインページで、MySQL ユーザー名とパスワードを順に入力し、[実行]をクリックします。

クラウドネイティブの PolarDB を使用し、LAMP を使用してポータルを構築する

PolarDB データベース アカウントを作成する

Alibaba Cloud コンソール ページで、[製品とサービス] > [ApsaraDB for PolarDB]をクリックして、ApsaraDB for PolarDB 管理コンソールに入ります。クラスター リストページの上部にあるメニュー バーで、リソース リージョンを切り替え、PolarDBインスタンスを見つけて、インスタンス IDデータベースアカウントを作成し、データベースを作成します。

データベースのホワイトリストを設定します。データベースに接続するには、データベースのホワイトリストを設定する必要があります。左側のナビゲーション バーで、[構成と管理] > [クラスター ホワイトリスト]を選択します。クラスターのホワイトリストページのIP リスト領域で[構成]をクリックします。デフォルトのホワイトリスト アドレス 127.0.0.1 を 0.0.0.0/0 に変更し、[OK]をクリックしてホワイトリスト アドレスを有効にします。

LAMP環境をインストールする

Apache サービスとその拡張機能をインストールする

yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql

PbootCMS は PHP 言語を使用して開発された CMS システムであり、PHP 環境にインストールする必要があります。

次のコマンドを実行してPHPをインストールします

yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

次のコマンドを実行して、MySQL をダウンロードしてインストールします。

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server

MySQLデータベースを起動する

systemctl start mysqld

PbootCMS を使用してポータル Web サイトを構築する

Git をインストールする

yum -y install git

PbootCMS ソース コード ファイルをダウンロードし、PHP の下位バージョンと互換性のあるバージョンにフォールバックします。PbootCMS は、新しいカーネルのセットであり、永続的なオープン ソースで無料の PHP エンタープライズ Web サイト開発および構築管理システムです。システムはデフォルトで sqlite light データベースを使用します。これは PHP スペースで直接使用できます。mysql や pgsql などのデータベースはオプションです。&& は、前のコマンドが正常に実行された場合にのみ次のコマンドが実行されることを示します。

cd ~ && git clone https://gitee.com/hnaoyun/PbootCMS.git && cd ~/PbootCMS/ && git checkout 43bd6e4481eb5d3516f1d33187c308b25de76af3 && cd ~

インストールパッケージをApacheのwwwrootディレクトリにコピーします。

cp -r PbootCMS/* /var/www/html/

サイトのルート ディレクトリ ファイルのアクセス許可を変更する

chmod -R a+w /var/www/html

CMS の初期データをデータベースにインポートし、データベース pbootcms のテーブル構造とデータを初期化します。

sql_file="/var/www/html/static/backup/sql/"$(ls /var/www/html/static/backup/sql/) &&
mysql -h数据库连接地址(公网地址) -uUserName -pPassWord -Dpbootcms < $sql_file

CMS システムのデータベース構成を変更する

cat > /var/www/html/config/database.php << EOF
<?php
return array(
    'database' => array(
        'type' => 'mysqli', // 数据库连接驱动类型: mysqli,sqlite,pdo_mysql,pdo_sqlite
        'host' => '数据库连接地址', // PolarDB数据库链接地址
        'user' => 'UserName', // PolarDB数据库的用户名
        'passwd' => 'PassWord', // PolarDB数据库的密码
        'port' => '3306', // 数据库端口
        'dbname' => 'pbootcms' //数据库名称
    )
);
EOF

クラウド データベース PolarDB コンソール ページの左側で、[製品とサービス] > [クラウド サーバー ECS]の順にクリックし、クラウド サーバー ECS 管理コンソールに入ってインスタンス ID を見つけます。インスタンスの詳細ページで [セキュリティ グループ]をクリックし、アクセスセキュリティ グループページルールエリアで、セキュリティ グループがアクセス用にポート 80 を開いていることを確認してください。そうでないと、確立されたポータル Web サイトにアクセスできません。

セキュリティ グループは、ステートフル インスペクションおよびデータ パケット フィルタリング機能を備えた仮想ファイアウォールであり、クラウド内のセキュリティ ドメインを分割するために使用されます。セキュリティ グループ ルールを構成することにより、セキュリティ グループ内の 1 つ以上の ECS インスタンスの受信および送信トラフィックを制御できます。

Apache サービスを再起動します

systemctl restart httpd

ブラウザのアドレス バーにhttp:///admin.phpと入力して、システムのバックグラウンドにアクセスします。デフォルトのアカウントはadmin、パスワードは123456です。

Java Web 環境を手動で展開する

Alibaba Cloud Linux 2.1903 LTS 64 ビット オペレーティング システムに基づく

コンパイル環境を準備する(ファイアウォールとSELinuxを閉じる)

このステップでは、ECS インスタンスでファイアウォールと SELinux を無効にする方法を説明します。

ファイアウォールをオフにする

  1. 次のコマンドを実行して、ファイアウォールの現在のステータスを表示します。
systemctl status firewalld

返された結果で現在のファイアウォールのステータスを確認できます。

  1. ファイアウォールをオフにします。ファイアウォールがオフになっている場合、この手順は無視できます。
  • ファイアウォールを一時的に無効にしたい場合は、次のコマンドを実行する必要があります。

注 ファイアウォールを一時的に無効にした後、Linux インスタンスが再起動すると、ファイアウォールは自動的に有効になります。

systemctl stop firewalld
  • ファイアウォールを永続的に無効にする場合は、次のコマンドを順番に実行する必要があります。注意 ファイアウォールを再起動する場合は、firewalld の公式 Web サイトを参照してください。

次のコマンドを実行してファイアウォールを無効にします。

systemctl stop firewalld

インスタンスの電源がオンのときに次のコマンドを実行して、ファイアウォール サービスを無効にします。

systemctl disable firewalld

SELinuxを閉じる

  1. 次のコマンドを実行して、SELinux の現在のステータスを表示します。
getenforce

以下の結果が返され、SELinux の現在の状態が Disabled であることがわかります。

  • SELinux ステータス パラメータが Disabled の場合、SELinux はオフです。
  • SELinux ステータス パラメーターが Enforcing の場合、SELinux は有効になります。

SELinux をオフにします。SELinux が無効になっている場合、この手順は無視できます。SELinux を一時的に無効にする場合は、次のコマンドを実行します。

setenforce 0

これは、この操作は SELinux を一時的に無効にするだけであり、次回 Linux を再起動すると SELinux が再び有効になることを意味します。

SELinux を永続的に無効にする場合は、次のコマンドを実行して SELinux 構成ファイルを開きます。

vi /etc/selinux/config

/etc/selinux/config ファイルで、カーソルを SELINUX=enforcing 行に移動し、i キーを押して編集モードに入り、SELINUX=disabled に変更してから Esc キーを押し、次に「wq」と入力して Enter を押します。 、SELinux 構成ファイルを保存して閉じます。設定を有効にするためにシステムを再起動します。

注 SELinux を再度有効にする場合、詳細については、「SELinux の有効化または無効化」を参照してください。

次のコマンドを実行して、Tomcat を実行する一般ユーザー www を作成します。

useradd www

以下のコマンドを実行してWebサイトのルートディレクトリを作成します。

mkdir -p /data/wwwroot/default		#-p 确保目录名称存在,不存在的就建一个。
  1. 次のコマンドを実行して、Web サイトのルート ディレクトリのユーザーを www に設定します。
chown -R www.www /data/wwwroot     #-R : 处理指定目录以及其子目录下的所有文件

JDK1.8をインストールする

  1. 次のコマンドを実行し、yum コマンドで JDK1.8 ソフトウェア パッケージを見つけます。
yum -y list java*
  1. 次のコマンドを実行して、リストにある JDK1.8 ソフトウェア パッケージをインストールします。
yum -y install java-1.8.0-openjdk-devel.x86_64
  1. 次のコマンドを実行してJDKのバージョンを確認します。
java -version

環境変数を構成します。

vim /etc/profile

JAVA_HOME の値は、現在の JDK インストールのパスであることに注意してください。この例では、次のコマンドを実行します

/usr/lib/jvm -name 'java-1.8.0-openjdk-1.8.0*' を見つけて、JDK のインストール後にファイル パスを確認します。

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.1.al7.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
  1. Esc キーを押し、「:wq」と入力して Enter を押し、ファイルを保存して閉じます。
  2. 次のコマンドを実行して、環境変数をすぐに有効にします。
source /etc/profile

Apache Tomcat 8.5.72 をインストールする

Tomcat 8 インストール パッケージをダウンロードします。

wget --no-check-certificate https://labfileapp.oss-cn-hangzhou.aliyuncs.com/apache-tomcat-8.5.72.tar.gz

Tomcat 8 インストール パッケージを解凍します。

tar -zxvf apache-tomcat-8.5.72.tar.gz

Tomcat が存在するディレクトリを移動します。

mv apache-tomcat-8.5.72 /usr/local/tomcat/

ファイルの所有ユーザーを www に設定します。

chown -R www.www /usr/local/tomcat/

/usr/local/tomcat/ ディレクトリ内:

  • bin: Tomcat サービスを開始およびシャットダウンするためのスクリプトを含む、Tomcat のいくつかのスクリプト ファイルを保存します。

  • conf: Tomcat サーバーのさまざまなグローバル構成ファイルを保管します。その中で最も重要なものは、server.xml と web.xml です。

  • webapps: Tomcat のメイン Web 公開ディレクトリ。デフォルトでは、Web アプリケーション ファイルはこのディレクトリに配置されます。

  • ログ: Tomcat の実行時にログ ファイルを保存します。

server.xml ファイルを構成します。/usr/local/tomcat/conf/ ディレクトリに切り替えます。

cd /usr/local/tomcat/conf/

server.xml ファイルの名前を変更します。

mv server.xml server.xml_bk

新しいserver.xmlファイルを作成します。server.xml ファイルを作成して開きます。

vi server.xml
  1. i キーを押して以下を追加します。
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8006" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
 type="org.apache.catalina.UserDatabase"
 description="User database that can be updated and saved"
 factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
 pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080"
 protocol="HTTP/1.1"
 connectionTimeout="20000"
 redirectPort="8443"
 maxThreads="1000"
 minSpareThreads="20"
 acceptCount="1000"
 maxHttpHeaderSize="65536"
 debug="0"
 disableUploadTimeout="true"
 useBodyEncodingForURI="true"
 enableLookups="false"
 URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
</Service>
</Server>

JVM メモリ パラメータを設定し、/usr/local/tomcat/bin/setenv.sh ファイルを作成して開きます。

vi /usr/local/tomcat/bin/setenv.sh

JAVA_OPTSパラメータを指定して、JVMのメモリ情報とエンコード形式を設定します。

JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'

Tomcat のセルフスタート スクリプトを設定する

Tomcat 自動起動スクリプト ファイルをダウンロードします。このスクリプトはコミュニティから提供されたものであり、参照のみを目的としています。wget コマンドを実行してダウンロードが失敗した場合は、ブラウザーからhttps://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-initにアクセスして、スクリプトのコンテンツを直接取得できます。

wget https://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
#!/bin/bash
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: tomcat-server daemon
# Description:       tomcat-server daemon
### END INIT INFO
#
# chkconfig: - 95 15
# description: Tomcat start/stop/status script

#Location of JAVA_HOME (bin files)
export JAVA_HOME=

#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH

#CATALINA_HOME is the location of the configuration files of this instance of Tomcat
CATALINA_HOME=/usr/local/tomcat

#TOMCAT_USER is the default user of tomcat
TOMCAT_USER=www

#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE="Usage: $0 {
    
    \e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"

#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT=20

tomcat_pid() {
    
    
  echo `ps -ef | grep java | grep $CATALINA_HOME/ | grep -v grep | tr -s " "|cut -d" " -f2`
}

start() {
    
    
  pid=$(tomcat_pid)
  if [ -n "$pid" ]; then
    echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
  else
    echo -e "\e[00;32mStarting tomcat\e[00m"
    if [ `user_exists $TOMCAT_USER` = "1" ]; then
      su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
    else
      $CATALINA_HOME/bin/startup.sh
    fi
    status
  fi
  return 0
}

status() {
    
    
  pid=$(tomcat_pid)
  if [ -n "$pid" ]; then
    echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
  else
    echo -e "\e[00;31mTomcat is not running\e[00m"
  fi
}

stop() {
    
    
  pid=$(tomcat_pid)
  if [ -n "$pid" ]; then
    echo -e "\e[00;31mStoping Tomcat\e[00m"
    $CATALINA_HOME/bin/shutdown.sh

    let kwait=$SHUTDOWN_WAIT
    count=0;
    until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
    do
      echo -n -e "\e[00;31mwaiting for processes to exit\e[00m\n";
      sleep 1
      let count=$count+1;
    done

    if [ $count -gt $kwait ]; then
      echo -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
      kill -9 $pid
    fi
  else
    echo -e "\e[00;31mTomcat is not running\e[00m"
  fi

  return 0
}

user_exists() {
    
    
  if id -u $1 >/dev/null 2>&1; then
    echo "1"
  else
    echo "0"
  fi
}

case $1 in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status
    ;;
  *)
    echo -e $TOMCAT_USAGE
    ;;
esac
exit 0

次のコマンドを実行して、Tomcat-init を移動し、名前を変更します。

mv Tomcat-init /etc/init.d/tomcat

次のコマンドを実行して、実行権限を /etc/init.d/tomcat に追加します。

chmod +x /etc/init.d/tomcat

起動スクリプトJAVA_HOMEを設定します。

スクリプト内の JDK パス情報は、インストールした JDK パスと一致する必要があることに注意してください。一致しない場合、Tomcat は起動に失敗します。

sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.1.al7.x86_64@' /etc/init.d/tomcat

次のコマンドを順番に実行して、起動後に Tomcat が自動的に起動するように設定します。

chkconfig --add tomcat
chkconfig tomcat on

以下のコマンドを実行してTomcatを起動します。

service tomcat start
# 多了org.apache.catalina.startup.Bootstrap进程

テストプロジェクトをデプロイして検証する

デプロイする Java Web プロジェクト ファイル War パッケージを Web サイトのルート ディレクトリにアップロードし、Web サイトのルート ディレクトリにあるファイルのユーザーを www に変更します。ファイル転送機能をサポートしたリモート接続ツールを使用したり、FTPサイトを構築してプロジェクトファイルをアップロードしたりできます。

この例では、Web サイトのルート ディレクトリは /data/wwwroot/default であるため、次のコマンドを実行して Web サイトのルート ディレクトリに Tomcat テスト ページを直接作成し、アクセスします。

以下のコマンドを実行して、新しいテストファイルを作成します。

echo Tomcat test > /data/wwwroot/default/index.jsp

ローカルブラウザのアドレスバーに http://elastic IP:8080 と入力してアクセスします。

ECSをベースにしたクラウド上でのブログ構築

CentOS 7.7 ベース

Apache サービスを構成する

次のコマンドを実行して、Apache サービスとその拡張パッケージをインストールします。

yum -y install httpd mod_ssl mod_perl mod_auth_mysql

Apache が正常にインストールされているかどうかを確認します。

httpd -v

Apache サービスを開始し、ブラウザのアドレス バーで http://ECS パブリック ネットワーク アドレスにアクセスします。

systemctl start httpd.service

MariaDB データベースをインストールする

WordPress はクラウド上にブログを構築するために使用されるため、データを保存するには MySQL データベースが必要です。
MySQL に代わるオープンソースの MariaDB (MariaDB は MySQL と互換性があります) を ECS インスタンスにインストールし、ブログ データベースを作成します。

MariaDB サーバーをインストールする

yum install -y mariadb-server

MariaDB サーバーを起動します

systemctl start mariadb

MariaDB サーバーの実行ステータスを表示します。

systemctl status mariadb	
#返回结果可看到active (running)时,表示MariaDB Server启动成功

データベースのrootユーザーの初期パスワードを設定します。(パスワードの入力プロンプトが表示されたら、Enter を直接押します)

mysqladmin -u root -p password

データベースに接続します。

mysql -uroot -p

WordPress データベースを作成します。

create database wordpress;

WordPress データベースを作成します。データベースWordPressを作成します。

PHP5.4.16をインストールする

PHP は広く使用されている汎用オープン ソース スクリプト言語で、Web サイト開発に適しており、HTML に埋め込むことができます。

PHPをインストールする

yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

以下のコマンドを実行してPHPテストページを作成します。

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

次のコマンドを実行して、Apache サービスを再起動します。

systemctl restart httpd

ブラウザのアドレス バーで、http://<ECS パブリック ネットワーク アドレス>/phpinfo.php にアクセスします。

WordPress のインストールと設定

WordPressをインストールする

yum -y install wordpress

WordPress 設定ファイルを変更する

絶対パスを指すように wp-config.php を変更します。

# 进入/usr/share/wordpress目录。
cd /usr/share/wordpress
# 修改路径。
ln -snf /etc/wordpress/wp-config.php wp-config.php
# 查看修改后的目录结构。
ll

wordpress ファイルを Apache ルート ディレクトリに移動します

# 在Apache的根目录/var/www/html下,创建一个wp-blog文件夹。
mkdir /var/www/html/wp-blog
mv * /var/www/html/wp-blog/

wp-config.php 設定ファイルを変更する

sed -i 's/database_name_here/wordpress/' /var/www/html/wp-blog/wp-config.php
sed -i 's/username_here/root/' /var/www/html/wp-blog/wp-config.php
sed -i 's/password_here/123456789/' /var/www/html/wp-blog/wp-config.php

設定ファイルの情報が正常に変更されたか確認する

cat -n /var/www/html/wp-blog/wp-config.php

#可看到 修改
    23  define( 'DB_NAME', 'wordpress' );
    25  /** MySQL database username */
    26  define( 'DB_USER', 'root' );
    28  /** MySQL database password */
    29  define( 'DB_PASSWORD', '123456789' );

Apache サービスを再起動します

systemctl restart httpd

WordPress のテスト: ブラウザのアドレス バーで、http://<ECS パブリック ネットワーク アドレス>/wp-blog/wp-admin/install.php にアクセスします。

WordPress 設定ページで関連情報を設定し、「WordPress のインストール」をクリックします。
パラメータの説明:
サイトタイトル: サイト名。この例は、Hello ABC です。
ユーザー名: 管理者のユーザー名。この例は管理者です。
パスワード: アクセスパスワード。この例は Cm%c4(MKI3gQwGk8ap.
Your Email: 電子メール アドレスです。実際の有効な電子メール アドレスを使用することをお勧めします。そうでない場合は、仮想電子メール アドレスを入力できますが、情報を受信することはできません。

Leanote と Mongodb に基づいてクラウド ノートブックを構築する

Mongodbをインストールする

MongoDB は、分散ファイル ストレージに基づいた高性能データベースであり、NOSQL に属し、C++ 言語で書かれており、安定した動作と高いパフォーマンスを備えています。サポートされているデータ構造は非常に緩やかで、より複雑なデータ型を格納できる json 形式や bson 形式に似ています。サポートされるクエリ言語は非常に強力で、リレーショナル データベースと同様の単一テーブル クエリのほとんどの機能を実現でき、データのインデックス作成をサポートします。

#1.配置MongoDB的yum源
vim /etc/yum.repos.d/mongodb-org-3.4.repo
#添加以下内容:
[mongodb-org-3.4]  
name=MongoDB Repository  
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
#2. 将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度
yum makecache

#3.安装MongoDB
yum -y install mongodb-org

#4. 查看mongo安装位置 
whereis mongod

#5. 修改mongo配置文件
vim /etc/mongod.conf
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.
#修改配置文件的 bindIp, 默认是 127.0.0.1 只限于本机连接。所以安装完成后必须把这个修改为 0.0.0.0 ,否则无法通过远程连接,需要远程连接需要把服务器端口打开。

#6. 启动MongoDB
systemctl start mongod

#7. 查到mongodb的状态
systemctl status mongod

Leanote をインストールする

#0. 创建/app目录,用于存放Leanote软件
mkdir /app
cd /app

#1.下载Leanote二进制安装包
wget https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz

#2.解压安装包
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz

#3.Leanote配置
#编辑文件/app/leanote/conf/app.conf,在文件中找到app.secret项,将该项的值改为任意字符串。
#根据Leanote官方文档,如不修改app.secret项的值,将会有安全隐患。
vim /app/leanote/conf/app.conf
#修改app.secret=任意字符串

#4.初始化数据库
mongorestore -h localhost -d leanote --dir /app/leanote/mongodb_backup/leanote_install_data/

#5.启动服务
nohup bash /app/leanote/bin/run.sh > /app/leanote/run.log 2>&1 &

Leanote の設定ファイル /app/leanote/conf/app.conf によると、ノート サービスで使用されるポート番号は 9000 です。クラウド ノートにアクセスするには、ブラウザで http://<ECS パブリック ネットワーク アドレス>:9000 にアクセスします。デフォルトの管理ユーザーは admin、パスワードは abc123 です。

Node.js プログラミング環境を構築する

CentOS 7.7 ベース

Node.js v12.4.0 のインストールと構成

Node.js インストール パッケージをダウンロードします。

wget https://npm.taobao.org/mirrors/node/v12.4.0/node-v12.4.0-linux-x64.tar.xz

Node.js インストール パッケージを解凍します。

tar -xvf node-v12.4.0-linux-x64.tar.xz

Node.js インストール ディレクトリの名前を変更します。

mv node-v12.4.0-linux-x64/ /usr/local/node

Node.js を構成し、Node.js 実行可能ファイルのディレクトリをシステム環境変数に追加します。

echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/profile
source /etc/profile

ノードとnpmのバージョンをそれぞれ確認してください。

node -v
npm -v

Node.js 環境をテストする

vimコマンドを使用してテストファイルを作成します。

vim HelloWorld.js

次のコードを HelloWorld.js ファイルにコピーします。

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(
        200,
        {
            'Content-Type': 'text/plain'
        });
    response.end('Hello World\n');
}).listen(8080);
console.log('Server started');

HelloWorld.js ファイルを実行します。

node HelloWorld.js

4 ブラウザを開き、アドレス範囲に http://<ECS パブリック ネットワーク アドレス>:8080 を入力して、印刷された Hello World を確認します。

Linux ホスト管理システム WDCP を導入する

WDCP (WDlinux コントロール パネル) は、Web 経由でサーバーを制御および管理する Linux サーバーおよび仮想ホスト管理システムです。WDCP のバックグラウンドでは、Linux システムを Web サイト サーバー システムとしてより便利に使用し、Linux サーバーを管理できます。

Linux ホスト管理システム WDCP を導入する

作成したインスタンス ID を確認し、ECS コンソールのインスタンス リストで対応するインスタンスを見つけます。通常のシャットダウン モードではインスタンスが停止します。次に、オペレーティング システムを変更し、[オペレーティング システムの変更] をクリックします。[OS の変更] ページで、[ミラー マーケット] をクリックし、[ミラー マーケットからその他のオプション (OS を含む) を入手] をクリックします。[ミラー マーケット] ダイアログ ボックスで、「WDCPv3.0」と入力し、[検索] をクリックします。例ではPHP動作環境(WDCPv3.0パネル マルチエンジン切替無償版)のイメージを使用しており、クラウドマーケットのイメージページにアクセスして製品情報を取得することができます。「使用」をクリックします。オペレーティング システムをクラウド マーケット イメージに置き換えた後、WDCP ホスト管理システムの使用を開始できます。例では、WDCP ホスト管理システムのアクセス アドレスは http://ECS インスタンスのパブリック IP:8080 です。

FTP サイトを手動で構築する (Windows)

Windows Server 2012 R2 Data Center Edition 64 ビット オペレーティング システムに基づく

IIS および FTP サービスの役割を追加する

Workbench リモート接続のインスタンス --> ウィンドウ アイコンサーバー管理管理を選択、役割と機能の追加を選択、デフォルトでサーバーの役割を入力し、 Web サーバーの追加 (IIS) を選択します。次のステップでは、役割サービスを選択し、IIS 管理コンソールを選択します。およびFTP サーバーを使用してインストールを実行します。

FTP サイトにアクセスするための Windows ユーザーを作成する

说明:创建 Windows 用户,用于访问 FTP 站点时的身份验证。如果只需要匿名用户(即仅提供用户名 anonymous 或 ftp 的用户)访问 FTP 站点,可以跳过本步骤。

ウィンドウ アイコン管理ツール [コンピュータの管理]を選択し、左側のナビゲーション バーで[システム ツール] > [ローカル ユーザーとグループ] > [ユーザー]を選択します。ページの右側にある「アクション」列で、「その他のアクション」をクリックし、「新規ユーザー」をクリックします。

说明:具体配置用户名:示例中创建一个用户名为 ftptest 的 Windows 用户。密码及确认密码:输入自定义密码信。密码须包括大小写字母和数字,否则提示无法通过密码策略。密码相关设置:选中密码永不过期。

共有ファイルのアクセス許可を設定する

说明:需创建一个文件夹作为 FTP 站点共享文件的入口,该文件夹需要开放访问、修改等权限。后续各客户端访问该 FTP 站点时,文件传输均基于该文件夹完成。

Windows インスタンス ディスクは、FTP サイトで使用するフォルダーを作成します。たとえば、C ディスクの下に ftp という名前のフォルダを作成します --> 属性セキュリティタブを変更し、[編集]をクリック--> [追加]をクリックし、オブジェクト名 ftptest を入力して、[名前の確認]をクリックします。名前が正しいことを確認したら、[OK]をクリックします。——>グループ名またはユーザー名エリアで、新しく追加したユーザー名ftptest をクリックし、ftptest の権限エリアで権限を設定し、 「OK」をクリックします。この例ではすべての権限が許可されています。アクセス許可の実際のビジネス要件に応じて、許可または拒否するアクセス許可を設定できます。

FTP サイトの追加と設定

ウィンドウ アイコンサーバー マネージャー上部ナビゲーション バーツール インターネット インフォメーション サービス (IIS) マネージャー-> 左側のナビゲーション バーWindows インスタンス ホスト名 Web サイトを選択し、右側の操作列でFTP サイトの追加 をクリックします-> ポップアップ ダイアログでサイトを設定しますボックス内の情報を入力し、「次へ」をクリックします。具体的な構成手順は次のとおりです。 FTP サイト名: カスタム名。たとえば、ftptest。コンテンツ ディレクトリ: FTP に必要な共有フォルダー。この例は、C ドライブの ftp フォルダーに対応します --> IP アドレス (デフォルト) と SSL 証明書 (なし) を設定し、次へをクリック-- > 認証 (基本) と認可情報 (ユーザー ftptest を指定) を設定し、アクセス許可 (読み取り、書き込み) を設定し、[完了]をクリックします。完了後、IIS マネージャーで正常に構築された FTP サイトを表示し、FTP サイトのファイアウォールを構成できます。IIS マネージャーで、FTP サイト名 ftptest をダブルクリックして、FTP サイトのホームページに入ります。[FTP ファイアウォール サポート]をダブルクリックしますファイアウォールの外部 IP アドレスの下のテキスト ボックスに、Windows インスタンスのパブリック IP アドレスを入力し、ページの右側にある[適用]をクリックします。

说明:具体配置:
 
   - IP地址:保持默认配置。
   - SSL:不同配置项对应的说明如下。本示例中选择 无 ,即不需要SSL加密。如果您需要保证数据传输安全且已拥有SSL证书,请根据实际的数据传输安全要求,设置为 允许 或 需要 。
     -  无 :不需要SSL加密。
     -  允许 :允许FTP服务器支持与客户端的非SSL和SSL连接。
     -  需要 :需要对FTP服务器和客户端之间的通信进行SSL加密。
   - 其他配置保持默认设置。
说明:具体配置项:

- 身份验证:不同选项的说明如下所示。本示例中仅选择 基本 ,后续将通过已创建的ftptest用户访问FTP站点。如果您对数据传输安全没有要求,可以设置为 匿名 ,使匿名用户支持直接访问FTP站点。
  -  匿名 :允许任何仅提供用户名anonymous或ftp的用户访问内容。
  -  基本 :需要用户提供有效用户名和密码才能访问内容。由于基本身份验证通过网络传输未加密的密码,因此请仅在清楚客户端和FTP服务器之间的连接是安全的情况下(例如,使用安全套接字层SSL时)使用此身份验证方法。
- 授权:允许访问的范围说明如下所示。本示例中选择**指定用户**,并在对应的文本框中输入ftptest。
  -  所有用户 :所有用户(不论是匿名用户还是已标识的用户)均可访问FTP站点对应的共享文件夹。
  -  匿名用户 :匿名用户可访问FTP站点对应的共享文件夹。
  -  指定角色或用户组 :仅特定角色或用户组的成员才能访问FTP站点对应的共享文件夹。需要在对应的文本框中输入角色或用户组。
  -  指定用户 :仅指定用户才能访问FTP站点对应的共享文件夹。需要在对应的文本框中输入用户名。
- 权限:选中 读取 和 写入 权限。

セキュリティグループとファイアウォールを設定する

注: Windows インスタンスで FTP サイトを構築した後、インスタンスが属するセキュリティ グループに受信ルールを追加して、FTP サーバーに必要なポート 21 と、FTP サーバーが占有する可能性のあるポート範囲 1024 ~ 65535 を許可する必要があります。 FTPサーバーのパッシブモード。

設定方法は 2 つあります。 (1) Windows インスタンスが属するセキュリティ グループに、ポート 21 とポート 1024 ~ 65535 を許可する受信ルールを追加します。

詳細については、「セキュリティ グループ ルールの追加」を参照してください。(2) Windows インスタンス内にファイアウォールを設定します。Windows インスタンス内のファイアウォールはデフォルトで無効になっています。ファイアウォールが有効になっている場合は、FTP サービス用に TCP ポート 21 とポート 1024 ~ 65535 を許可する必要があります。詳細については、「ECS インスタンスのリモート接続用のファイアウォールの設定」を参照してください。

2 番目の方法でポート追加ルールを使用します。

ウィンドウ アイコン [実行] ——> 「wf.msc」と入力し、ポップアップの[Advanced Security Winodws Firewall]ウィンドウで [受信ルール]をクリックし、次に [新しい。ポップアップの [新しい受信ルール ウィザード] ウィンドウで、 [ポート]次のステップポップアップ ウィンドウで[TCP]を選択し、**特定のローカル ポート (ポート 21 およびポート 1024 ~ 65535 )** を追加します: 21、1024 ~ 65535、次のステップポップアップ ウィンドウで、 [接続を許可する[次へ] をクリックします次のステップでは、デフォルトの構成をそのまま使用してくださいポップアップ ウィンドウでルール名を入力します。[完了] --> [Windows ファイアウォールのプロパティの表示] をクリックして、ファイアウォールが有効になっているかどうかを確認します。ファイアウォールが有効になっていない場合は、 [有効ヒント:ドメイン構成ファイル、プライベート構成ファイル、およびパブリック構成ファイルのタブにあるすべてのファイアウォールを有効にすることをお勧めします。

クライアントによる FTP サイトへのテスト アクセス

Windows フォルダー ディレクトリ、コマンド ライン ツール、ブラウザー、またはサードパーティの FTP 接続ツールを使用して、FTP サーバーをテストできます。この例では、ローカル Windows ホストをクライアントとして使用し、フォルダー ディレクトリを介して FTP サイトへのアクセスをテストします。ローカル物理ホストでフォルダー ディレクトリを開き、フォルダー パスに「ftp://FTP サイトのパブリック IP アドレス: 21」と入力してアクセスします。ポップアップのログイン IDダイアログ ボックスで、ログイン情報の設定を完了し、[ログイン]をクリックします。この例では、ftptest ユーザー名と対応するパスワード情報を使用して、FTP サイトにログインします。新しいテスト フォルダー test を作成できます。再度 Windows インスタンスにログインし、C ドライブの ftp フォルダーにテスト フォルダーが追加されていることを確認します。FTP サイトが正常に構築され、ファイル データが転送できるようになりました。

ECS データ管理の実践 - バックアップとリカバリ

ECS で作成したデータ ディスクをパーティション分割して ECS にマウントし、データ ディスクをファイル ストレージとして使用できるようにします。その後、ユーザーは ECS データ ディスクのスナップショットを作成し、そのスナップショットを使用してディスクをロールバックします。

データディスクのパーティショニングとマウント

現在のシステムのデータ ディスクをクエリする

fdisk -l

データ ディスクのパーティションを作成します。

fdisk /dev/vdb

ポップアップ コマンド ラインに入力する必要があるパラメータは次のとおりです。

コマンド (ヘルプの場合は m) input n; #新しいパーティションを作成する

コマンドアクション input p; #パーティションタイプはプライマリパーティションです (拡張パーティションを追加する場合は、e を押します)

パーティション番号 (1 ~ 4、デフォルト 1) は 1 を入力します。

最初のシリンダーと最後のシリンダーに改行を直接入力し、デフォルトの構成を使用します。

コマンド (ヘルプの場合は m) w を入力して、上記の設定を有効にします。#w を入力して保存して終了します

次のコマンドを再度実行して、現在のシステムのデータ ディスクをクエリします。パーティション /dev/vdb1 を示す情報が表示された場合は、データ ディスクのパーティションが成功したことを意味します。

fdisk -l

データ ディスクをフォーマットします。

mkfs.ext3 /dev/vdb1

ディレクトリ /alidata を作成します。

mkdir /alidata

次に、ディスクをマウントします

mount /dev/vdb1 /alidata

ディスク使用量を確認します。

df -h

データディスクのスナップショットの作成とロールバック

データ ディスク/alidata ディレクトリを入力します。

cd /alidata

データ ディスク上にファイル test.txt を作成し、そのファイルにコンテンツを書き込みます。

>test.txt
echo “Hello Aliyun”>test.txt

ECS インスタンスの管理ページで、クラウド ディスク をクリックすると、インターフェイスに ECS インスタンスにマウントされているディスク情報 (データ ディスク システム ディスク) が表示されます。データ ディスクの右側にある[スナップショットの作成]をクリックしますポップアップ ページでスナップショット名をカスタマイズします (例: sl001-ss)。完了したら、[OK]をクリックします。

ECS のリモート ログイン ツールに戻り、ECS のコマンド ラインで次のコマンドを使用して、作成したファイル test.txt を削除し、誤ってデータを削除した状況をシミュレートします。

rm -f test.txt

スナップショット ロールバックにより、削除されたデータが含まれている時点までディスクが復元され、データが復元されます。ディスクをロールバックするには、ECS が停止状態である必要があります。[このインスタンスのスナップショット] をクリックして、ECS のスナップショット ページに移動します。次に、右側のスナップショットのリストで、作成されたデータディスクのスナップショットを見つけ、[ディスクのロールバック]をクリックしてディスクデータをロールバックします。

ECS インスタンスが正常に起動したら、ECS インスタンスにリモートで再度ログインし、コマンドを再度使用してデータ ディスクを /alidata にマウントします。

mount /dev/vdb1/alidata

誤って削除したデータ test.txt ファイルが復元されていることがわかります。

ls /alidata

Hadoop環境の導入

CentOS7.7をベースにHadoop 3.3.0の擬似分散環境を構築

JDK1.8をインストールする

1. JDK1.8 インストールパッケージをダウンロードします。

wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz

2. ダウンロードした JDK1.8 インストール パッケージを解凍します。

tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz

3. JDK パッケージを移動して名前を変更します。

mv java-se-8u41-ri/ /usr/java8

4. 次のコマンドを実行して、Java 環境変数を設定します。

echo 'export JAVA_HOME=/usr/java8' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile

5. 以下のコマンドを実行して、Java が正常にインストールされたかどうかを確認します。

java -version

Hadoopをインストールする

Hadoop 3.3.0をインストールする

1. 次のコマンドを実行して、Hadoop インストール パッケージをダウンロードします。インストール例 hadoop-3.3.0 バージョン

wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

2. 次のコマンドを実行して、Hadoop インストール パッケージを /opt/hadoop に解凍します。

tar -zxvf hadoop-3.3.0.tar.gz -C /opt/
mv /opt/hadoop-3.3.0 /opt/hadoop

3. 次のコマンドを実行して、Hadoop 環境変数を設定します。

echo 'export HADOOP_HOME=/opt/hadoop/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile 

4. 次のコマンドを実行して、構成ファイルyarn-env.shおよびhadoop-env.shを変更します。

echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh

5. 次のコマンドを実行して、Hadoop が正常にインストールされているかどうかをテストします。

hadoop version

Hadoop 3.3.0の構成

1. Hadoop 構成ファイル core-site.xml を変更します。

vim /opt/hadoop/etc/hadoop/core-site.xml

次のコンテンツをノード内に挿入します。

    <property>
    	<!-- 指定 hadoop 数据的存储目录 -->
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/hadoop/tmp</value>
    </property>
    <property>
    	<!-- 指定 NameNode 的地址 -->
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

2. Hadoop 構成ファイル hdfs-site.xml を変更します。

vim /opt/hadoop/etc/hadoop/hdfs-site.xml

次のコンテンツをノード内に挿入します。

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/tmp/dfs/data</value>
    </property>

3. start-dfs.sh ファイルと stop-dfs.sh ファイルを変更します。

/opt/hadoop/sbin ディレクトリで 2 つのファイル start-dfs.sh および stop-dfs.sh を見つけ、ファイルの先頭に次の内容を追加します。

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

4. start-yarn.sh ファイルと stop-yarn.sh ファイルを変更します。

/opt/hadoop/sbin ディレクトリで 2 つのファイル start-yarn.sh および stop-yarn.sh を見つけ、ファイルの先頭に次の内容を追加します。

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

SSH パスワード不要ログインの構成

1. 次のコマンドを実行して、公開キーと秘密キーを作成します。Enterを押してください

ssh-keygen -t rsa

2. 次のコマンドを実行して、authorized_keys ファイルに公開キーを追加します。

cd .ssh
cat id_rsa.pub >> authorized_keys

Hadoopを開始する

1. 以下のコマンドを実行してnamenodeを初期化します。

hdfs namenode -format

2. 以下のコマンドを順番に実行してHadoopを起動します。

start-dfs.sh
start-yarn.sh

3. jpsコマンドを実行して起動したプロセスを確認し、RM、NM、NN、SNN、DN、JPSが表示されていればHadoopは正常に起動しています。

4. ブラウザを開き、http://ECS パブリック ネットワーク アドレス: 8088 および http://ECS パブリック ネットワーク アドレス: 9870 にアクセスして、Hadoop Web ページを表示します。

Docker環境を素早く構築する

CentOS 7.7 ベース

Docker CE 23.0.1 をインストールする

Docker には、Docker CE と Docker EE の 2 つのブランチ バージョン、つまりコミュニティ エディションとエンタープライズ エディションがあります。

Docker の依存ライブラリをインストールする

yum install -y yum-utils device-mapper-persistent-data lvm2

Docker CEのソフトウェアソース情報を追加します。aliyun docker-ce yum ソースを追加

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

ソースが正常に追加されたら、yum list コマンドを使用して、現在の Docker ソースでサポートされているインストール パッケージのバージョンのリストを表示します。

yum list docker-ce --showduplicates | sort -r

Docker CEをインストールする

yum makecache fast #将软件包信息提前在本地索引缓存,提高搜索安装软件速度,执行命令可提升yum安装速度
yum -y install docker-ce

または、必要な Docker バージョンを選択し、yum install コマンドを使用してインストールします。

yum install -y docker-ce.x86_64 3:20.10.16-3.el7 

Docker サービスを開始し、docker version コマンドを使用して docker のバージョン番号を表示します。

systemctl start docker
docker version
# Docker Engine Community 23.0.1

起動時に自動的に開始されるように Docker サービスを構成します。(オプション)

systemctl enable docker.service

Alibaba Cloud Mirror Warehouse の構成 (ミラー アクセラレーション)

Docker のデフォルトの公式リモート ウェアハウスは Hub.docker.com です。ネットワーク上の理由により、公式 Docker イメージのダウンロードに時間がかかる場合や、ダウンロードが失敗する場合があります。この目的を達成するために、Alibaba Cloud Container Mirroring Service ACR は、公式ミラーリングのダウンロードを高速化するための公式ミラーリング サイトを提供します。以下では Alibaba Cloud ミラー ウェアハウスが使用されます。

コンテナー イメージ サービス コンソールのアドレスをコピーし、FireFox ブラウザーで新しいタブを開いて貼り付け、クラウド コンテナー イメージ サービス コンソールにアクセスします。

https://cr.console.aliyun.com/

Container Registry コンソールの左側のナビゲーション ウィンドウで、[イメージ ツール] > [イメージ アクセラレータ]を選択します。

「ミラー化アクセラレータ」ページの「アクセラレータ」領域で「アクセラレータ アドレスのコピー」をクリックします。

端末ページに切り替えます。次のコマンドを実行して、Docker のカスタム イメージ ウェアハウスのアドレスを構成します。コマンド内のミラー ウェアハウス アドレス https://kqh8****.mirror.aliyuncs.com を、前の手順で Alibaba Cloud から提供された専用のミラー アクセラレーション アドレスに置き換えてください。

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://****.mirror.aliyuncs.com"]
}
EOF

# tee命令用于读取标准输入的数据,并将其内容输出成文件
# >表示覆盖原文件内容(文件的日期也会自动更新)>>表示追加内容(会另起一行,文件的日期也会自动更新)

サービス構成ファイルをリロードします。

systemctl daemon-reload

Docker サービスを再起動します。

systemctl restart docker

サービスの再起動後、次のコマンドを使用して、Docker オペレーティング環境が正常にインストールされているかどうかをテストできます。実行が成功した場合は、Docker のインストールと構成が成功したことを示します。

docker run hello-world

Ubuntuコンテナイメージをダウンロードして起動します

docker search コマンドを使用して、イメージ ソース内で必要なコンテナー イメージを見つけます。

docker search ubuntu

必要なコンテナ イメージの名前を見つけた後、通常は、Docker イメージ ソースでイメージのバージョン リストをさらに検索する必要があります。docker自体はバージョンを参照する機能を直接提供していないため、イメージのバージョンを参照できる簡単なスクリプトdocker-tagsを作成します。

vi docker-tags

docker-tags スクリプトに追加する

curl -s -S "https://registry.hub.docker.com/v2/repositories/library/$1/tags/?page=$2" |
sed -e 's/,/\n/g' -e 's/\[/\\\[\n/g' |
grep -E '"name":|"count":' |
sed -e 's/"//g' -e "s/name:/$1:/g" -e "s/{count:/$1总版本数-/"

docker-tags スクリプトを編集した後、実行する前に chmod を使用してファイルのアクセス許可を変更する必要があります。権限を変更した後、docker-tags スクリプトを使用して、関連するイメージの最新バージョン情報をクエリできます。

chmod 777 docker-tags
./docker-tags ubuntu

イメージのバージョン情報を見つけたら、Docker イメージ ソースからローカルにイメージをプルできます。イメージをプルするときにプルしたバージョンを直接プルするか、バージョンを指定せずにデフォルトで最新バージョンをプルします。

docker pull ubuntu:jammy
# docker pull ubuntu

docker image コマンドを使用して、プルされたローカル イメージを表示します。

docker images

コンテナーを開始するには、まずイメージに基づいてコンテナーを作成し、docker create コマンドを使用して、ダウンロードした ubuntu イメージを使用してコンテナーを作成する必要があります。

注: 永続的に実行できる ubuntu コンテナを作成したいため、 -it パラメータを追加する必要があります

docker create -it ubuntu

コンテナーが正常に作成されたら、docker ps コマンドを使用して既存のコンテナーを表示できます。

注: docker ps の場合、デフォルトでは実行中のコンテナのみが表示されます。すべての状態のコンテナを表示したい場合は、-a パラメータを追加する必要があります。

docker ps -a
# CONTAINER ID表示系统为容器创建的ID,IMAGE为容器的镜像名称。STATUS表示容器当前的状态。NAMES为容器的名称。使用默认的docker create命令所创建的容器并没有指定名称,因此docker会为容器生成一个随机的名字。如果用户想创建指定名称的容器,则可以使用-name参数。注意如果用户制定了容器名,则要注意容器不要重名,否则会创建失败
docker create -it --name ubuntu-1 ubuntu
docker ps -a

コンテナーの作成後、 docker start コマンドを使用してコンテナーを開始できます。コンテナーが正常に開始されたら、 docker ps コマンドを使用してコンテナーのステータスの変化を表示できます。ここで注意する必要があるのは、同じイメージによって作成された複数のコンテナーには関連性がないということです。

docker start ubuntu-1
docker ps -a 

上記の手順は、Docker コンテナー作成の標準プロセスです。実際の運用では、標準的な手順で起動コンテナを作成するのは面倒なので、 docker ではより便利なコマンド docker runを提供しています。

docker run コマンドを使用すると、docker はイメージのダウンロード、コンテナーの作成、コンテナーの開始の作業を自動的に完了します次のコマンドを使用して、busybox のコンテナー イメージをダウンロードし、busyboxdebian-1 という名前のコンテナーを作成し、コンテナーを起動して、すべての機能をバックグラウンドで実行できます。

docker run -itd --name busybox-1 busybox	#许多Docker镜像使用BusyBox为您提供最小镜像。
docker ps -a 

コンテナを操作する前に、ホストのオペレーティング システムを確認してください。

lsb_release -a

ホストネットワーク情報

ifconfig
# 出现docker 0

まず、docker run で新しい ubuntu コンテナを作成し、起動します

docker run -itd --name ubuntu-2 ubuntu

コンテナーの作成後、docker exec コマンドを使用して、ubuntu-2 コンテナー上で bash コンソール プログラムを起動し、コンテナーを操作します。

docker exec -it ubuntu-2 bin/bash

コマンドの実行後にプロンプ​​ト ラインのプロンプトが変わります。これは、現在のユーザーが既にコンテナー内のオペレーティング システムを操作していることを示します。

このとき、lsb_release を通じてオペレーティング システムの状態を確認します。コンテナー経由でインストールされた ubuntu は最小限のバージョンであり、不要なコマンドがインストールされていないため、コマンドが見つからないことが表示されます。したがって、まず apt-get コマンドを使用して共通コマンドをインストールする必要があります。このステップは、ネットワーク速度の影響により、比較的大きな遅延が発生する可能性があります。

apt-get update
apt-get install -y lsb-core net-tools vim --fix-missing

コンテナ オペレーティング システムのステータスとネットワーク ステータスを表示します。検出情報とホスト情報は異なります。

lsb_release -a
ifconfig

コンテナOSからホストOSにフォールバックしたい。exit コマンドを入力するだけです。

-d パラメーターが使用されていない場合、ユーザーが docker run を使用してコンテナーを作成する場合。コンテナーが正常に起動されると、コンテナー オペレーティング システム コンソールが自動的に表示されます。ただし、このメソッドがコンテナー オペレーティング システムに入った後、exit を使用して終了すると、コンテナーは閉じられます。

docker run -it --name temp ubuntu 
exit
docker ps -a 

コンテナの一時停止、再開、開始、停止、削除

開始されたコンテナの場合。docker stop/unpause コマンドを使用して、コンテナーを一時停止/再開できます。コンテナが一時停止されると、コンテナ内のサービスも一時停止され、コンテナが再開されるとサービスが再開されます。

新しいubuntuコンテナを作成します。作成が成功したら、コンテナコンソールに入り、必要なアプリケーションをインストールします。

docker run -itd --name ubuntu-3 ubuntu
docker exec -it ubuntu-3 /bin/bash
apt-get update
apt-get install -y python3 net-tools curl

コンテナ内でデフォルトの python3 http サーバーを起動します。そしてサーバーをバックグラウンドで実行するように設定します。サービスが開始されたら、curl を使用してサービスの実行ステータスをテストします。

nohup python3 -m http.server 8000 &
curl 127.0.0.1:8000 

コンテナ内で http サービスのテストが成功したら、次のステップはホストで http サービスをテストします。その前に、まず ifconfig コマンドを使用してコンテナーの IP アドレスを表示および記録します。次に、コンテナのコンソールを終了します。

ifconfig
exit

ホスト コンソールでも、curl コマンドを使用してコンテナ内の http サービスにアクセスします。ホストでは、コンテナの IP アドレスを介してコンテナ内のサービスにアクセスする必要があることに注意してください。

curl [容器IP]:8000 

curl に加えて、docker top コマンドを使用して、コンテナー内で実行されている特定のプロセスを表示することもできます。

docker top ubuntu-3

docker stop コマンドを使用して、コンテナーの実行を一時停止します。コンテナーが一時停止した後、docker top コマンドを使用して、コンテナー内のプロセスを表示します。プロセスがまだ存在していることがわかり、curl を介して http サービスをテストすると、応答がないことがわかり、サービスが停止していることがわかります。

docker pause ubuntu-3
docker ps -a
curl [容器IP]:8000
Ctrl+C

docker unpause コマンドを使用してコンテナーの操作を再開し、http サービスをテストし、アクセスが復元されたことを確認します。

docker unpause ubuntu-3
curl [容器IP]:8000 

コンテナが再起動されると、コンテナ内で実行されているアプリケーションが停止します。これは物理マシンの再起動に似ています。

実行中のコンテナとコンテナ内で実行中のアプリケーションを表示する

docker ps -a 
docker top ubuntu-3

docker stop コマンドはサービスを停止し、docker ps -a を使用してコンテナーのステータスを表示します。コンテナーのステータスが Exited に変更されたことがわかりました。docker start または docker restart を使用してコンテナーを再起動します。コンテナーが再起動した後、docker top とcurl を使用してコンテナー内の http サービスをテストし、サービスが正常に動作していないことを確認します。より長く存在します。

docker restart ubuntu-3
docker top ubuntu-3
curl [容器IP]:8000

docker stop はコンテナー内のサービスを停止しますが、コンテナーが占有しているシステム リソースを解放するわけではないため、不要になったコンテナーは docker rm コマンドを使用して削除できます。 ID または NAME をパラメータとして指定します。コンテナのステータスが停止していない場合。削除するには、-force パラメータを追加する必要があります。

docker rm --force [CONTAINER ID]
# 或者 docker rm --force ubuntu-3 

コンテナイメージの管理

Docker Pull を使用して、ミラー ウェアハウスを介してイメージをローカル Docker にダウンロードします。ただし、この方法では、サーバーが外部ネットワークにアクセスでき、アクセス速度が保証されている必要があります。ネットワーク状況が悪いときに画像を取得したい場合には、画像を保存して読み込む方法が考えられます。まず、docker save コマンドを使用して、docker 内の 1 つ以上のイメージをファイルにエクスポートできます。次のコマンドは、nginx と hello-world の 2 つのイメージを image.tar ファイルにエクスポートします。

docker pull hello-world
docker pull nginx
docker save -o images.tar nginx hello-world 
ll images.tar

Docker 内から既存の 2 つのイメージを削除します。後続のミラー読み取りの準備をします。docker rmi : 1 つ以上のローカル イメージを削除します。

docker rmi hello-world
docker rmi nginx
docker images 

dockerload コマンドを使用して、images.tar 内の 2 つのイメージを docker にインポートし直します。ネットワークにアクセスしなくてもイメージを更新できます。関連するイメージが docker 内にすでに存在する場合、ファイル内のイメージは無視されることに注意してください。

docker load -i images.tar
docker images 

docker 内でのイメージの保存と読み込みは docker save と dockerload のメソッドで実現できます。

作成したコンテナは、コンテナのスナップショットをエクスポートする方法を利用してバックアップや保存を実現できます。

まずコンテナー ubuntu-3 を作成し、次に ubuntu-3 でテキスト ファイルを作成します。ここでは、 docker exec bash -c メソッドを使用して、ホストのコマンド ラインで直接実行できます。

docker run -itd --name ubuntu-3 ubuntu
docker exec ubuntu-3 bash -c "echo snapshot > snapshot.txt"
docker exec ubuntu-3 bash -c "cat snapshot.txt"

docker export コマンドを使用して、コンテナーをスナップショットの形式でファイルにエクスポートします。

docker export ubuntu-3 > ubuntu-snapshot.tar
ll ubuntu-snapshot.tar

コンテナスナップショットファイルの場合。docker import コマンドを使用して docker にインポートできます。docker import がコンテナーではなくイメージの形式でスナップショットをインポートするという事実に特に注意してください。つまり、インポートされたスナップショットを直接実行することはできませんが、使用する前にスナップショット イメージに基づいてコンテナを再度作成する必要があります。

docker import ubuntu-snapshot.tar ubuntu-snapshot:latest
docker images

インポートされたスナップショット イメージを使用して新しいコンテナを作成します。また、スナップショットによって作成されたコンテナーに、前のコンテナーで作成されたファイルが含まれていることを確認します。

docker run -itd --name snapshot ubuntu-snapshot /bin/bash
docker exec snapshot cat snapshot.txt

Dockerを使用してNginxサービスをインストールする

Docker ミラー ウェアハウスで利用可能な Nginx のバージョンを表示する

docker search nginx

最新バージョンの Nginx イメージをプルします

docker pull nginx:latest

ローカルミラーを表示する

docker images

コンテナを実行する

docker run --name nginx-test -p 8080:80 -d nginx

コマンドパラメータの説明:

  • –name nginx-test: コンテナ名
  • -p 8080:80: ポート マッピング。ローカル ポート 8080 をコンテナ内のポート 80 にマッピングします。
  • -d nginx: コンテナを常にバックグラウンドで実行するように設定します。
# 查看运行中的容器
docker ps -a

ブラウザで新しいタブを開き、アドレス バーに http://<ECS パブリック ネットワーク アドレス>:8080 と入力して、Nginx サービスにアクセスします。

nginxを起動するDockerコンテナシステムに入ります

docker exec -it nginx-test /bin/bash

Dockerfileをカスタマイズしてイメージをビルドする

Dockerfile はミラーを構築するために使用されるテキスト ファイルであり、テキスト コンテンツにはミラーを構築するための手順と手順が含まれています。

Dockerfile ファイルを作成します。ファイル名は Dockerfile、内容は次のとおりです。

FROM centos:centos7
MAINTAINER myname <[email protected]>
# 安装工具包
RUN yum install -y gcc-c++  pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 安装nginx1.14.2
RUN useradd -M -s /sbin/nologin nginx
COPY ./nginx-1.14.2.tar.gz /opt/
WORKDIR /opt/
RUN tar zxvf nginx-1.14.2.tar.gz
RUN mkdir -p /usr/local/nginx
RUN cd nginx-1.14.2 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module  --with-http_sub_module && make && make install
RUN rpmkeys --import file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 && yum -y update && yum clean all
# 设置启动脚本
RUN mkdir -p /opt/work/bin
COPY ./start.sh /opt/work/bin
WORKDIR /opt/work/bin
RUN chmod -R 755 /opt/work/bin
# 定义要暴露的端口
EXPOSE 80
# 启动nginx脚本
CMD ["./start.sh"]

カスタム ミラーを構築し、必要な nginx-1.14.2 ソース パッケージをダウンロードします。

wget http://nginx.org/download/nginx-1.14.2.tar.gz

次の内容を含む start.sh ファイルを作成します。

 #!/bin/bash 
/usr/local/nginx/sbin/nginx -g "daemon off;"

ミラーを構築します (コマンドの後に「ドット」があることに注意してください) docker buildコマンドは、Dockerfile を使用してミラーを作成するために使用されます。

docker build -t my-nginx-server . 
docker images

コンテナを起動する

docker run -p 8080:80 --name my_nginx2 -d my-nginx-server
docker ps -a

Docker に基づいて ELK を構築する (Elasticsearch、Logstash、Kibana)

必要なミラーをダウンロードする

docker pull elasticsearch
docker pull kibana
docker pull logstash
docker pull nginx
docker images

Elasticsearchをデプロイする

JVM ヒープ サイズを変更します。デフォルトでは、Elasticsearch の JVM で使用されるヒープ サイズは 2GB です。ES の jvm のデフォルト パラメータを変更できます。

find /var/lib/docker/overlay2/ -name jvm.options
# 修改相应的配置文件
# -Xms2g 改为 -Xms1g
# -Xmx2g 改为 -Xmx1g

vm.max_map_count サイズを調整する

vim /etc/sysctl.conf
# 末尾添上 vm.max_map_count=262144
sysctl -p	#从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

elasticsearchコンテナを起動する

docker run --name elasticsearch -v "$PWD/esdata":/usr/share/elasticsearch/data -p 9200:9200 -d elasticsearch
docker logs elasticsearch
curl http://localhost:9200

ログスタッシュをデプロイする

logstash設定ファイルを作成する

mkdir -p /docker/config/logstash/
vim /docker/config/logstash/logstash.conf

/docker/config/logstash/ ディレクトリに構成ファイル logstash.conf を作成します。内容は次のとおりです。

input {
     beats {
         port => 5044
         type => beats
     }
}

output {
     elasticsearch {
         hosts => ["elasticsearch:9200"]
     }
}

Logstashコンテナを起動する

docker run --name logstash --link elasticsearch:elasticsearch -p 5044:5044 -d -v /docker/config/logstash:/config-dir logstash -f /config-dir/logstash.conf
docker logs logstash

nginxアプリケーションをデプロイする

docker run -e TZ="Asia/Shanghai" -d -p 80:80 -v "$PWD/logs":/var/log/nginx --name nginx nginx

ファイルビートをデプロイする

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.2-x86_64.rpm
rpm -ivh filebeat-7.4.2-x86_64.rpm
vim /etc/filebeat/filebeat.yml
grep -Ev '#|^

# 修改 filebeat.inputs中的enable为true,paths改为——root/logs/*.log
# output.logstash中hosts:["localhost:5044"]

ファイルビートサービスを開始する

systemctl restart filebeat
systemctl enable filebeat

部署kibana

docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana
docker ps -a

kibana http://[ECS パブリック ネットワーク アドレス]:5601/ にアクセスし、インデックス パターンを作成し、Discover を使用して収集されたログ情報を表示します。

DockerをベースにZabbixを構築する

実験に必要な画像をダウンロードする

docker pull mysql:5.7
docker pull zabbix/zabbix-server-mysql:centos-latest
docker pull zabbix/zabbix-web-nginx-mysql:latest
docker pull zabbix/zabbix-java-gateway:latest
docker images

Zabbixをデプロイする

Dockerネットワークを作成する

docker network create -d bridge zabbix
docker network ls

mysqlコンテナを起動する

docker run -dit -p 3306:3306 --name zabbix-mysql --network zabbix -v /etc/localtime:/etc/localtime --restart always  -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix-password" -e MYSQL_ROOT_PASSWORD="root-password" mysql:5.7
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime --name=zabbix-server --restart=always --network zabbix -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e  MYSQL_PASSWORD="zabbix-password" -e MYSQL_ROOT_PASSWORD="root-password" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-latest
docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime --name zabbix-web --restart=always --network zabbix -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix-password" -e  MYSQL_ROOT_PASSWORD="root-password" -e ZBX_SERVER_HOST="zabbix-server" zabbix/zabbix-web-nginx-mysql:latest

高可用性アーキテクチャを導入する

CentOS 7.7 で構成された 4 つの ECS インスタンス、1の負荷分散 SLB インスタンス1 つのクラウド データベース RDS MySQLエラスティック パブリック ネットワーク IP およびデータ送信サービス (RDS+DTS データ送信 + EIP) に基づいて、マルチゾーン高可用性アーキテクチャを展開します。

SLB インスタンスの構成 (可用性ゾーン間で複数の ECS インスタンスをマウントする場合)

Elastic Public Network IP コンソールにアクセス --> を選択します

https://vpc.console.aliyun.com/eip/

EIP を SLB インスタンスにバインドします

[EIP]ページでEIP インスタンスを見つけ、 [操作] 列で[リソースのバインド]をクリックし、インスタンス タイプとしてSLB SLB インスタンスを選択し、 [バインドするインスタンスの選択]領域で SLB SLB インスタンスを選択し、[OK] をクリックします。

IP ステータスが [割り当て済み] に変わるまで待ちます。これは、EIP が SLB インスタンスに正常に割り当てられたことを意味します。

SLB インスタンスを構成します

ロードバランサー管理コンソールにアクセスします。

https://slbnew.console.aliyun.com/slb/overview

[Traditional Load Balancer CLB (旧称 SLB)] > [Instance Management]を選択します負荷分散 SLB インスタンスを見つけて、クリックして構成を開始します

[プロトコルとリスニング]タブでロード バランシング プロトコルとしてHTTP を選択し、リスニング ポートとして80 を入力し、詳細設定の右側にある[変更]をクリックしスケジューリング アルゴリズムとしてラウンド ロビン (RR) を選択し、その他のプロトコルにはデフォルト値を使用します。構成を選択し、 「次へ」をクリックします。[バックエンド サーバー]タブで、デフォルトのサーバー グループを選択し、[続行] をクリックして追加します[My Server]パネルの[Select Server]、すべての ECS インスタンスを選択し、[ Next]をクリックします。「サーバーの構成ポートと重量」パネル、デフォルト構成をそのままにして「追加」をクリックします。[バックエンド サーバー]タブで、すべてのサーバーのポートを 80 に設定し、[次へ]をクリックします。[ヘルス チェック]タブと[構成監査]タブでは、デフォルトの構成が維持されます。負荷分散サービス構成ウィザードのダイアログ ボックスで、構成が成功するまで待ちます。

ヘルスチェックのステータスが正常である場合は、バックエンド ECS インスタンスが負荷分散によって転送されたリクエストを正常に処理できることを意味します。FireFox ブラウザで新しいタブを開き、http://<Elastic Public Network の IP アドレス> にアクセスします。ページを数回更新すると、スケジュール アルゴリズムがラウンド ロビンであるため、リクエストが各 ECS インスタンスに順番に送信され、SLB が正常に構成されたことがわかります。停止する ECS インスタンスをランダムに選択し、http://<エラスティック パブリック ネットワークの IP アドレス> を更新すると、通常のインスタンス ステータスの ECS インスタンスに順番にリクエストが送信されることがわかります。サーバー ECS がダウンしても、ビジネス シナリオ全体には影響がないことがわかります。

自己構築したデータベースを RDS インスタンスに移行する

データ転送サービスを使用して、ECS インスタンス上に自己構築された MySQL データベースを RDS インスタンスに移行します。

ECS 上に自己構築された MySQL データベース

root ユーザーを使用してデータベースにログインします。例は MySQL 5.7.36 です。

mysql -uroot -p12345678

パスワード セキュリティ ポリシーを低に変更し、パスワードの長さ (少なくとも 8 文字) のみを確認します。

set global validate_password_policy=0; 

bakery という名前のデータベースのユーザー dts を作成します。この例で作成されるユーザーは dts で、パスワードは 12345678 です。

grant all on *.*  to 'dts'@'%'  IDENTIFIED BY '12345678';
FLUSH PRIVILEGES;
mysql -udts -p12345678

テスト サンプル データベース ベーカリーには、顧客テーブル、製品テーブル、および対応するデータがあります。

RDS インスタンスのアカウントとデータを作成する

RDS 管理コンソールにアクセスする

https://rdsnext.console.aliyun.com/

インスタンス リストをクリックしてRDS インスタンスを見つけ、左側のインスタンス IDをクリックして、 [アカウント管理]をクリックしてアカウントを作成しますたとえば、データベース アカウントとして lab_user を入力し、アカウント タイプとして共通アカウントを選択し、パスワードとして Passw0rd を入力します。データベース管理では、データベースを作成します。たとえば、データベース (DB) 名として lab_db を入力し、承認されたアカウントとして lab_user (通常のアカウント) を選択し、 [作成]をクリックします。アカウント管理ページに戻ってデータベースを承認し、承認する権限を変更します。

データ転送サービス DTS を使用して、ECS インスタンス上に自己構築したデータベースを RDS インスタンスに移行します。

データ転送コンソールにアクセスする

https://dts.console.aliyun.com/

左側のコンソールで[データ移行]をクリックし、[データ移行] ページで移行タスク リストでリージョンを選択し、 [移行タスクの構成]をクリックします。

ソース データベースとターゲット データベースタブのソースデータベース情報領域で、次のパラメータ情報を設定し、[接続のテスト]をクリックします。

ソース ライブラリパラメータの説明:

  • タスク名:カスタム設定データ転送DTSタスク名
  • インスタンスタイプ: ECS 上の自己構築データベースを選択
  • インスタンス リージョン: クラウド サーバー ECS インスタンスが配置されているリージョンを選択します
  • ECS インスタンス ID : クラウド サーバーの ECS-1 インスタンス ID を選択します
  • データベースの種類: MySQL を選択します。
  • ポート: 3306 を入力
  • データベースアカウント:dtsを入力してください
  • データベースのパスワード: 12345678 を入力してください

ターゲット ライブラリパラメータの説明:

  • インスタンスタイプ: RDSインスタンスを選択します
  • インスタンス リージョン: RDS インスタンスが配置されているリージョンを選択します。
  • RDS インスタンス ID : RDS インスタンス ID を選択します
  • データベースアカウント: lab_user を入力します
  • データベースパスワード: Passw0rdを入力してください

[DTS サーバー アクセス認証]ダイアログ ボックスで、[次へ]をクリックし、[移行タイプとリスト]タブをクリックし、移行オブジェクト内のベーカリーデータベースをクリックして、右のアイコンをクリックします。選択したオブジェクトにベーカリー データベースが表示されたら、 [事前チェック] をクリックして、スタート事前チェックダイアログボックスで「次へ」をクリックします。

データ移行ページに戻り移行タスク リストでリージョンを選択し、 [更新]をクリックします。3 ~ 4 分待つと、移行タスクのステータスが「成功」に変わり、データ移行が完了したことが示されます。

RDS インスタンスを確認します

[RDS 管理コンソール] タブに切り替えて、[ログイン データベース]をクリックします。データベース アカウントに「lab_user」、データベース パスワードに「Passw0rd」と入力し、 [接続のテスト]顧客や製品などの 2 つのテーブルが表示され、ECS インスタンス上の自己構築データベースのデータが RDS インスタンスに正常に移行されたことが示されます。 。

おすすめ

転載: blog.csdn.net/qq_44033208/article/details/130214183