#b-navbar { height:0px; display:none; visibility:hidden; }

ページ

2017年10月2日月曜日

外部サーバー(DB、SMTB、Redisなど)との疎通確認を簡単にする方法

<使用コマンド>

netcatコマンドというのを使います。コマンド自体は、「nc」です。

# nc


<使うシチュエーション>

・複数台のサーバーでアプリケーションを構成する場合、
それらの間の、通信の確認だけをまず行いたいという時があると思います。

・プログラムソースレベルの問題なのか、
ネットワーク関連の問題なのかを切り分けるのにも使えます。




<ncコマンドが入っていない時>

# which nc で、インストール状態を確認して、
入っていないようでしたら

# sudo yum install nc nmap
または
# sudo apt-get install netcat



<コマンドの文法>

# nc -v 対象ホスト(IPアドレス等) ポート番号

「-v」により、通信の詳細を表示させます




-----------------------------------------------------------------
<利用例>

■SMTPサーバーとの疎通確認

(例)
SMTPサーバー: mail.sample.com
ポート番号: 25

# nc -v mail.sample.com 25
出力
Connection to mail.sample.com 25 port [tcp/smtp] succeeded!
220 mail.sample.com ESMTP


接続はOKなようです。
Ctrl+C を打つと、もとに戻ります。


逆に、何もレスポンスが帰ってこないようでしたら、
ネットワーク的につながっていないということです。

確認ポイント:

  • 相手サーバー名は正しいですか
  • ポート番号は正しいですか
  • ファイアーウォールなどで閉じていませんか(こっち側)
  • ファイアーウォールなどで閉じていませんか(相手側)
  • 相手側サーバーから、接続許可は出ていますか
  • 相手側サーバーは、動いていますか






■DBサーバーとの疎通確認

(例)
DBサーバー: sql.sample.com
ポート番号: 3306

# nc -v sql.sample.com 3306
出力
Connection to sql.sample.com 3306 port [tcp/ms-sql-s] succeeded!


接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。





■Redis /Elasticache サーバーとの疎通確認

(例)
DBサーバー: hoge.cache.amazonaws.com
ポート番号: 6379

# nc -v hoge.cache.amazonaws.com 6379
出力
Connection to hoge.cache.amazonaws.com 6379 port [tcp/*] succeeded!
入力
set hoge 123 など


接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。





.

2017年6月24日土曜日

【Javascript】URLを分解する: parse the URL

PHPのparse_url関数のようなもの。


var url ="https://example.com/dir1/dir2/index.php?aaa=111/bbb&bbb=7#hello";

var protocol= url.split(':')[0];
var hash   = url.split('#')[1];
var query  = url.split('#')[0].split('?')[1];
var host   = url.split('#')[0].split('?')[0].split('/')[2];
var path   = url.split('#')[0].split('?')[0].replace(host,"").replace(/^https*:[\/]{3}/,"");


console.log( protocol ); // https
console.log( host ); // example.com
console.log( path ); // dir1/dir2/index.php
console.log( query ); // aaa=111/bbb&bbb=7
console.log( hash ); // hello

2017年6月21日水曜日

pythonで機械学習:windowsで「Intel MKL」DLL エラー

Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
Intel MKL FATAL ERROR: Cannot load mkl_core.dll


解決法:インテルのサイトから最新のMKLを入手する

https://software.intel.com/en-us/intel-mkl
から「w_mkl_2017.3.210.exe」をダウンロードする。
(メールアドレスの登録が必要です)


windows:
インストール先フォルダから
「 mkl_ 」で始まるdll類を、
C:\Windows\System32にコピー(上書き)する

解決した。


当方の環境:
Windows7-64bit, Python3.5.2 (anaconda) 64bit、mxnet

2017年5月31日水曜日

SSL設定「信頼されていません」エラーが出る原因

当方環境:
Apache2.2.15 + mod_ssl + openssl1.0.1


チェックリスト:

(1) SHA1でCSRを作っているため
(2) 鍵の長さが、2048ビット未満
(3) 中間証明書を指定し忘れている

(4) httpd.confの

    ・ conf全体のServerNameディレクティブ 
    ・ バーチャルホスト設定部分のServerNameディレクティブ
 
    が、同じドメイン名を指定していて
    コンフリクトしている。

(5) Apache2.4.8以降では、中間証明書の扱いが変わるらしく
    SSLCertificateChainFile は廃止される
 


今回ハマったのは、(4)でした。

バーチャルホストでいくらSSLCertificate類のディレクティブを
指定しても、一向に効きませんでしたが、その原因は
大元の(conf全体、バーチャルホストの外側)の、ServerNameが
優先して悪さをしていたっぽい。


参考: 設定後のhttpd.conf



ServerName dummy.hogehoge.jp:80


・中略


NameVirtualHost xxx.xxx.xxx.xxx:443

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES:!RC4:!DH
SSLHonorCipherOrder On


<VirtualHost xxx.xxx.xxx.xxx:443>
 SSLEngine on
 ServerName hogehoge.jp
 ServerAdmin webmaster@hogehoge.jp

 DocumentRoot /var/www/html/hogehoge
 CustomLog logs/access_log combined
 ErrorLog logs/error_log
 Options FollowSymLinks

 SSLCertificateKeyFile   /etc/httpd/conf/ssl.key/2017.key
 SSLCertificateChainFile /etc/httpd/conf/ssl.crt/2017.cer

 SSLCertificateFile      /etc/httpd/conf/ssl.crt/2017.crt

</VirtualHost>