在heroku上Nginx proxy_pass失败

时间:2017-09-01 00:14:52

标签: nginx heroku reverse-proxy forward

编辑: 搞清楚!我的配置还可以。这是因为我取消CNAME尚无效。过了一会儿它会自动映射Nginx。

=============================================== =========================

我尝试在heroku上使用Nginx进行屏蔽。它在我的输入域名中使用CNAME之前效果很好。

当我直接加密https://foobar.herokuapp.com/search-beta时,请求将转发到FORWARD_HOST,因为url正确。但是,当我尝试使用CNAME访问我的应用时(让我们说我们有https://www.foobar.comhttps://foobar.herokuapp.comhttps://www.foobar.com/search-beta,请求将重定向到我的FORWARD_HOST。

我有什么想念吗?任何人都可以给我一些提示吗?

感谢

我的Nginx配置

daemon off;
    #Heroku dynos have at least 4 cores.
    worker_processes <%= ENV['NGINX_WORKERS'] || 4 %>;

    events {
        use epoll;
        accept_mutex on;
        worker_connections 1024;
    }

    http {
        gzip on;
        gzip_comp_level 2;
        gzip_min_length 512;

        server_tokens off;

        log_format l2met 'measure#nginx.service=$request_time request_id=$http_x_request_id';
        access_log logs/nginx/access.log l2met;
        error_log logs/nginx/error.log;

        include mime.types;
        default_type application/octet-stream;
        sendfile on;

        #Must read the body in 5 seconds.
        client_body_timeout 5;

        upstream app_server {
            server unix:/tmp/nginx.socket fail_timeout=0;
        }

        server {
            listen <%= ENV["PORT"] %>;
            server_name _;
            keepalive_timeout 5;

            location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://app_server; 
            }

            location /assets {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                set $proxy_pass http://app_server;
                if ($http_referer ~ "search-beta") {
                    set $proxy_pass <%= ENV["FORWARD_HOST"] %>;
                }

                proxy_pass $proxy_pass;
            }

            location /search-beta {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For 
                $proxy_add_x_forwarded_for;
                proxy_pass <%= ENV["FORWARD_HOST"] %>;
            }
        }
    }

0 个答案:

没有答案