レンタルサーバー間でのファイル共有・https通信

2016年06月14日Perl サーバー

CGIでhttps通信

同じハウジングに入るサーバーや、VPS等であれば、サーバー間でのファイル共有はラクチンですよね。

今回は、ホスティング会社が異なるAとBのサーバー間でファイルを共有したい、そんな依頼をいただいた時に作ったプログラムについて紹介します。

そもそもそのようなトリッキーなことをせずに、同じハウジングに入れれば良いじゃん!と言うのは無しでお願いします(笑)。

手段は沢山あるのですが、簡単に書けるperlのLWP::Simpleの説明です。

・サーバーAは、サーバーBへデータを送る側 
・サーバーBは、サーバーAからデータを受け取る側

で説明しています。

サーバAに設置するスクリプト

#サーバーBへデータを渡す

@array=("りんご","バナナ","ばなーな","ばなーぬ")

print"Content-type: text/html\n\n";

for (@array){
print "$_#kugiri#";
}

#kugiri#は、区切りです、@arrayの中身と被らなければなんでも構いません。

サーバBに設置するスクリプト

#サーバーAからデータを受け取る


$GET_URL="http://○○○.○○/○○" #サーバAに設置したスクリプトのURL

use LWP::Simple ();
$httpbody= LWP::Simple::get($GET_URL);


成功すれば、$httpbodyに「りんご_#kugiri#バナナ_#kugiri#ばなーな_#kugiri#ばなーぬ」が格納されます。

#kugiri#でspilitして利用して下さい。

https通信失敗検知は、if($httpbody eq ""){&error;}などでできます。

かなりシンプルなスクリプトですので簡易的にファイルをやり取りする際に便利です。

セキュリティー的には、ダダ漏れです。
サーバAに設置したスクリプトのURLが知られてしまえば、誰でもアクセス可能になりますので
LWP::Simpleを利用して大切な情報の通信は、しない方が無難です。

利用できるホスティングサーバーと利用できないサーバー

データを送る側は、perlが動けばどのようなサーバーでも問題ないです。

送り側は、print"Content-type: text/html\n\n"; で出力するだけですので。

LWP::Simple(受け取り側)では使えるサーバーとそうじゃないサーバーがあります。

NGの場合は、

use LWP::Simple ();
$httpbody= LWP::Simple::get($GET_URL);

で501エラーとなりますので直ぐにわかります。
以前にどこかのサーバーで利用できないことがあったのですが、すみません忘れてしまいました。

改めてテストしてみたところ

  • Bizメール&ウェブエコノミー:OK

  • さくらインターネットのライト・スタンダード・ビジネス:OK

  • エックスサーバーのX10:OK
全てオッケーでした。

■この記事について
はてなブックマークに追加  
レンタルサーバー間でのファイル共有・https通信
https://ezhp.jp/web/1466439377.html

2016年06月14日
Perl サーバー

コメント

コメントを残す

名前

メールアドレス※メールアドレスが公開されることはありません。

ページのトップへ戻る