Apache / Lighttpd / Nginx Webサーバーのネットワークファイルシステム(NFS)ファイルへのアクセスの構成
仮想化とwww.cyberciti.bizからのLAMPサーバーのセットアップに関する一連のレッスンを引き続き翻訳し、最初の実用的なステップであるネットワークファイルストレージの作成に進みます
LinuxおよびUnix用のNFSv4.0(ネットワークファイルシステム)ネットワーク共有の作成は、他のApache / Lighttpd / Nginxネットワーク共有の作成と大差ありません。 これを行うには、IPアドレス192.168.1.14でファイルサーバー/ VM vm05の次の設定を行います。
Linux NFSサーバー:同期または非同期
最適なNFSサーバーの動作モードを選択する必要があります。 非同期モード( 同期オプション )では、記録の終了やディスクファイルの変更を待たずにサーバーリクエストへの応答が発生します(アクセス時に記録が発生した場合)。 このモードのパフォーマンスは向上しますが、データの整合性とサーバーの大まかな再起動(システム障害またはその他の理由の場合)が犠牲になりますが、データの損失または損傷につながる可能性があります。 同期操作モード( sync オプション )では、サーバーへの要求への応答は、記録の最後にのみ発生します。 これを使用することを強くお勧めします-ローカルApache / Lighttpd / NginxノードでNFSキャッシュを有効にした2番目の同期モード、つまり vm 01およびvm 02サーバー。
「共有」ネットワークリソースを作成する方法
最初に、 yum managerを使用して、NFSサーバーソフトウェアパッケージをインストールします。
# yum groupinstall "NFS file server"
または...
# yum install nfs-utils nfs4-acl-tools portmap
...インストールされたサービスをアクティブにします。
# chkconfig nfs on # chkconfig rpcbind on # chkconfig rpcidmapd on # chkconfig nfslock on
NFSサーバーのユーザーアカウントを作成します。
NFSサーバーのファイル共有を整理するには、Apacheユーザー資格情報を使用します。 同じアカウントがvm01 、 vm02 、 vm03、およびvm05サーバーで使用されます 。 NFSv4サーバーでユーザーアカウントを作成するには、 useraddコマンドを使用します 。
################################################################################## ### , CentOS/RHEL, apache ### ### UID/GID 48, apache vm01 vm02 ### ### ### ################################################################################## # /usr/sbin/groupadd -g 48 apache # /usr/sbin/useradd -s /sbin/nologin -g 48 -u 48 -M -d /var/www apache # /usr/bin/passwd -l apache
Apache2 WebサーバーをNFSv4サーバーにインストールしないでください。
/etc/idmapd.conf nfsサーバーの構成
NFSv4 IDサービスネームデーモン(rpc.idmapd)は、NFSv4クライアントとサーバーカーネルを提供し、要求を介して後者を接続し、IDを名前に、名前をIDに変換します。 デーモンを構成するには、/ etc / idmapd.confファイルを編集します。
# vi /etc/idmapd.conf
ローカルNFSv4ドメインには、次の設定が指定されます。 デフォルトのDNSホスト名は、ホストのドメイン名に置き換える必要があります。
Domain = cyberciti.biz
また、マッピング設定が次のように記述されていることを確認してください。
[Mapping] Nobody-User = nobody Nobody-Group = nobody
ファイルを保存して閉じます。
ファイルシステムの共有
ネットワーク共有/ var / www / staticおよび/ var / www / htmlを作成するには、次の手順を実行します。 mkdirコマンドを使用して、NFSv04サーバーに目的のディレクトリを作成します。
# mkdir -p /exports/{static,html}
作成されたディレクトリと/ exportsディレクトリとの接続を確立します 。
# mount --bind /var/www/html /exports/html # mount --bind /var/www/static /exports/static
ファイル/ etc / fstabを編集します。
# vi /etc/fstab
以下のエントリを追加することにより:
/var/www/html /exports/html none bind /var/www/static /exports/static none bind
ファイルを保存して閉じます。 ファイル/ etc / exportsを編集します:
# vi /etc/exports
次のパラメーターを追加します。
################################# ### vm01 vm02 ### ### by vivek Thu June 21,2012 ### ################################# ## nfs, fsid=0 NFSv4 ## /exports 192.168.1.10(rw,fsid=0,no_subtree_check,async) 192.168.1.11(rw,fsid=0,no_subtree_check,async) ### NFS www.cyberciti.biz ### /exports/html 192.168.1.10(rw,no_subtree_check,async,nohide) 192.168.1.11(rw,no_subtree_check,async,nohide) # «-» (ro). # # , «--» (rw)# /exports/static 192.168.1.10(ro,no_subtree_check,async,nohide) 192.168.1.11(ro,no_subtree_check,async,nohide)
ファイルを保存して閉じます。 これで、 nfsと関連サービスを開始できます 。
# /sbin/service rpcbind start # /sbin/service rpcidmapd start # /sbin/service nfslock start # /sbin/service nfs start
NFSv04サーバーの保護
ファイアウォールをインストールし、リンクで指定されたスクリプトに従ってTCPWrapperを構成できます 。 または、NFSサーバーの固定ポートを使用してiptablesテーブルを構成します。 また、このサーバーからNFSファイルシステムを解除することにより、ネットワークビューまたはネットワーク上のマスクされた(ネットワーク/マスク)マシン( vm01 、 vm02 )を使用することもできます。 次のオプションを使用して、 / etc / sysconfig / iptablesファイルを編集します。 これらのパラメーターのスペルがLOGおよびDROP行の前にあることを確認してください。
## nfsv4- ## -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
ファイルを保存して閉じます。 iptablesサービスを再起動します 。
# service iptables restart
共有リソース
これで、 / var / www / staticの静的ファイルと、 / var / www / htmlサーバーディレクトリのphp / htmlファイルを読み込むことができます。 共有NFSファイルシステムにUnixソケットを置かないでください。 SELinuxを使用する場合、SELinuxのセキュリティ要件を考慮して標準アクセス権とファイル所有者の権利を設定する必要がありますが、システムの動作を確認するために(一時的に)SELinuxを無効にできます。 資料cyberciti.bizの詳細を参照してください。
NFSに関する最後の注意
- 上記の構成例では、NFSは内部RAIDディスクアレイの「障害点」です。 ただし、SANまたはNASストレージデバイスをインストールすることにより、この問題を解決できます。 高いストレージ冗長性はプロジェクトのコストを増加させます。
- さらに、構成する各仮想マシンが、同時に両方ではなく、クライアントまたはサーバーとして機能することを確認してください。
- メンテナンスとセキュリティの問題を回避するには、NFSをシンプルな構成で展開する必要があります。