web-dev-qa-db-ja.com

nginxでヘッダー(HTTP)を追加して使用する

2つのシステムを使用しています(両方ともNginxロードバランサーと1つがバックアップとして機能します)。

いくつかのHTTPカスタムヘッダーを追加して使用したい。

以下は両方の私のコードです。

upstream upstream0 {
    #list of upstream servers
    server backend:80;
    server backup_load_balancer:777 backup;
    #healthcheck
}

server {
    listen 80;
    #Add custom header about the port and protocol  (http or https)
    server_name _;

    location / {
        # is included since links are not allowed in the post
        proxy_pass "http://upstream0;"
    }
}

バックアップシステム

server {
    listen 777;
    server_name _;
    #doing some other extra stuff
    #use port and protocol to direct
}

どうすればそれを達成できますか?

41
mohan

ヘッダーを追加するには、ヘッダーを追加するロケーションブロックに次のコードを追加します。

location some-location {
  add_header X-my-header my-header-content;      
}

明らかに、x-my-headerおよびmy-header-contentを追加したいものに置き換えます。そして、それがすべてです。

91
cobaco

アップストリームヘッダー($ http_で始まる名前)と追加のカスタムヘッダーを使用できます。例えば:

add_header X-Upstream-01 $http_x_upstream_01;
add_header X-Hdr-01  txt01;

次に、コンソールに移動して、ユーザーのヘッダーでリクエストを行います。

curl -H "X-Upstream-01: HEADER1" -I http://localhost:11443/

応答には、サーバーによって設定されたX-Hdr-01と、クライアントによって設定されたX-Upstream-01が含まれます。

HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Mon, 30 Nov 2015 23:54:30 GMT
Content-Type: text/html;charset=UTF-8
Connection: keep-alive
X-Hdr-01: txt01
X-Upstream-01: HEADER1
8
shcherbak