ポート 8097 で Apache を実行しており、Nginx がそれにリクエストをプロキシしています。
location / {
proxy_pass http://127.0.0.1:8097;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
}
Apache 構成 (意味のある部分):
<Directory /home/some/htdocs>
Options FollowSymLinks
Options -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
それで何が起こるか:私が行くwww.mysite.com/photos
とディレクトリが存在すると、photos
Apacheは私をこのディレクトリにスラッシュを追加してリダイレクトします。しかし、何らかの理由で、実際www.mysite.com:8097/photos/
にはブラウザにこのアドレスが表示されるようにリダイレクトされます。実際には想定されていません。
HTTP/1.1 301 Moved Permanently
Server: nginx/1.2.4
Date: Thu, 01 Nov 2012 10:28:13 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://www.mysite.com:8097/photos/
私はこれを修正できることを知っていますUseCanonicalName On
(最善の解決策ではありません-正規の名前がない場合はどうなりますか?)しかし、それでも、実際のApacheポートがこの種のリダイレクトで公開されるのはどうしてだろうか(しかし、他のすべての書き換えとリダイレクトは適切に機能します)。