|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- # node-tunnel - HTTP/HTTPS Agents for tunneling proxies
-
- [![Build Status](https://img.shields.io/travis/koichik/node-tunnel.svg?style=flat)](https://travis-ci.org/koichik/node-tunnel)
- [![Dependency Status](http://img.shields.io/david/koichik/node-tunnel.svg?style=flat)](https://david-dm.org/koichik/node-tunnel#info=dependencies)
- [![DevDependency Status](http://img.shields.io/david/dev/koichik/node-tunnel.svg?style=flat)](https://david-dm.org/koichik/node-tunnel#info=devDependencies)
-
- ## Example
-
- ```javascript
- var tunnel = require('tunnel');
-
- var tunnelingAgent = tunnel.httpsOverHttp({
- proxy: {
- host: 'localhost',
- port: 3128
- }
- });
-
- var req = https.request({
- host: 'example.com',
- port: 443,
- agent: tunnelingAgent
- });
- ```
-
- ## Installation
-
- $ npm install tunnel
-
- ## Usages
-
- ### HTTP over HTTP tunneling
-
- ```javascript
- var tunnelingAgent = tunnel.httpOverHttp({
- maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets
-
- proxy: { // Proxy settings
- host: proxyHost, // Defaults to 'localhost'
- port: proxyPort, // Defaults to 80
- localAddress: localAddress, // Local interface if necessary
-
- // Basic authorization for proxy server if necessary
- proxyAuth: 'user:password',
-
- // Header fields for proxy server if necessary
- headers: {
- 'User-Agent': 'Node'
- }
- }
- });
-
- var req = http.request({
- host: 'example.com',
- port: 80,
- agent: tunnelingAgent
- });
- ```
-
- ### HTTPS over HTTP tunneling
-
- ```javascript
- var tunnelingAgent = tunnel.httpsOverHttp({
- maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets
-
- // CA for origin server if necessary
- ca: [ fs.readFileSync('origin-server-ca.pem')],
-
- // Client certification for origin server if necessary
- key: fs.readFileSync('origin-server-key.pem'),
- cert: fs.readFileSync('origin-server-cert.pem'),
-
- proxy: { // Proxy settings
- host: proxyHost, // Defaults to 'localhost'
- port: proxyPort, // Defaults to 80
- localAddress: localAddress, // Local interface if necessary
-
- // Basic authorization for proxy server if necessary
- proxyAuth: 'user:password',
-
- // Header fields for proxy server if necessary
- headers: {
- 'User-Agent': 'Node'
- },
- }
- });
-
- var req = https.request({
- host: 'example.com',
- port: 443,
- agent: tunnelingAgent
- });
- ```
-
- ### HTTP over HTTPS tunneling
-
- ```javascript
- var tunnelingAgent = tunnel.httpOverHttps({
- maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets
-
- proxy: { // Proxy settings
- host: proxyHost, // Defaults to 'localhost'
- port: proxyPort, // Defaults to 443
- localAddress: localAddress, // Local interface if necessary
-
- // Basic authorization for proxy server if necessary
- proxyAuth: 'user:password',
-
- // Header fields for proxy server if necessary
- headers: {
- 'User-Agent': 'Node'
- },
-
- // CA for proxy server if necessary
- ca: [ fs.readFileSync('origin-server-ca.pem')],
-
- // Server name for verification if necessary
- servername: 'example.com',
-
- // Client certification for proxy server if necessary
- key: fs.readFileSync('origin-server-key.pem'),
- cert: fs.readFileSync('origin-server-cert.pem'),
- }
- });
-
- var req = http.request({
- host: 'example.com',
- port: 80,
- agent: tunnelingAgent
- });
- ```
-
- ### HTTPS over HTTPS tunneling
-
- ```javascript
- var tunnelingAgent = tunnel.httpsOverHttps({
- maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets
-
- // CA for origin server if necessary
- ca: [ fs.readFileSync('origin-server-ca.pem')],
-
- // Client certification for origin server if necessary
- key: fs.readFileSync('origin-server-key.pem'),
- cert: fs.readFileSync('origin-server-cert.pem'),
-
- proxy: { // Proxy settings
- host: proxyHost, // Defaults to 'localhost'
- port: proxyPort, // Defaults to 443
- localAddress: localAddress, // Local interface if necessary
-
- // Basic authorization for proxy server if necessary
- proxyAuth: 'user:password',
-
- // Header fields for proxy server if necessary
- headers: {
- 'User-Agent': 'Node'
- }
-
- // CA for proxy server if necessary
- ca: [ fs.readFileSync('origin-server-ca.pem')],
-
- // Server name for verification if necessary
- servername: 'example.com',
-
- // Client certification for proxy server if necessary
- key: fs.readFileSync('origin-server-key.pem'),
- cert: fs.readFileSync('origin-server-cert.pem'),
- }
- });
-
- var req = https.request({
- host: 'example.com',
- port: 443,
- agent: tunnelingAgent
- });
- ```
-
- ## CONTRIBUTORS
- * [Aleksis Brezas (abresas)](https://github.com/abresas)
- * [Jackson Tian (JacksonTian)](https://github.com/JacksonTian)
- * [Dmitry Sorin (1999)](https://github.com/1999)
-
- ## License
-
- Licensed under the [MIT](https://github.com/koichik/node-tunnel/blob/master/LICENSE) license.
|