2016-08-09 5 views
0

Wordpressを実行する別のherokuアプリにNginxを利用してHerokuアプリを実行しています。ヘロクにNginxを使用してHerokuベースのWordpressを強制的に実行する

nginxのBuildpack:https://github.com/ryandotsmith/nginx-buildpack WordpressのHerokuのテンプレート出発点:リバースプロキシはWorpdressがない場合を除き、ほとんどの場合で動作します

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

    location/{ 
     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 /locations/ { 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host [wordpress-app].herokuapp.com; 
     proxy_pass http://[wordpress-app].herokuapp.com/locations/; 
     proxy_redirect default; 
    } 
    } 

https://github.com/xyu/heroku-wpここ

がプロキシサーバーのnginxの構成であると、逆リダイレクト。

[rails_app].herokuapp.com/locations/location1にアクセスすると、リバースプロキシ[wordpress_app].herokuapp.com/locations/location1が試行されます。しかし、WordpressはこのURLを[wordpress_app].herokuapp.com/locations/location1/にリダイレクトします(末尾に「/」を付け加えます)。 Wordpressがリダイレクトするとき、Nginxはポート番号がdynoポートである[rails_app].herokuapp.com:[portnumber]/locations/location1にリダイレクトしようとします。このような状況では、ポートに不正なアドレスが作成されるため、ポートにURLを挿入しないようにします。

私はこの問題がNginxの設定を変更することで解決できると信じていますが、私はまだ成功していません。

答えて

0

解決策は、port_in_redirect off;をサーバー構成に追加することでした。たとえば:

server { 
    port_in-redirect off; 

    location/{ 
     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; 
    } 
    } 
+1

は – moohkooh

+0

@moohkoohあなたはあなたの全体のnginxのファイルを投稿することができます:(私のHerokuの上では動作しません – adibble

+0

私はhttps://stackoverflow.com/questions/44586218/heroku-nginx-新しい問題を作成しました?オンポート80 – moohkooh

関連する問題