TOPに戻る
鬱るんです
躁鬱病のITエンジニア「はまー」が心と体の模様を記した雑記帳。 大手IT企業で心身ともにぼろぼろになり退職した後、ほそぼそと働いたり事業を立ち上げようとして頓挫したり、作業所に通ったり障害者雇用で働いたりと紆余曲折したが、今は無職な毎日。

カテゴリー:IT関連

さっきの記事の続き、ブログ村に記事がアップされない理由を調べられるだけ調べてみた。例によってちんぷんかんぷんな人が多いかもしれないが。

Webサーバーのアクセスログを見ると、記事をアップするとすぐにブログ村からBotがやってきて更新情報を拾おうとしている。それは2段階に分かれている。

まず第1段階。更新情報のメタデータ(フィード)が入っているURLにまずアクセスが来る。正常に記事が取得していたときには、

"GET /blog/hammer/feed HTTP/1.1" 200 74945 "-" "blogmuraBot/2.0 (+https://blogmura.com)"

というようにまずステータスコード200(正常にアクセスできた)が返り、その内容を解析したBotが再び、

"GET /blog/hammer/archives/2020/05/04-15-50-09-14660.html HTTP/1.1" 200 16797 "-" "blogmuraBot/2.0 (+https://blogmura.com)"

というように個別の記事情報を取得しにくる。これが第2段階。

しかし、更新されなくなってからのログでは、最初のアクセスで、

"GET /blog/hammer/feed HTTP/1.1" 301 162 "-" "blogmuraBot/2.0 (+https://blogmura.com)"

とステータスコード301(リダイレクト)が返される。

リダイレクトとは、あるURLに来たアクセスを他のURLに転送することなのだが、このサイトはSSL化したため、http://で始まるURLはhttps://に転送される。その時にはログにはいったんhttp://のアクセスが301で転送され、次に転送先にアクセスして200が返るという2段構えになる。

"GET /blog/hammer/archives/2020/04/feed HTTP/1.1" 301
"GET /blog/hammer/archives/2020/04/feed HTTP/2.0" 200

というように301と200が続けて返される。

しかし、301が返されるということはこのリダイレクトが効いてないという可能性があるのだが、なぜリダイレクトされないかわからない。普通なら、

1.クライアント→サーバにアクセス
2.サーバ→クライアントに301を返して、こっちじゃなくてこのリダイレクトにアクセスしてください、と指定
3.クライアント(ああそっちなのね)→リダイレクト先にアクセス
4.サーバ→クライアント(リクエストしたURLの結果を返す)

という手順を踏むはずなのだが、怪しいのは3.のところ。クライアント(ブログ村)側が301ステータスで戻ってきても、その中に書かれているリダイレクト先にアクセスしないということなのか。

そんなことってあるのか?

ちなみにローカルサーバから手動でfeedにアクセスすると、こんな結果が返ってくる。

$ telnet www.yet-another-world.jp 80
Trying 163.44.187.86...
Connected to www.yet-another-world.jp.
Escape character is '^]'.
GET /blog/hammer/feed HTTP/1.1
Host: www.yet-another-world.jp

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 07 May 2020 06:26:59 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://www.yet-another-world.jp/blog/hammer/feed

<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

「HTTP/1.1 301 Moved Permanently」と301が返されていて、「Location: https://www.yet-another-world.jp/blog/hammer/feed」とリダイレクト先が書かれている。これにしたがって再度クライアントはリダイレクト先のURLにアクセスするはずなのだが、「そのように作られてない」ということかのか。

そんなことってあるのか?

とりあえずブログ村へ問い合わせを送ってみた。まともな回答が返ってくるかな。このサイト、ちょっとシステム的にはいまいちなのだ。

最近毎日のように技術的な話ばかり書いていてみんなついてこれないと思うが、今日も書いてみよう。

