UNPKG

3.79 kBMarkdownView Raw
1# node-tunnel - HTTP/HTTPS Agents for tunneling proxies
2
3## Example
4
5 var tunnel = require('tunnel');
6
7 var myAgent = tunnel.httpsOverHttp({
8 proxy: {
9 host: 'localhost',
10 port: 3128
11 }
12 });
13
14 var req = https.request({
15 host: 'example.com',
16 port: 443,
17 agent = myAgent
18 });
19
20## Installation
21
22 $ npm install tunnel
23
24## Usages
25
26### HTTP over HTTP tunneling
27
28 var agent = tunnel.httpOverHttp({
29 maxSockets: poolSize, // Defaults to 5
30
31 proxy: { // Proxy settings
32 host: proxyHost, // Defaults to 'localhost'
33 port: proxyPort, // Defaults to 80
34
35 // Basic authorization for proxy server if necessary
36 proxyAuth: 'user:password',
37
38 // Header fields for proxy server if necessary
39 headers: {
40 'User-Agent': 'Node'
41 }
42 }
43 });
44
45 var req = http.request({
46 host: 'example.com',
47 port: 80,
48 agent: myAgent
49 });
50
51### HTTPS over HTTP tunneling
52
53 var agent = tunnel.httpsOverHttp({
54 maxSockets: poolSize, // Defaults to 5
55
56 // CA for origin server if necessary
57 ca: [ fs.readFileSync('origin-server-ca.pem')],
58
59 // Client certification for origin server if necessary
60 key: fs.readFileSync('origin-server-key.pem'),
61 cert: fs.readFileSync('origin-server-cert.pem'),
62
63 proxy: { // Proxy settings
64 host: proxyHost, // Defaults to 'localhost'
65 port: proxyPort, // Defaults to 80
66
67 // Basic authorization for proxy server if necessary
68 proxyAuth: 'user:password',
69
70 // Header fields for proxy server if necessary
71 headers: {
72 'User-Agent': 'Node'
73 },
74 }
75 });
76
77 var req = https.request({
78 host: 'example.com',
79 port: 443,
80 agent: myAgent
81 });
82
83### HTTP over HTTPS tunneling
84
85 var agent = tunnel.httpOverHttps({
86 maxSockets: poolSize, // Defaults to 5
87
88 proxy: { // Proxy settings
89 host: proxyHost, // Defaults to 'localhost'
90 port: proxyPort, // Defaults to 443
91
92 // Basic authorization for proxy server if necessary
93 proxyAuth: 'user:password',
94
95 // Header fields for proxy server if necessary
96 headers: {
97 'User-Agent': 'Node'
98 },
99
100 // CA for proxy server if necessary
101 ca: [ fs.readFileSync('origin-server-ca.pem')],
102
103 // Client certification for proxy server if necessary
104 key: fs.readFileSync('origin-server-key.pem'),
105 cert: fs.readFileSync('origin-server-cert.pem'),
106 }
107 });
108
109 var req = http.request({
110 host: 'example.com',
111 port: 80,
112 agent: myAgent
113 });
114
115### HTTPS over HTTPS tunneling
116
117 var agent = tunnel.httpsOverHttps({
118 maxSockets: poolSize, // Defaults to 5
119
120 // CA for origin server if necessary
121 ca: [ fs.readFileSync('origin-server-ca.pem')],
122
123 // Client certification for origin server if necessary
124 key: fs.readFileSync('origin-server-key.pem'),
125 cert: fs.readFileSync('origin-server-cert.pem'),
126
127 proxy: { // Proxy settings
128 host: proxyHost, // Defaults to 'localhost'
129 port: proxyPort, // Defaults to 443
130
131 // Basic authorization for proxy server if necessary
132 proxyAuth: 'user:password',
133
134 // Header fields for proxy server if necessary
135 headers: {
136 'User-Agent': 'Node'
137 }
138
139 // CA for proxy server if necessary
140 ca: [ fs.readFileSync('origin-server-ca.pem')],
141
142 // Client certification for proxy server if necessary
143 key: fs.readFileSync('origin-server-key.pem'),
144 cert: fs.readFileSync('origin-server-cert.pem'),
145 }
146 });
147
148 var req = https.request({
149 host: 'example.com',
150 port: 443,
151 agent: myAgent
152 });