4

我遇到了一个问题,即网站上的某些重定向包含代理通行端口,使它们无用。我的配置如下:

物理服务器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 设置为 off,但无济于事。如果有帮助,这里强调的问题:http: //kb.parallels.com/en/114425是类似的。

谢谢你。

4

3 回答 3

5

in your nginx.conf

http {

port_in_redirect off;

}
于 2013-07-18T15:01:30.737 回答
0

它告诉您如何在您提供的链接中解决您的问题。改变:

<?php echo $VAR->domain->asciiName ?>:<?php echo $OPT['ssl'] ? $VAR->server->webserver->httpsPort : $VAR->server->webserver->httpPort ?>"

<?php echo $VAR->domain->asciiName ?>"

您必须在您的应用程序中而不是在 Nginx 中解决此问题。

您的应用程序正在生成指向端口 50493 的链接,如下所示。除非您要设置一个遍历所有 HTML 并替换为的内容过滤器,否则example.com:50493/path/of/urlexample.com/path/of/url必须在应用程序中修复它。

于 2013-05-24T00:40:15.230 回答
0

尝试即时替换

HttpSubModule

sub_filter      
  'example.com:50493/' 'example.com/' ;
sub_filter_once off;

这应该可以解决问题。

于 2013-05-26T13:21:20.300 回答