今日も午前中はずっとデバッグをやっていた。まだ全部トラブルが片付いていない。昨日の夜にサーバをSSL化したら、なぜかアクセス解析が表示されなくなった。いろいろ調べていたら、どうもSSL化したらHTTPのアクセスがサーバ側で強制的にHTTPSに書き換えられてしまうのに、アクセス解析アプリがその仕様に対応していなかったからだと判明。つまりはベースのURLが変わったからか?と思ってもう1つ別ディレクトリに新規に解析アプリをインストールしようとしたがうまくいかない。インストーラーさえ走らない。しかたがないから新規インストールは諦めて既存のやつが動くように四苦八苦。PHPのソースを追いかけて、ソースを4ヶ所変更したらうまくいった。こういうオープンソースなものに手を加えるのは本当はあまりよくない。アップデートしたら上書きされてしまう。けどまあこれは枯れたアプリでもう何年もアップデートはないので、まあいいか。

次はブログに表示されているカレンダーの、前後の月へのリンクの位置がおかしくなっているのを調査。どうもこれはサーバを移行したのが原因でなく、WordPressのアップデートによってどこかのタイミングでget_calendar()の仕様が変わったぽい。前はカレンダー全体がtableで作られており、前後の月へのナビゲーションはtfootに入っていたのに、それがいつの間にかtableの外に出されて<nav>で作られていた。う~ん、CSSの修正だけで対応できるか?いろいろやってみてうまくいかない。function.phpをいじってget_calendar()のフィルターを調整して<div>ブロックで囲み、なんとか制御しようと思ったがうまくいかず。前はどうやっていたかなあ。検索してみたら、CSSを、

display: flex;
justify-content: space-between;

とするだけでできた。何だ?flexって。何だ?justify-contentって。いつの間にできたのか・・・と思って手元の本を見てみたら、ちゃんと載っていて思い切り付箋が貼ってある。だめだ、脳みその老化が激しい。

しかしこのレンタルサーバー、使っていたら廉価な割にけっこう使えることがわかってきた。ちゃんとシェルやPerlのスクリプトも使えるし、ApacheやPHPのログも見れるので、今までローカルサーバで使っていたApacheのアクセスログを解析する独自のスクリプトがほぼそのまま使えた。ホームディレクトリのbinディレクトリにちゃんとPATHも通っている。これからもまだ隠された機能があるかもしれない。

今まで自宅サーバで運用していたので、SSL化することができなかった。SSL化しようと思ったら高い金を出して証明書を買わないといけない。年に数万円もするので個人で趣味でやるにはちょっと手が出せない。ちなみにSSLというのは通信経路を暗号化してセキュリティを高めるという技術。

レンタルサーバーに移行してから、無料のSSLが使えるようになったので設定してみた。有料のももちろん年2万いくらとかであってそっちの方が信頼性は高いのだが、SSL化しないよりだいぶましである。

それでWordPressで作ったブログもSSL化したいと思ったが、全体をhttpsにしないといけない。トップページだけhttpsにしても、中でリンクされている画像のURLがhttpだと完全にセキュアにならない。

これを解決するためにはDBの中とか全部いじらないといけないかと思ったが、調べていると「Really Simple SSL」というプラグインでお手軽にできると書いてあったので、試してみたら、無事https化に成功した。

今までは、ブラウザでこのブログを表示させるとChromeの場合は、

SSLでない場合

「保護されていない通信」と表示されていたのだが、SSL化することによって、

SSL化した場合

鍵マークになったのであった。めでたしめでたし。

今日はまたまたネット関連の調べ物をしていた。今のネット環境は、足回りはフレッツ光ネクストで、プロバイダはDTIシンプルマンションプランを単独で契約している。うちの団地ではVDSL接続で、ルーター機能付きVDSLモデム(ホームゲートウェイ)をNTTからレンタルしており、電話はひかり電話を使っている。

この状態から、DTI光という光コラボレーションモデルに変更できないか調べていた。光コラボレーションモデルとは2015年から始まったサービスで、要はプロバイダとインターネット回線の抱き合わせ販売でお得になるというやつである。「○○光」というのが増えたのはそのため。今までは固定IPアドレスが必要だったのでフレッツ光は単独で契約する必要があったが、サーバをレンタルサーバーに移行したのでその制約がなくなった。コラボレーションモデルにしたら料金が安くなるはずなので、いろいろ調べていた。安くはなるが、移行することで何か支障があると困る。それを調べていたが、いまいちわからない。

