次のセットアップを行い、すべての/ api要求を別のサーバーに送信するように構成しました。
location /api {
proxy_pass https://myapp.herokuapp.com;
rewrite ^/api/(.*) /$1 break;
}
私のアプリはヘッダー(USER_CUSTOMER)を送信します。機能するアプリからmyapp.herokuapp.comと直接通信するときに、プロキシサーバーを介してリクエストすると、APIサーバーで値がNULLと表示されます。
以下はNGINXで動作しますが、USER_CUSTOMERの値を設定できるようにするためにアプリが必要です。
location /api {
proxy_pass https://app.herokuapp.com;
proxy_set_header USER_CUSTOMER ABC;
rewrite ^/api/(.*) /$1 break;
}
将来的に送信する追加のヘッダーがある可能性があるため、プロキシからAPIサーバーにすべてのヘッダーを渡すためのフラグがあることを期待しています。
Ubuntu
nginx/1.1.19
ヘッダー属性USER_CUSTOMERは無効な構文です。アンダースコアはヘッダー属性では無効です。
回避策はありますが、最善の解決策は、属性を有効な構文に書き換えることです。
回避策は、configでサーバー名を指定する場所を次のように設定することです。
underscores_in_headers on;
あなたが探していると思いますproxy_pass_request_headers
オプション。オンに設定します。
location /api {
proxy_pass_request_headers on;
proxy_pass https://app.herokuapp.com;
proxy_set_header USER_CUSTOMER ABC;
rewrite ^/api/(.*) /$1 break;
}