- 締切済み
イントラサーバ内のブログを、公開サーバ内で動作しているように見せるやり方
公開サーバAとイントラサーバBがあります。イントラサーバBにインストール、運用しているxoopsをそのまま外部からアクセスできるようにしたいのですがどのような方法が考えられますか。 単純にサーバB上の必要なディレクトリをサーバAにNFSマウントし、目的の.phpをvar/www/html以下にリンクさせれば、外部からの見た目はサーバA、しかし動作しているのはサーバBと言う風にいくかと考えているのですがどうでしょか。 Linuxに詳しい方からみたら、とんでもないideaなのかもしれませんが.... ちなみにxoopsはMySQLを必要としていますが、サーバAにはMySQLをインストールできないためこのような打開策を考えております。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- hetarepyon
- ベストアンサー率52% (94/180)
No. 5 です。 一応、質問された mmhan さん宛の補足と言う事でご理解ください。 イントラサーバへの NFS アクセスを許可すると言うことは、イントラサーバへのアクセス制御をかなり緩くすることになります。NFS サーバ側のセキュリティを維持するにはファイアウォールの設定が肝になるでしょうが、かなり面倒かつシビアな設定と運用が必要だろうと思います。 ファイアウォール周りに関しては参考 URL をご参照いただくと良いとおもいます。 なお、NFS が常に悪い、とは思いません。例えば -- F/W --- Web サーバ群 | -- NFS サーバ のように、保護されたネットワーク内であれば Web サーバ群にコンテンツを提供する NFS サーバを配置するのは良くやる方法です。ただ、今回のように NFS クライアント(公開サーバ)と NFS サーバ(イントラサーバ)が全く違うネットワークにあり、かつ NFS サーバが DMZ でもないイントラネットワークにある場合にはお勧めできないと考えます。 > ちなみにURL書き換えで、外部からのリクエストを内部サーバに転送しても単純に見ることはできませんよね? mod_write + mod_proxy で『単純に』見ることができますよ :)。ただ Zope コンテンツ内で URL パスを絶対表記(http://..../hoge.html など)しているとその辺の対応も必要になりそうです。これに関してはどのような方法を採っても同じ悩みですけれど。 参考になれば幸いです。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
#5どの >公開サーバで NFS をつかうのはセキュリティ的にオススメできませんし >設定もかなり面倒です。 エクスポートするのは、イントラサーバ側で、公開サーバはマウントするだけなんですが、 セキュリティの問題がありますか? また、設定がかなり面倒というのも、判りません。 apacheでプロキシを設定して、知らずにオープンプロキシ化しているサイトを 良く見かけますが、個人的には、そちらのほうが怖いなと・・。 正しく設定されれば、apacheでプロキシでも、mod_rewriteでも、NFSより効率が良いのですが。
- hetarepyon
- ベストアンサー率52% (94/180)
公開サーバで NFS をつかうのはセキュリティ的にオススメできませんし、設定もかなり面倒です。 それよりは No.2 の方が書かれているようなリバースプロキシを用いるか、mod_rewrite などの使用をオススメします。サーバ A からサーバ B へのアクセスとして HTTP あるいは HTTPS のみを許可すれば良いので、セキュリティ的には NFS よりオススメです。 ただし xoops はセキュリティホールが多いことでも有名ですので、一般向けに公開するのでなければ Basic 認証を設定するなどして、第三者にはアクセスさせない方が良いでしょう。 参考になれば幸いです。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
#1です。 書き忘れているので、一応書いておきます。 DBの件ですが、別にローカル上にMySQLなり、PostgeSQLが居ないと xoopsが動作しないわけではありません。 アクセス可能なDBがあれば、それでOKです。 なので、イントラサーバ上に、DBを構築して、公開サーバからのアクセスを 許可すれば、それでかまいません。 むしろ問題は、公開サーバ(apache)とイントラサーバ(NFS,DB)の間を データが行ったり来たりするところで、パフォーマンスが出るかな?と。 (NFSって、結構遅いです)
お礼
度々感謝いたします。 そうですよね、ご指摘のとおり大概のCMSは外部のDBをサポートしていますよね。 既存のxoopsやwikiをそのまま見えるようにしたいと考えていたのですが、 必要なphp等だけサーバAに移動して、DBの指定だけBにするというような方向も考えてみます。 NFSは使ったことがなかったので、パフォーマンスのことは考えていませんでした。 ありがとうございます。 公開サーバはライブラリ等々古い&あまりいじりたくないので、自由に設定変更できる複数台のイントラサーバでいろいろためし、 うまくいきそうなものをNFSでマウントさせ公開できたらということを考えていました。 NFSで公開と、php等コピーでDBはリモート、両方ためして見ます。
- lowrider_2005
- ベストアンサー率40% (1520/3748)
No2です。 下記の書き込み、AとBが逆です。すいません。
お礼
ご回答感謝いたします。 確認なのですが、 >DBのアドレスをAに向ければ問題なのかもしれませんが。 この部分はそのまま >BのサーバにApacheを入れ、Aへのproxyとして動かすというのはどうでしょうか? この部分AとBが逆 という理解でよろしいでしょうか(自信なし)。 Aからxoops@Bが動くかどうか、とにかく試してみます。 その際MySQLのアクセス制限等の設定も気をつけてみるつもりです。 次にproxyですが、すいません、いまいち分かっていません.... 状況としては、ABともにapacheは稼動しています。リバースproxyということでしょうか? 少し考えて見ます。
- lowrider_2005
- ベストアンサー率40% (1520/3748)
Xoopsを理解していないので外しているかもしれませんが・・・ NFSでマウントするディレクトリにhtmlファイルやプログラムが入っているとしても、XoopsがローカルのDBにアクセスしようとするとエラーになるのでは? DBのアドレスをAに向ければ問題なのかもしれませんが。 それよりBのサーバにApacheを入れ、Aへのproxyとして動かすというのはどうでしょうか?
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
質問のタイトルからすると、イントラサーバを公開したい、というように取れますが、 内容的には、イントラサーバの公開でなくて、公開サーバからのファイルアクセスですよね。 公開サーバへマウントすれば良いだけなので、書かれた内容は実現可能です。 その際、イントラサーバに、公開サーバだけアクセスを認めるような 制限をかけておけば、外部からの直接のアクセスは排除できますので、 それで良いのではないでしょうか。 ただし、総てのapacheプロセスは、公開サーバで処理するので、誤解なく。
お礼
ご回答感謝いたします。 まったくとんでもないideaを思いついていたわけではないということでしょうか。 ただ、'すべてのapacheプロセスは公開サーバとして処理される'ということは、たとえばNFSマウント上の.phpを読んだら、マウントしたサーバ側のphpが動くわけですよね(考えたら当然か...) サーバ環境に依存したCMS等だと、うまく動かない気もしてきました... ちょっと試験的に試して見ます。
お礼
ありがとうございます。 NFSがお勧めできないとご意見、参考にいたします。 mod_rewriteですね。そういう情報を探しておりました!ちなみにURL書き換えで、外部からのリクエストを内部サーバに転送しても単純に見ることはできませんよね? たぶんネットワークの構造を知っていればすぐわかることだとは思うのですが... 試してみます。 xoopsがセキュリティ的に甘いという情報も参考にいたします。ただ、xoopsではなくてZopeでありました... すいません。 Zopeを既存のredhat9に入れるためには、システム標準のPythonとは別のバージョンのPythonを別途インストールする必要等があるので、ちょっと抵抗があります。 そこで、イントラのVine3.2なりCentOS4.2なりにZopeを構築し(うまく動作することは確認済み)、RedHat9への外部からのアクセスを転送できたらというようなことを考えておりました。 いろいろ試すことがありますが、最終的な結果はご報告いたします。