三つの連なる呪い

三つの連なる呪いというタイトルの元ネタは、もちろん胎界主の「三つの連なる真の名」だけど、自分の生活につきまとう呪わしい三要素を意識していた。脳の特性(婉曲表現)と、身体の慢性的な不調(頸椎や姿勢の歪みとそれに起因している気がする様々な異常)、あとまだ自覚しきれていない何かよく分からない要素があるはずで、それらをあわせて三つ。そういうつもりでこのブログを立て、そのまま一年ほど放置していたのだけど、今年になって本当に持病が増えて三つの呪いが現実となってしまった。かなしい。

ぽめ

 コミケ終わったのでぼちぼち通常生活に戻った方がよく、こことかも更新すべきなんだけど特に直近で書くことが思いつかず、更新するための何かをひねり出さないとみたいになって不毛になってきたので「不毛になりました」と書いて良しとすることにする。

 そういえば書斎のこれ作業用PCをリビングに移す計画をしていてCPデスクの購入を検討している。
www.ikea.com
これほしいけどリビングに置くPCデスクとしてはゴツすぎる。木目調のが欲しい。

Nginxのリバースプロキシの際にクエリ文字列を渡したい

直近でやらないといけない作業があるため逃避がはかどり、当面の課題 の件の問題がいくらか切り分けられたのでメモ。初学者の覚え書きなので公共的な価値はないです。解決しました(根本原因はよく分らなかった……)。

 

やりたいことはここに近い。

 

たとえばブラウザに

http://example.com/?SandBox

と打ち込んだら、Nginx(ポート80)のリバースプロキシで転送して

127.0.0.1:8080/?SandBox

Apache(ポート8080)に渡したい。

 

Nginxのコンフィグにはこう書いた。

server {
      listen 80;
      server_name example.com;


      location ~^/ {

            rewrite ^/(.+) $1 break;

      proxy_pass http://127.0.0.1:8080/$1;
      }
}

 

実際動かしてみると、リクエストの転送はされるのだけどwikiのトップページに飛ぶだけで?SandBox部分が無視される。

Apache側のログにはこう出る。

127.0.0.1 - - [12/Jun/2018:02:24:22 +0900] "GET / HTTP/1.0" 200 9520 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"

127.0.0.1 - - [12/Jun/2018:02:24:22 +0900] "GET /skin/pukiwiki.css.php HTTP/1.0" 200 8445 "http://example.com/?SandBox" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"

 

最初のGETリクエストのURIにはクエリ部分”?SandBox”が含まれておらず、このせいでwikiがクエリを受け取れず動作しないと認識している。CSSを取りに行く次のリクエストでは、リファラ部分に?SandBoxを含むURIが入っていて、ここがなんでこうなるのかもよく分かっていない。

何かミスや抜けがあるのかもしれないけど、これは別にこういうもので、そもそも根本的に自分がhttpの動きを理解できてないだけという気もする。正しく動作した場合のイメージも曖昧なので、もう少し調べてみるつもり。

 

追記1

ログフォーマットに%qを足しても何も表示されなかったので、やはりクエリが渡せてないように見える。

 

追記2

namazu-tech.hatenablog.com

やっぱり単純にproxy_passにURIを与えるだけだとクエリは渡せないということで正解っぽい。リンク先の記事には解決方法まで書いてあり、auth_requestモジュールを導入できれば見様見真似で動かすことはできるのかもしれないけど、かなり理解が追いついていないので安易にやり方だけ真似るのも危なそうで、どうしたもんかなーと思っている。

 追記3

そもそも目的は既にNginxの動いてるサーバでphpを動かすことが目的だったので、「Nginxへのリクエストをphpの動くApacheにリバースプロキシする」が駄目なら「Nginxでphpが動くようにする」を試せばいいだけだった。php-fpmを少しいじったらあっさり動いたので、今回の件はこっちの方法で解決しました(なぜかphp-fpmが使えない理由があると思い込んでいたけど、別にそんなことはなかった)。

 

 

当面の課題

とりあえず雰囲気でブログ立ててみたけど、継続的に使い続けるか含めどうするかあまり決めていない。当面の課題としては、このwikiを動かすところまで持って行きたい(もしくは完全に諦めたほうがいいと判断できるまで)。

http://example.com(動きました)

現状だと、とりあえずドメイン叩いてwikiのトップは表示できるものの、どこのリンクを触ってもまたトップに飛ばされるだけでwikiとしての操作が一切ができない。URIの?以降のクエリが効いてないっぽい。nginxへのアクセスをapacheにリバースプロキシしたり変なことしているので、その過程のどこかでクエリ情報が消えてるのかなと推測している。

サーバとかちゃんと触ったことなかったので、お勉強がてら個人用のpukiwikiを立ててみようとしたら想像以上に難渋してもう2ヶ月以上経っているという状況。明らかにやり方が致命的に悪い。基礎的な知識を身につけないまま行き当たりばったりで変に応用的なことをやろうとしているのが根本的な原因だと思うので、ここで何をやったか逐一まとめながら作業していければと思っている。

開設

魔王14歳の下僕です。

仕事や生活上の困難、心身の不調と対策、初学者レベルの技術の話などを書きます。自分用メモとしての目的が半分、状況の共有目的が半分。

今まではこういうのはTwitterに書いてましたが、見返しにくいし、文字数制限があるとやりにくいことも多いので、こういう場所もあった方がいいかなと思いとりあえず場所だけ取りました。実際どんな運用方針になるかは未定。

タイトルは好きな漫画『胎界主』の「三つの連なる真の名」というフレーズから。