外部ポートとは
インターネットからのアクセスで
はてなBlogの場合はhttpなのでport:80になります
内部ポートとは
インターネット上ではないサーバーのポートです
例えば社内サーバーとかロードバランサ配下が該当します
問題の事象
負荷分散などをおこなっていると
外部ポートと内部ポートがちがう場合があります
例
外部ポート
http://XXXXX.com/
内部ポート
http://192.168.1.111:8081/
このような環境の場合にトレイリングスラッシュ(URLの末尾に付ける「/」のこと)
なしのリダイレクトが発生するとpotr付きのURLにリダイレクトされてしまいます
例
http://XXXXX.com/test
http://XXXXX.com:8081/test
なお現象は、8081のポートを外部ポートとして
うけるようにしていない場合、ログに残らないです
(せめてリダイレクト元のログが残ってくれれば気がついたのですが)
原因
受け取ったport(内部では8081)を
使用してリダイレクトしている
対応
WEBサーバーの種類によってことなります
apacheの場合
httpd.confのVirtualHostに
ServerNameを追加する
<virtualhost *:8081=""> DocumentRoot "/var/www/XXXXX_wwwroot" ServerName http://masalib.com:80 ←※追加 ・ ・ ・ </virtualhost>
nginxの場合
server { port_in_redirect off; }
所管
5年間ぐらいapacheなどを触っているが
トレイリングスラッシュ(URLの末尾に付ける「/」のこと)
のあり、なしで動きがちがう事を知らなかった
ログに残らないなんて
気がつかねーーーーよ!!!
参考サイト
hogem.hatenablog.com