ConohaのロードバランサーでHTTPのヘルスモニターがうまく動作しない

当社はNginxでConohaのロードバランサーを使用している。

今まではPINGでヘルスチェックを行っていたのだが、Nginxに障害が出た際に、Pingだと予備サーバーのNginxデーモンが落ちた際に、うまいことバランシング出来なくて、障害が発生したので、HTTPのヘルスチェックに切り替えることにした。

でもうまいこと行かない

原因はHTTPSでした。

今までNginxは

server {
listen 80;
server_name xxx.medicalfields.jp;

if ($http_x_forwarded_proto != https) {
return 301 https://$host$request_uri;
}
}

てな感じで設定したんだけど、どうもConohaだとHTTPでアクセスするとステータスコードが301(URL転送)になってヘルスチェック失敗になるっぽい

そのため親ディレクトリだけはHTTPでアクセスした際にリダイレクトしないように設定した

解決↓

server {
listen 80;
server_name xxx.medicalfields.jp;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ^~ /php/ {
if ($http_x_forwarded_proto != https) {
return 301 https://$host$request_uri;
}
}
}

ロードバランサーでHTTPのヘルスチェックに失敗する場合は、参考にしてください

 

WordPressのサーバー移動時に記事のURL(ドメイン)を変えることなく、新サーバーで事前テストする方法

タイトルが長くなったけど、つまりはWordpressの設定で

WordPress アドレス (URL):medicalfields.jp

みたいな感じで普通は設定するけど、これだとテストで自分の環境だけで動かしたい場合、テスト環境じゃなくて本番環境のURLに飛ばされる(当たり前だけど)

でも、サーバー移行時のテストなどで、どうしても自分の環境だけで本番URLのままで試したい場合がある。

解決法:

hostsファイルを書き換えましょう

具体的にはテスト環境のIPアドレスに書き換える

例えば当ブログだとmedicalfields.jpがドメインなので、これをテスト環境のIPアドレス(ローカル環境だと127.0.0.1とか)に書き換える。

そうすると、なんとローカル環境でもURLがきちんと逆引きされWordpressが問題なく動作する。

ちなみにWindowsの場合でしか試していないですけど、マックでも問題なくできるとは思う

やり方:

・Windows 10のhostsファイルの場所

C:\Windows\System32\drivers\etc\hosts

127.0.0.1 medicalfields.jp

と追加する

ちなみに管理者権限じゃないと書き換えれないです。また、上書きしたら直ぐに反映されます。

これを知っているだけでwordpressのサーバー移動がかなり楽になるので、ぜひ試してください!

CentOS7からCentOS8に移行した時にトラブったこと

現在当社ではConohaのVPSとオブジェクトストレージとロードバランサーを利用している。

その中でさらにVPSではDB(mariaDB)サーバー、HTTPS(Nginx)サーバーで分けている(DBはインターネットからは接続できないようにしている)。

セキュリティアップデートと動作が早くなるとのことで今回VPSをすべてCentOS8に変更してみた。

素直に動作するかなーと思ったら動作しなかったので、トラブった所をメモ

トラブった所

症状:カスタムのネットワークスクリプト(/etc/sysconfig/network-scripts/)で設定した、プライベートIPアドレスの設定がうまいこと行かない

nmtuiで確認したのに、なんかプライベートIPアドレスが設定されていなかったり設定されていたりする。

これ凄く悩んだ。なぜなら中途半端にスクリプトが動いたから

例えばcd /etc/sysconfig/network-scripts/

でロードバランサーを使用する場合はlo: <LOOPBACK>の設定をするんだけど、Loは有効になってなくて、eth1とかはスクリプトが動いたから(nmtuiでの設定は信用できない?)

ifcfg-eth1は動きます

解決法:network-scriptsが未インストール(deprecated)なのでインストールする

コマンド:yum install networkscripts

 

 

症状:systemctl restart network が動作しない

解決法:systemctl restart NetworkManager.service にかわった

とりあえず、ネットワーク関係がちょっと変わっている。

それ以外は一応問題なく動いた。

まぁCentOS8からyumじゃなくてdnfに変わったけど、しばらくはyumが使えるっぽい

あと、メインHPのWordpressの移行もやったからそれについても後日記事各予定です。

Windows hostsファイルを書き換えて、ローカルで確認ってやり方が凄く良かったから、それについて詳しく書きます!

 

ConohaVPSでCentOS7.3でローカルネットワークを作ったのにお互いに接続されなかった原因

ConohaVPSでCentOS7.3でローカルネットワークを作ったのにお互いに接続されなかった原因

なんかIPアドレスは割り当てられたやつ

例:

利用可能アドレス 192.168.11.1 – 192.168.11.254

の場合で割り当てられたIPが

IPアドレス 192.168.11.4

だった場合

