docker-compose.ymlのenvironmentに下記の設定を追加しました。
日本語化のパッケージなどをインストールするのにProxyを通る必要があったので。
HTTP_PROXYHOST=xxxx.co.jp
HTTP_PROXYPORT=0000
HTTPS_PROXYHOST=xxxx.co.jp
HTTPS_PROXYPORT=0000
Hello World!!
docker-compose.ymlのenvironmentに下記の設定を追加しました。
日本語化のパッケージなどをインストールするのにProxyを通る必要があったので。
HTTP_PROXYHOST=xxxx.co.jp
HTTP_PROXYPORT=0000
HTTPS_PROXYHOST=xxxx.co.jp
HTTPS_PROXYPORT=0000
簡潔に言うと、sudoしたときに環境変数が引き継がれないのでproxy設定も引き継がれませんって話。
下記のファイルを編集してproxy設定を引き継いでください。
$ sudo visudo /etc/sudoers.d/proxy
Defaults env_keep="http_proxy"
Defaults env_keep+="https_proxy"
まず、制約事項としてさくらVPSの最小プランを選択しました。
なので、その環境で動作する必要がありますので、軽量であることが条件となります。
実際に何度もOSの再インストールをして試してみましたが、そもそも各種ライブラリなどがきちんとインストールできないとかありましてね。。。
とりあえず、脆弱性の面でPHPなどは避けておきたいので、自分の中ではRubyかPythonかなと見当をつけていました。
何度もOS再インストールを繰り返しながら何とかインストールができそう!ってところまで行きましたが、結局はメモリが足りずに断念しました。
結構時間もかかっていたのに残念です。
潤沢に資金があればプランをスケールアップして採用するのもアリでしたね。
Rubyの次点として考えておりましたが、Rubyがダメそうとなって本格的に検討しました。
Pythonで軽量なWEBアプリケーションが作成できるのかなと思っていましたが、FastAPIというものがあるらしく、それを使おうと思います。
さくらVPSにはPython向けセットアップスクリプトがあったんですけど、全然インストールされてないんですよね。。。
サーバーサイドは諦めて、アプリにデータを含めてリリースする方が早くリリースできそうなんですよねー。
主題のとおり、HTTPステータスに502を返却していたので、原因を調査して対策した話。
まずはネットで502ってどんな時に出てくるの?ってのを調べました。
色々見て回ったところ「負荷がかかっている」みたいなのを見て、確かに日中帯に出現していて夜間帯は全然出ていない、というところで納得しました。
が、
実は負荷ではなく、別な原因がありました。
原因はTomcatのコネクションプールサイズの最大数と最小数が異なるためです。
Tomcatのコネクションプールは、使用していないコネクションを自動で開放(切断)します。
なので、使用していないコネクションを開放するタイミングでリクエストが来た時はそのまま開放しちゃうので502が発生してしまうということみたいですね。
ちなみに同様の事象なのかはApacheのエラーログを見れば分かると思います。
下記のようなエラーが出ていると思うので。
proxy: error reading status line from remote server...
ちょっと気になったのは、色々サイトを見て回ったけど、何故か「Apacheにコネクションプールを使用しない設定にしましょう」(proxy-initial-not-pooledの有効化)って対策が出てくるんですよね。
便利な機能をOFFにしましょうというのは納得できなかったのでもっと調査した結果、コネクションプールの最大数と最小数を同数にしました。
原因が不要なコネクションを閉じてしまうというなら、常にコネクションを一定量に保つようにしておきましょうということですね。
自力で思いついた訳ではないんですけど、ここに書いた方が記憶に残りそうだし、同じことでつまずいている人がいた場合に他の対策方法を提示できるかもしれないので。(^^)
※バックエンド側に設定する方法があると思いますが、それはバージョンやフレームワークとかミドルウェアで変わってくると思うので記載はしません。
検証環境を利用していて、誤って本番環境にアクセスしてしまわないかは心配ですよね。
誤って本番環境にアクセスしてゴミデータを登録したりとか、ありそうですよね。
Chromeの設定でサイトごとに画像を表示させない設定ができるので、その設定を試してみてはいかがでしょうか?
右上の3点リーダーから「設定」
→左のメニューから「プライバシーとセキュリティ」
→「サイトの設定」
→「画像」
→「画像の表示を許可しないサイト」に対象のURLを追加。
最近では、画像を全く使っていないというようなサイトは少ないと思いますので、
「画像が表示されない→本番環境だ」となるのではないでしょうか。
昔、担当したことのあるシステムでは検証環境だけ背景色が変わっていたりしていましたが、
これならコードをいじらなくて良いので、お手軽かなと思います。