...pudding - diary


2011-10-03

_ [Software] nginx でリバースプロキシ + HOST ヘッダ書き換え

複雑な多段NATとDNSとの絡みでちょっと面倒なネットワークがあり、そこからあるサーバへ本来の名前でたどり着けない。

目的のサーバは Web アプリが動いており、VirtualHost 機能で機能を振り分けている。

目的サーバへは、 http://server1.subdomain.example.com/ でアクセスしたいのだけど、subdomain が使えない環境がある。

じゃあ途中に中継サーバを置いて、別の名前でいったん要求を受け付けて Host ヘッダ書き換えてやればいいじゃないですか。という考え。

リバースプロキシですな。仮の名である http://server1.example.com/ で要求受けて、リバースプロキシが本来の http://server1.subdomain.example.com/ へ代理でアクセスしてあげようと。

nginx が流行っているのでこれを使ってみる。

 

OS は CentOS 6.0 を使っている。

インストールは、nginx の Install に書いてある通りなのだけど、/etc/yum.repos.d/nginx.repo に以下の内容をそのままコピペ。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

そして

yum install nginx

で導入完了。

実際飛ばす設定は /etc/nginx/conf.d/server1.conf とかファイル作って

upstream sv1 {
server server1.subdomain.example.com;
}

server {
listen 80;
server_name server1.example.com;
proxy_set_header Host server1.subdomain.example.com;
location / {
proxy_pass http://sv1/;
}
}

そして起動

service nginx start

こんな感じで、簡単に別の HOST ヘッダを付けて要求が出せる。nginx 便利。

ニッチな使用方法だと思うけど。

昔ながらの delegated でも virtualhost 対応してて、同様なこと(Hostヘッダに別の FQND 入れる)はコマンドライン一発でできるのだけど動きが遅いのが悲しいところ。nginx さっくさくやで。


2011年
10月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Twitter : @moriya_jp