CentOS7だとnmtuiでGUIで操作するのがええよ!ってことでそれでやった

Edit a connectionで増えたやつ選択して(もし増やしたはずのMACアドレスのNICがなかったらActivate a conecctionしよう。Activate失敗してもなんか大丈夫そう)

IPv4はManualでAddressesに192.168.11.3/24

/24が死ぬほど大事!

Gatewayに255.255.255.0と入力するとなぜか

PREFIX=32となります

それだと、つながりません

ip addr showで

brdが192.168.11.4となっちゃいます

自分で直接編集する場合は

# ディレクトリ移動
cd /etc/sysconfig/network-scripts

# 編集開始
vim ifcfg-eth1

でPREFIX=24にしましょう

あとEdit ConnectionでNever use this network for default routeはXにしてチェックいれましょう

そうしないとこのローカルネットワークでネットを繋ぎに行って、外部からSSHのログインできなくなります。

CentOS7.3でSoftEtherインストールのためにしたこと

CentOS7.3でSoftEtherインストールのためにしたこと
softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gzをhttp://www.softether-download.com/ja.aspx?product=softether
からDLしてWINSCPで/rootに転送
yum -y install gcc

 

1. 解凍
tar xzf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
cd vpnserver
2. ビルドするため、make コマンドを実行する。
make
ライセンス同意書に同意するための処理が始まる。 まずは、1 を入力する。
Do you want to read the License Agreement for this software ?

1. Yes
2. No

Please choose one of above number:
1
再度、1 を入力する。
Did you read and understand the License Agreement ?
(If you couldn’t read above text, Please read ‘ReadMeFirst_License.txt’
file with any text editor.)

1. Yes
2. No

Please choose one of above number:
1
再々度、1 を入力する。
Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:
1
自動的にコンパイルが始まり、動作環境がチェックされる。すべて [合格] であれば OK。
3. vpnserver ディレクトリ丸ごと /usr/local/ に移動させ、パーミションを修正する。
cd ..
mv vpnserver /usr/local/
cd /usr/local/vpnserver/
chmod 600 *
chmod 700 vpncmd vpnserver
これで、インストール完了。
systemd用の起動スクリプトを作成します。ポイントは Type を「forking」にする事です。
# cd /etc/systemd/system
# vi vpnserver.service

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy = multi-user.target


systemdがサービスを認識したか確認します。
# systemctl list-unit-files --type=service |grep vpn
vpnserver.service disenabled
systemdにサービスを登録し起動させます。
# systemctl enable vpnserver
# systemctl start vpnserver

ポートを開放する
firewall-cmd –add-port=443/tcp –zone=public –permanent
firewall-cmd –add-port=443/udp –zone=public –permanent

CouchDBにacralyzerをインストール

信じられないほど疲れた。

でもできた。

必要なものCouchDBでそれは前回の

CentOS 6.5 x64にCouchDBをインストールする方法

でみて

※古いとSSLが対応してないから新しいErlangを入れようね

インストールが完了したら

# adduser --no-create-home couchdb
# chown -R couchdb:couchdb /usr/local/var/lib/couchdb /usr/local/var/log/couchdb /usr/local/var/run/couchdb
# ln -sf /usr/local/etc/rc.d/couchdb /etc/init.d/couchdb
# chkconfig --add couchdb
# chkconfig couchdb on

でユーザーを作ってあげて起動時に起動するように設定

あと外部からのアクセスできるように

vi /usr/local/etc/couchdb/local.ini

[httpd]
port = 5984
bind_address = 0.0.0.0

にしましょう

 

さて起動!

couchdb start

起動したと思ったら

http://your-ip-address:5984/_utils/

にアクセスすると開ける

んでcouchDBにacralyzerを入れる!

せつめいしょ:

Fill the form with the following:

You can use whatever name you want instead of ‘myapp’ but you MUST prefix it with acra-. This naming convention allows Acralyzer to discover all acra-storage instances available on your couchdb.

  • Click on Replicate and accept the creation of the new database.

Once again for the acralyzer couchapp:

がんばって読んでやる:)

2種類のdistrib-acralyzerdistrib-acra-storageのDBを作るからね!1つだけじゃないからね!

次:

DBできたから安心と思って

http://acme.yourhost.com/acralyzer/_design/acralyzer/index.html.

にアクセス!!

見れた!

あれ????

/usr/local/bin/couchjs: error while loading shared libraries: libmozjs185.so.1.0: cannot open shared object file: No such file or directory
[error] [<0.227.0>] OS Process Error <0.6614.0> :: {os_process_error,
{exit_status,127}}

が無限ループで進まない?????

原因:SpiderMonkeyが見つからないこと

LD_LIBRARY_PATH

を登録しましょう

You can add it in /etc/bashrc, say, at the end.

export PATH=$PATH:/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

これで解決です。

 

