Node.jsのhttp-proxyでプロキシサーバーを作る

npmのhttp-proxyを使えば簡単に作れる。まずはインストールから。

npm install http-proxy

以下のファイルを作ってnode index.jsなどで起動した後、http://localhost:8080にアクセスするとhttp://example.comの内容が表示されます。

var http      = require('http');
var httpProxy = require('http-proxy');
httpProxy.createProxyServer({target: 'http://example.com'}).listen(8080);

SSLに対応したプロキシを作る事もできます。テスト的に証明書を作る時は以下を参考。
http://qiita.com/setouchi/items/8fa6bc87503b597c285f

この証明書を以下のように渡してあげてhttps://localhost:8080にアクセスすればSSL経由でコンテンツを閲覧できます。

httpProxy.createServer({
target: 'http://example.com',
ssl: {
key:  fs.readFileSync('valid-ssl-key.pem', 'utf8'),
cert: fs.readFileSync('valid-ssl-cert.pem', 'utf8')
}
}).listen(8080);

ちなみに上記ではX-Forwarded-Forが受け側に渡らない。渡したい場合はxfwdオプションでtrueを指定すれば良い。

httpProxy.createServer({
target: 'http://example.com',
ssl: {
key:  fs.readFileSync('valid-ssl-key.pem', 'utf8'),
cert: fs.readFileSync('valid-ssl-cert.pem', 'utf8')
},
xfwd: true
}).listen(8080);

以上のようなオプションがいろいろあって詳細な設定までが可能でした。
https://github.com/nodejitsu/node-http-proxy#options

参考
https://github.com/nodejitsu/node-http-proxy

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA