まず、アーキテクチャ図
- 負荷分散を実現するために、完全な分析はweb1、WEB2をDNS
- web1、WEB2使用のMySQLデータベースバックエンド
- web1と、すべてのNFSデータ上WEB2ページデータは、自動的にマウント
- NFSサーバweb1とは、ウェブデータを提供WEB2
10.7.2。準備 設定したIP情報の タイプイーサネットのifnameのens33 CON CON-名ens33は\マニュアルipv4.method追加nmcli 192.158.46.150/24 ipv4.gateway 192.168.46.1 ipv4.address 注意 nmcliは、私はもちろん、使用しているIP変更します人間修正。 10.7.3。Ansible設定 10.7.3.1。インストールansible [ルート@ localhostの〜]#yumをansibleインストール 10.7.3.2。ホストの追加 の/ etc / ansible / hostsファイルに以下を追加する必要性を。 [クライアント] 192.168.46.159 [DNS] 192.168.46.158 [ウェブ] 192.168.46.157 192.168.46.156 [DB] 192.168.46.155 [NFS] 192.168.46.154 [セルフ] 192.168.46.150 10.7.3.3。で、パスワードなしのログの設定 ここで私の前に自動化、パスワードなしのログインスクリプトというスクリプトを書き、私のブログを参照してください。 [ルート@ localhostの〜]#猫HOSTS.TXT 192.168.46.150ルートオラクル 192.168.46.151ルートオラクル 192.168.46.152ルートオラクル 192.168.46.153ルートオラクル 192.168.46.154ルートオラクル 192.168.46.155ルートオラクル 192.168.46.156ルートオラクル 192.168.46.157ルートオラクル 192.168.46.158ルートオラクル 192.168.46.159ルートオラクル 192.168.46.160ルートオラクル [ルート@ localhostの〜]#猫mima.sh #!/ binに/ bashの #================ ================================ #FileName:expect_ssh.sh #Author:zhaojiedi #Description: #DateTime:2018- 01-05 8時26分06秒 #Version:V1.0 #Other: #================================================ host_username_password_file = HOSTS.TXTの 期待#インストール &>を/ dev / null ||期待-q RPM yumをインストール-yqは&>は/ dev / nullに期待 #id_rsa.pubファイルを作成 pubkeyで=の〜/ .ssh / id_rsa.pub [場合!-e "$のpubkeyで"]; その後 のssh-keygenは-P "" -t rsaの-fの〜/ .ssh / id_rsaと Fiの 読み取りホストのユーザー名・パスワードしばらく; やる CON = $ {ユーザー名} "@" $ {ホスト}は $パスワードをエコー << EOFの期待 20タイムアウトセット 産卵のssh-コピー-ID $ CONは {期待する "はい/いいえ" {送信"はい\ n"は、exp_continue} "パスワード:" {送信 "$ {パスワード} \ n" は、exp_continue} #自動的に公衆スクリプト、コピージョブを実行し ます。[root @ localhostの〜]#bashの mima.sh テスト#下の [ルート@ localhostの〜]#のSSH 192.168.46.151 'ショーは、IP A ens33' 10.7.3.4を。セットのホスト名前(オプション) 私のマシンはここに誤用を防ぐために、ホスト名ダウン管理セットを容易にするために、すべてのちょうどクローン作成された仮想マシンです。 #ホスト名を設定するスクリプトを作成し ます。[root @ localhostの〜]#vimのset_hostname.sh [ルート@ localhostの〜]#猫set_hostname.shの #!/ binに/ bashの エコー"スタート" ホスト名の Aには、show ip $( -名= CentOSのをens33 |はgrep 'ens33 INET *' |。-n -R&LTセッド'S @ * \([0-9] {1,3})/.*@ \ P @ 1 ..')linuxpanda.tech エコー$名前 hostnamectlセットホスト名$名 エコー"終了" [ルートのCentOS-localhostの@〜]#ansibleすべてのスクリプト-a -m '/root/set_hostname.sh' このスクリプトはまたansibleホストのIP設定されています。 。10.7.3.5ファイアウォールとSELinux近い ファイアウォール閉じる# //聞く-ON-V6 {ポート53は:: 1;}; [CentOSのルート-150 @〜]#ansibleすべての-m -a-サービス'の名前は=有効= NO firewalld' [CentOSのルート-150 @〜]#ansibleすべての-m -a-サービス'=国家は= firewalld名前を停止' [ルートをCentOSの-150〜@]#ansibleすべてのシェル-a -m '-i -R&LTセッド' SELINUX = S @。@ * @ SELINUX =無効'の/ etc /のsysconfig / SELinuxの' [CentOSのルート-150 @〜]#ansible -m -aシェルすべて「setenforce 0」 注 オリジナルのSELinuxが無効になっている場合は、setenforce 0エラーを使用して報告されます、それを無視しないでください。 10.7.4。DNSホストの設定 10.7.4.1。DNS設定 [CentOSのルート-158 @〜]#yumをインストールバインドバインド-utilsの [CentOSのルート-158 @〜] Vimの/etc/named.confの# #注5行を次 / / {リッスンポート53は127.0.0.1である;}; //有効DNSSEC -はい; //検証DNSSEC -はい。 クエリ{//;}; - localhostを許可 IH;再試行 1W、有効期限が切れる 3H)を、最小 [CentOSのルート-158 @〜] Vimの/etc/named.rfc1912.zones# #セミコロン(注)した後、以下の追加 ゾーン"linuxpanda.tech" {のIN タイプマスター; ファイル"linuxpanda.tech.zone"; }; [CentOSのルート-158 @〜]#CDと/ var / named / [名前のルート@ CentOSの-158] -a named.localhost linuxpanda.tech.zone CP番号 [CentOSの@ルートという名前-158]#Vimのlinuxpanda.tech.zone [CentOSの@ 158という名前のルート] linuxpanda.tech.zoneのCAT# $ TTL 1D のNS1 @ SOA ADMIN IN( 0;シリアル 1D;更新 NS NS1 NS1 A 192.168.46.158 ウェブA 192.168.46.157 ウェブA 192.168.46.156 CNAMEウェブWWW 10.7.4.2。DNS本机测试 [ルート@ CentOSの-158という名前]#掘るwww.linuxpanda.tech @localhost 。<< >> DIG 9.9.4-のRedHat-9.9.4-51.el7_4.2 << >> www.linuxpanda.tech @localhost ;; グローバルオプション:+ CMD ;; 答えを得た: ;; - >> HEADER << -オペコード:QUERY、状態:NOERROR、ID:57957 ;; フラグ:QR単三番目のRA; QUERY:1、ANSWER:3、AUTHORITY:1、追加:2 ;; OPTシュード: ; EDNS:バージョン:0、フラグ:; UDP:4096 ;; QUESTION SECTION: ; www.linuxpanda.tech。Aでは ;; ANSWERセクション: www.linuxpanda.tech。CNAMEのweb.linuxpanda.tech、IN 86400。 web.linuxpanda.tech。192.168.46.156、IN 86400 web.linuxpanda.tech。86400のA 192.168.46.157 ;; AUTHORITY SECTION: .. linuxpanda.tech NSがIN 86400をns1.linuxpanda.tech ;;追加セクション: 。ns1.linuxpanda.techのA 192.168.46.158 86400 ;;問合せ時間:0ミリ秒 ;; SERVER:#53は、127.0.0.1(127.0.0.1)です ;; WHEN:18日に2018年2月午後九時05分05秒CSTです ;; MSG RCVDサイズ:132 。10.7.5クライアントホストテスト #は、私たち自身のDNSホスト用のクライアントのDNSの点を変更し 、[ルート@ CentOSの-159〜]#修正ens33は192.168.46.158 ipv4.dns CON nmcli #は、ネットワーク、またはリロードを再起動して [ CentOSの-159〜]#1 @ルートサービスネットワークの再起動 、それは2つのIP 157156を解決できるかどうかを確認するために#ピングでの当社のWebホスト のpingの[CentOSのルート-159 @〜]#www.linuxpanda.tech PING web.linuxpanda.tech(192.168.46.157)56(84)は、データのバイト。 192.168.46.157(192.168.46.157)から64バイト:icmp_seq = 64 1 TTL =時間= 0.330 MS 192.168.46.157から64バイト(192.168.46.157):icmp_seq TTL =時間2 64 = 0.255 MS = 192.168.46.157(192.168.46.157)から64バイト:icmp_seq = 64 3 TTL =時間= 0.292 MS [CentOSのルート-159 @〜]ピング位www.linuxpanda.tech PINGのweb.linuxpanda .Tech(192.168.46.156)56(84)であるデータのバイト。 192.168.46.156から64バイト(192.168.46.156):icmp_seq = 64 1 TTL =時刻MS = 0.421 注 専門外のビットをテストするためのpingコマンドは、複数を必要とします二つのアドレスへのテストは、すべてのクライアントの後、掘るツールがインストールされていない、表示されます。 10.7.6。NFSホストの設定 10.7.6.1。ユーザーの追加 [CentOSのルート-154 @〜]#48アパッチのgroupadd -g [CentOSのルート-154 @〜]#useraddの-u 48 -g 48アパッチ #IDはアパッチ[CentOSの-154〜@ルート] UID = 48(アパッチ)GID = 48(アパッチ)基= 48(アパッチ) 10.7.6.2。パーミッションを変更 [ルート@ CentOSの-154〜]#のchown -R apache.apache /データ/ HTML 10.7。 6.3。共享出去 [ルート@ CentOSの-154〜]#yumをインストールするのnfs-utilsの [ルート@ CentOSの-154〜]#vimのは/ etc / exportsの [ルート@ CentOSの-154〜]#猫の/ etc /エクスポート /データ/ htmlの192.168。 46.156(RW、all_squashコマンド、anonuidコマンド=アパッチ、anongidコマンド=アパッチ) /データ/ HTML 192.168.46.156(RW、all_squashコマンド、anonuidコマンド=アパッチ、anongidコマンド=アパッチ) [ルートのCentOS-154 @〜]#systemctl再起動のnfsd のCentOS @ [ルート-154〜]#は、exportfs -v /データ/ HTML 192.168.46.156(RW、同期、wdelay、皮、no_subtree_checkコマンド、anonuidコマンド= 48、anongidコマンド= 48、秒= SYS、固定、にroot_squash、all_squashコマンド) /データ/ HTML 192.168.46.157(RW、同期、wdelay、皮、no_subtree_checkコマンド、anonuidコマンド= 48、anongidコマンド= 48、秒= SYS、固定、にroot_squash、all_squashコマンド) 10.7.7。mysqlの配置主机 10.7.7.1。安装软件 [ルート@ CentOSの-155〜]#yumをインストールmariadb-サーバmariadb 10.7.7.2。開始はサービス [ルートのCentOS-155 @〜]#はmariadb開始systemctl #netstatの-tunlp [CentOSの-155〜@ルート] | grepを3306 TCP 0 0 0.0.0.0:3306 0.0.0.0:*は13680 / mysqldをLISTEN 10.7.7.3を。添加应用用户 [ルート@ CentOSの-155〜]#mysqlの-uルートは-p パスワードを入力します。 MariaDBモニターへようこそ。コマンドは、で終わります。または\グラム。 あなたのMariaDBの接続IDが10である 5.5.56-MariaDB MariaDBサーバー:Serverバージョン 著作権(C)2000、2017、オラクル、MariaDB株式会社アブなどがあります。 「助けを;」タイプ 助けのためか、「\ H」。現在の入力文をクリアするために「\ C」を入力します。 MariaDB [(なし)]>データベースのウェブを作成します。 クエリOK、影響を受けた1行(0.00秒) 。MariaDB「オラクル'で識別される' web@'192.168.46.%ウェブすべてONに[(なし)]> *グラント、 影響を受けたクエリOK、0行(0.05秒) 10.7.7.4セキュリティの初期化。 [ルート@ 〜155-のCentOS]#mysql_secure_installation 10.7.8。ウェブホストの設定 ここでは2つのホスト。 10.7.8.1。ソフトウェアのインストール #マウント [ルートのCentOS-150 @〜]#yumをansibleウェブ-m -a '=のhttpd名、PHP-FPM、PHP-MySQLの、mod_fcgid州立インストール済み=' #サービス開始 [ルート@ centos- 150〜]#ansibleウェブ-mサービス -a '名= httpdの状態=開始' [ルート@ centos- 〜150]#ansible Webサービス-m -a '= PHP-FPM名= STARTED状態' 10.7.8.2。カタログのマウント マウント用の#は、必要なソフトウェアをインストールし ます。[root @ CentOSのは-156 HTTPD] #yumをインストールnfs- CIFS-utilsのutilsの #RPCサービスを開始 [ルートのCentOS-156 @ HTTPD]#systemctl再起動のrpcbind 位のエクスポートされたリモート場合表示 [CentOSの-156のhttpd @ルート] #showmountは-e 192.168.46。 輸出のためのリスト192.168.46.154: /データ/ HTML 192.168.46.157,192.168.46.156 #マウント [@ CentOSのルート-HTTPD 156]位マウント192.168.46.154:/data/htmlの/ var / WWW / HTML #自動的にマウントされ 、[@ CentOSのルート-HTTPD 156]#テールを。1 -nは/ etc / mtabを 192.168.46.154:/data/html / VAR / WWW / HTML NFS4 RW、がrelatime、VERS = 4.1、RSIZE = 65536、wsizeの値= 65536、namlen = 255、ハード、プロト= TCPポート= 0、ティメオ= 600、RETRANS = 2、秒= SYS、CLIENTADDR = 192.168.46.156、local_lock =なし、ADDR = 192.168.46.154 0 [ルート@ centos- HTTPD 156]尾-n 1つの#の/ etc / mtabに>>は/ etc / fstabの #サンプル次のページを表示 [ルートのCentOS-156 @ HTTPD]#のCAT /var/www/html/index.html hellow世界を 10.7.8.3。 httpdの設定 このセクションでは、2台のマシンに再びそれを行うには持っている必要があります。 #PHPのページのサンプルをダウンロードし ます。[root @ CentOSの-156 HTTPD] #wgetのdownload.linuxpanda.tech/lamp/index.php.sample -O /var/www/html/index.php #のサンプルPHPページエディタデータベース接続のユーザー名とパスワード [ルート@ CentOSの-156 HTTPD]#vimの/var/www/html/index.php [ルート@ CentOSの-156 HTTPD]#猫の/var/www/html/index.php <?PHP $ mysqliの=新しいmysqliの( "192.168.46.155" 、 "ウェブ"、 "オラクル")。 IFは(mysqli_connect_errno()){ エコーは"失敗"; $ mysqliの= NULL; 出口; } エコー"成功"; $ mysqli- > ?> #のFCGI編集 [ルート-156 @ CentOSのは、conf.d] Vimのfcgid.conf# #次の3行を追加します index.phpをDirectoryIndexで ProxyRequestsをオフ ProxyPassMatch ^ /(.. * \ PHP)$ FCGI://127.0.0.1:9000の/ var / WWW / HTML / $ 1 ネットワークサービス再起動する# [ルート@ CentOSの-156 conf.d] #サービスを再起動httpdの 10.7.8.4。マシンのテスト このセクションでは、二つのマシンに再びそれを行うために必要とされています。 [ルート@ CentOSの-156 conf.d] #カールはlocalhost / index.phpを 成功 10.7.9。クライアントのテスト [ルート@ CentOSの-159〜] #カールhttp://www.linuxpanda.tech/index.php 成功 停止ウェブの#156 [ルート@ CentOSの-159〜] #カールhttp://www.linuxpanda.tech/index.php 成功した #157その後、ウェブが停止し 、[ルートのCentOS-159 @〜]#http://www.linuxpanda.tech/index.phpカール カール:接続www.linuxpanda.tech:80に失敗しました。接続(7)。拒否した 10.7.10を。まとめ この作品を、それは非常に単純なようだが、それをやっては、まだいくつかのトラブルに遭遇しています。 改善のためのエリア: web1とが停止した場合にDNS解決不安定すぎる、、、これはホストを停止して解決することも可能DNSウェブはアクセスできませんつながります。 後でマスターから学んだのMySQLの例は完璧に考慮することができます。 ランプはXCacheとは、下の加速使用していない 、この演習は、ランプ環境をインストールするにはyumを使用することですコンパイラのインストール方法を使用することを検討してください。 NFS共有データは、本質的には、データのディスクでのnfsの代わりにrsyncの使用を検討してください。 データファイルは、ファイルアクセス性能を提供するために、考慮の襲撃に配置することができます