さらにメモ

これで出来ないと思うけど連続の処理のコマンド

wget http://erlang.org/download/otp_src_R15B01.tar.gz
tar zxvf otp_src_R15B01.tar.gz
cd otp_src_R15B01
./configure && make && sudo make install
wget http://ftp.mozilla.org/pub/mozilla.org/js/mozjs17.0.0.tar.gz
tar -xvf mozjs17.0.0.tar.gz
cd mozjs17.0.0/js/src/
./configure
make && make install
wget http://mirror.tcpdiag.net/apache/couchdb/source/1.6.1/apache-couchdb-1.6.1.tar.gz
tar -xvf apache-couchdb-1.6.1.tar.gz
cd apache-couchdb-1.6.1
./configure
make && make install
adduser –no-create-home couchdb
chown -R couchdb:couchdb /usr/local/var/lib/couchdb /usr/local/var/log/couchdb /usr/local/var/run/couchdb
ln -sf /usr/local/etc/rc.d/couchdb /etc/init.d/couchdb
chkconfig –add couchdb
chkconfig couchdb on

CentOS 6.5 x64にCouchDBをインストールする方法

主に
https://www.digitalocean.com/community/tutorials/how-to-install-couchdb-from-source-on-a-centos-6-x64-vps
http://www.tecmint.com/install-apache-couchdb-in-rhel-centos-debian-and-ubuntu/
を参考にしてやった。
ほとんどコピペです。

Step 1 – ビルドツールをインストール

CouchDBをソースからコンパイルするときに必要なツールを入れる

とりあえず最新版に:

sudo yum -y update

次に Development Toolsを入れる:

sudo yum -y groupinstall "Development Tools"

CouchDBのコンパイルに必要なdependenciesもいれる: Erlang と SpiderMoney:

sudo yum -y install libicu-devel curl-devel ncurses-devel libtool libxslt fop java-1.6.0-openjdk java-1.6.0-openjdk-devel unixODBC unixODBC-devel openssl-devel

Step 2 – Erlangのインストール

Erlang は CouchDBにとって必要. だけどCentOSチームは公式パッケージを提供してない。ざんねん。だから自分でコンパイルしないとね。

最初に www.erlang.org/download.html にいって最新コードをダウンロード.

wget http://erlang.org/download/otp_src_19.0.tar.gz

ダウンロード完了したら,解凍する:

tar zxvf otp_src_19.0.tar.gz

解凍で来たら,コンパイルする:

cd otp_src_19.0
./configure && make

次にインストール.標準では, Erlangは /usr/local にあるよ:

sudo make install

Step 3 –  SpiderMonkey JS Engineのインストール

Mozilla’s SpiderMoney JavaScript Engine は 正常にCouchDB をコンパイルするために必要なんだよ.

CouchDB は Mozilla’s SpiderMoney version 1.8.5が必要,ここの FTPからダウンロードして:

wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz

ダウンロード完了したら,解凍する:

tar -zxvf js-1.8.0-rc1.tar.gz

解凍で来たら,コンパイルする:

cd js-1.8.0-rc1/js/src
./configure && make
sudo make install

なんかうまくいかない場合はdirでディレクトリみてちゃんと解凍できてるか見よう

なんか

wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
cd js-1.8.5/js/src     (なんかこれでいいかはdirで見る)
./configure && make
sudo make install

でうまくいけるかも

Step 4: CouchDBのインストール

最後にCouchDBのコンパイルしてインストール:

# wget http://mirror.tcpdiag.net/apache/couchdb/source/1.6.1/apache-couchdb-1.6.1.tar.gz
# tar -xvf apache-couchdb-1.6.1.tar.gz
# cd apache-couchdb-1.6.1
# ./configure
# make && make install

Error establishing a database connectionが出た問題

http://www.onamae.com/

のお名前.comが落ちてる問題はこっちは悪くないけど、うちの会社のHPが落ちてるのはこっちが悪い。

今まではサーバーの再起動で治ってたんだけど、どうも今回はそれでも治らない。

MySQLがError establishing a database connectionを吐くだけ。しかも信じられないほど重くなる。

sudo service mysqld stop

したらようやく作業ができる程度に軽くなった。

最初はMySQLの設定が悪いのかなーとか思ってログがなんかずっと削除されずに残ってるのが悪いのかなとおもって

vi /etc/my.cnf

でmysqldに

expire_logs_days = 5

を追加したけど治らず。

まぁHDDの空き容量はいっぱいあったからなんか違うかなとも思ってたけど

しかし、起動して数秒は動くからこれ、もしかして攻撃受けてるんじゃないかなと思ったらビンゴ!

xmlrpc.phpに信じられないアクセスが合った。

.htaccessに

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ “http\:\/\/0\.0\.0\.0\/” [R=301,L]
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

入れて無事解決!