DTI光にすると、今までNTTに払っていた料金はDTIにまとめて払うことになるのだが、VDSLモデムのレンタル料金やひかり電話の通話料もDTIに払うの?そもそもVDSLモデムはそのままNTTからレンタルし続けるの?ひかり電話とは別に「DTIひかり電話」というのがあるが、これに変更するメリットはあるの?(料金は全く変わらない)その場合今のひかり電話対応VDSLモデムはそのまま使えるの?今の契約はIPoE接続の設定になっているが、DTI光に変えるとPPPoEに変わってしまうの?DTI光でもIPoEのサービスがあるようだが、移行する時にはじめからIPoEにできるの?手動ではルーターの設定をIPoEからPPPoEに戻せないが、その状態でPPPoE接続の契約になっても接続IDとパスワードが設定できないんだけど、そんなことはあるの?リモートからルーターの設定を書き換えてくれるの?(PPPoEからIPoEに変わるときにはリモートから書き換えられた)

などいろいろ疑問があったが、そんな細かいことは載ってない。FAQなどもないし、問い合わせフォームもどこにもない。電話で申し込みができるようだったので、とりあえずそこへ電話て質問しようとしたら「コロナの影響でしばらく電話受付は中止するよ」とのアナウンス。ああ、もうこんなところにも余波が。

まあいいや、なるようになるさと思って申し込んでみた。まずNTTのサイトから「転用の手続き」をいうのをやって「転用番号」というのを取得。これはフレッツ光の回線を光コラボ事業者のサービスに切り替えるための番号である。そして今度はDTIのサイトからDTI光に申し込み。先ほど取得した転用番号を入力した。「ご要望・ご質問」を書くフォームがあったので、上に書いたような疑問点を全部書いて、「この環境でスムーズに移行できない場合は申し込みを中止してください」と書いておいた。スムーズに移行できるのかなあ。ネットが使えない期間ができると困る。

最近毎日何かの環境をいじくるということをやっている。正直、楽しい。

昨日メール環境についてあれこれ書いたが、結局WebのGmailを使うことにした。これは今まであまり使ってなかったのだが、あれこれ試していたら、ちょっと挙動がおかしい。自分のプロバイダのアドレスにメールを出しても返ってこない。おかしいな、このGmailに転送されるはずなのに。レンタルサーバーに作ったメールアドレスもGmailに転送するように設定しているのに、そちらに出しても届かない。あれこれ試して、ネットで検索していたら衝撃の事実が。

「Gmailでは受信箱も送信済みのメールも、全てMessage-IDをキーにして管理しており、Message-Idが重複したメールが来たら削除される」

という仕様らしい。Message-Idとはメールを送信した時にそのメールを識別するためにヘッダーに付加されるIDで、全てのメールでユニークになるように設定される。つまり、Gmailからメールを送信したら、その時点でMessage-Idがつけられて「送信済み」に格納される。そしてそのメールが自分に返ってきたら、「送信済み」のメールと同じMessage-Idなので破棄されるということだ。こういう仕様だと、昨日書いたようにBccに自分のアドレスを入れてもなんの意味もない。

まあそれはいい。あれこれやってみて、Gmailの画面で「受信トレイ」でなく「すべてのメール」を表示させてやれば、自分が出したメールも一緒に表示されるのでBccに自分を入れる必要もなくなるということがわかった。だが、ネットで「これは不便だ」と言われているのが、メーリングリストに出したメールが自分に届かないこと。これも上と同じ原理で、自分がMLに投稿したメールが自分宛てに配信されても、送信メールと同じMessage-Idなので破棄されてしまう。これだとMLに正常に投稿されたかどうかわからないではないか。他の人に届いたのかわからない。

いろいろかゆいところに手が届かないなあ。なんかいい方法はないだろうか。とりあえず自分が今入っているのは、自分が管理している学生時代のサークルの同期MLだけで、それはGoogleグループを使っていてWebから投稿したメールが見れるのでそれで確認できる。いちいちそれを確認するしかないのかな。

メール環境はまだまだ苦戦しそうな予感がする・・・。