開発:さて、それでこのCGIをXSOのWordPressサーバで動かしたいと思うのですが。
基盤:WordPress cgi でググる。・・・ なんだかよくわからないですね。でも、これって単に apache サーバだと思いますから、WordPress のお世話になる必要も無いかと。
開発:まあそうですね。
基盤:ただし!xsoのサーバには Go がありません。su にはなれませんから、apt とかではインストールできません。まあ、手作業でインストールすれば良いとは思いますが。
* * *
開発:xso のレンタルサーバって実体は何なんですかね?
基盤:Linuxで、カーネルは3.10のようです。
xso% uname -a
Linux xso 3.10.0-962.3.2.lve1.5.24.8.el7.x86_64 #1 SMP Fri Jan 4 06:55:54 EST 2019 x86_64 x86_64 x86_64 GNU/Linux
基盤:/usr/lib に yum なんちゃらがあるので、RedHat 系なのかなという気配がします。
xso% ls -ld /usr/lib/yum*
drwxr-xr-x. 2 root root 198 Jan 23 2019 /usr/lib/yum-plugins
基盤:ちなみにうちはレンタルサーバの最安プランでストレージの使用可能総量は300GBという契約になっていますが、このWordPressサーバぶんで物理的には8TBまでは行けるようです。
xso% df .
df: Warning: cannot read table of mounted file systems: No such file or directory
Filesystem 1K-blocks Used Available Use% Mounted on
8415360000 457725056 7957634944 6% /home/oreore
開発:これってSSDという話でしたっけ?8TBの塊なんて拝めるとは?
基盤:このマシンに他のどんなお客さんが居るのかはわかりませんが、ロードアベレージが1を超えているのは普通なので、まるでガラ空きというわけではないように思われます。
開発:メモリが26GBというのはなんだか微妙な数字。しかし、up 511 days って、結構な鉄人ですね。
基盤:CPUの処理能力的には並の下みたいな感じですね。
* * *
開発:では、CGIプログラムをこのサーバに置いてみましょう。とりあえず Goが無いので、.go はコンパイルして持っていきます。コンパイルする側のカーネルは5.3ですが、単にテキストファイルを読んでPNGに変換するだけのプログラムだからカーネルとか関係ないと思います。
開発:で、これを ~/public_html/its-more.jp/pointillism の下に置いて、おもむろにアクセス。
基盤:ふつうに動きますね。
開発:ただし。サーバ側でPNGをキャッシュしているらしく、打った点を含んだPNGがなかなか帰って来ません。
基盤:応答コードがほぼ 304 になりますね。Apacheかnginxの設定なのかな?そういえば、xso のWordPressにサーバ側のキャッシュを無効にするというプラグインが入ってて、有効にしてあります。「サーバーキャッシュの設定を有効にしたままで、新規の投稿をすぐに確認できるようになります。」という説明です。てことは、「そもそものサーバのキャッシュの設定を無効にする」のが簡単な対処法かなと思います。
開発:どういう設定なんですかね。
基盤:nginx server side cache で検索。… これですかね。
https://blog.runcloud.io/nginx-fastcgi-cache/
How To Use Nginx FastCGI Cache (RunCache) To Speed Up Your WordPress Performance
開発:サーバは xso が抑えてるからユーザには手が出なそうです。.htaccess 的なもので制御できないもんですかね。… そもそも何をキャッシュの対象に設定しているのやら。うーん、考えてみればこの cgi の出力自体は毎回更新されるし、*.cgi は除外されているのかも。じゃあ、生成した png を CGI として返してみましょう。
開発:で、どうかな?ぽち、ぽち、ぽち、…
基盤:作戦成功ですね (^-^)
開発:なるほど。普通に使えそうですね。自分の知らないCGIを勝手にキャッシュするような横暴はしなそうですから、これは一般的に通用する解決法と思います。
開発:というかそもそも、今どきのサーバでも普通に .cgi が使えるとは知りませんでしたけどね。
基盤:Go の処理系も持ってきてみますかね。さすがにカーネルの版が遠すぎるのが不安ですが。
開発:そうですね、いずれ手が空いたら試しましょう。
-- 2020-0703 SatoxITS