nginx:使用特定脚本将所有请求从一个域重定向到另一个域

nginx:使用特定脚本将所有请求从一个域重定向到另一个域

所以我有:

  • nginx
  • php-fpm

我需要的:

主域名:example.com

其他域名:otherexample.com

在主域中我们有脚本,它可以执行一些逻辑,当我们请求 otherexample.com 时需要请求 example.com/somescript.php?domain=otherexample.com

重要的是: 额外域的数量不受限制。对于每个附加域,要么创建配置副本,要么将新域添加到当前配置中。

域的所有其他参数也必须传递给脚本。例如:

otherexample.com/index.php?param1=1¶m2=someval

因此它应该将参数传递给原始脚本:example.com/somescript.php?domain=otherexample.com¶m1=1¶m2=someval

当前配置视图如下:

    server {
                listen       80;
                server_name  otherexample.com;



                # Main location
                location / {
                    proxy_pass         http://example.com/somescript.php?domain=$host&$args;

                    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    1000k;

                    proxy_connect_timeout      90;
                    proxy_send_timeout         90;
                    proxy_read_timeout         90;

                    proxy_buffer_size          4k;
                    proxy_buffers              4 32k;
                    proxy_busy_buffers_size    64k;
                    proxy_temp_file_write_size 64k;
                }
}

现在无法正常工作,错误“连接到上游时 worker_connections 不足“。 有任何想法吗?

答案1

该问题可以按如下方式解决:

       server {    
        listen       80; 
        resolver 8.8.8.8;

        server_name bla4.progger.ru;
        charset utf-8;

        location / {
            proxy_pass http://example.com/script.php?domain=$host;
            #proxy_redirect off;
        }
}

相关内容