2

ポート 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とディレクトリが存在すると、photosApacheは私をこのディレクトリにスラッシュを追加してリダイレクトします。しかし、何らかの理由で、実際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ポートがこの種のリダイレクトで公開されるのはどうしてだろうか(しかし、他のすべての書き換えとリダイレクトは適切に機能します)。

4

2 に答える 2

2

nginx configで修正する方法を見つけました。Hostヘッダーにポートを追加する必要があります

proxy_set_header        Host            $host:$server_port;
于 2013-01-13T18:29:29.760 に答える
0

ばかげているように聞こえますが、ブラウザが 301 をキャッシュしている可能性があります。別のブラウザで開くことで同様の問題が解決しました。

一見すると、設定は問題ないように見えます

于 2012-12-11T23:47:38.097 に答える