Web サイトの一部のリダイレクトにプロキシ パス ポートが含まれていて、それらが役に立たなくなるという問題があります。私の構成は次のとおりです。
物理サーバー 1:
server {
server_name example.com www.example.com;
location / {
proxy_pass http://1.1.1.1:50493;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host "example.com";
}
}
物理サーバー 2:
server {
listen 50493;
server_name example.com www.example.com;
set_real_ip_from 1.1.1.1;
root /var/www/example.com;
index index.php index.htm index.html;
location / {
if ($http_host !~ "^example.com"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/(.*) http://example.com/$1 permanent;
}
rewrite /[^/]+/([0-9]+)-[^/]+.html http://example.com/showthread.php?t=$1 permanent;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example.com$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 600s;
fastcgi_buffer_size 512k;
fastcgi_buffers 16 512k;
}
}
通常、ブラウジングは問題なく動作します。サイトは期待どおりに閲覧できます。ただし、リダイレクトする一部のリンク (たとえば、ログイン アクションの後) は、ポート 50493 が含まれるリンクにリダイレクトされます。たとえば、 http://example.com:50493/index.phpを取得します。それはうまくいきません。私の質問は、ポートを削除するにはどうすればよいですか?
私が知る限り、フォーラム ソフトウェアは php セッション ポート変数からポートを取得します。port_in_redirect をオフに設定しようとしましたが、役に立ちませんでした。それが役立つ場合は、ここで強調表示されている問題: http://kb.parallels.com/en/114425も同様です。
ありがとうございました。