CentOS 8 Streamで 新しくSoftehterVPNの設定を行った際
ifcfgが使えなくなって、IPの設定ができなくなって非常に困った。
-bash: ifcfg: command not found
ってでて動かない場合
ip addr add ‘ip’ dev ${TAP_IF}
をしましょう
そうすると動きます
当社は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の設定で
WordPress アドレス (URL):medicalfields.jp
みたいな感じで普通は設定するけど、これだとテストで自分の環境だけで動かしたい場合、テスト環境じゃなくて本番環境のURLに飛ばされる(当たり前だけど)
でも、サーバー移行時のテストなどで、どうしても自分の環境だけで本番URLのままで試したい場合がある。
具体的にはテスト環境の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のサーバー移動がかなり楽になるので、ぜひ試してください!
現在当社では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 network–scripts
症状:systemctl restart network が動作しない
解決法:systemctl restart NetworkManager.service にかわった
とりあえず、ネットワーク関係がちょっと変わっている。
それ以外は一応問題なく動いた。
まぁCentOS8からyumじゃなくてdnfに変わったけど、しばらくはyumが使えるっぽい
あと、メインHPのWordpressの移行もやったからそれについても後日記事各予定です。
Windows hostsファイルを書き換えて、ローカルで確認ってやり方が凄く良かったから、それについて詳しく書きます!
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失敗してもなんか大丈夫そう)
/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インストールのためにしたこと
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でそれは前回の
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.
Replicate
and accept the creation of the new database.Once again for the acralyzer
couchapp:
Replicate
and accept the creation of the new database.がんばって読んでやる:)
2種類のdistrib-acralyzerとdistrib-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
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
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
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
でうまくいけるかも
最後に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
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>
入れて無事解決!