Nodejs实现简单的反向代理

var http = require(‘http‘), httpProxy = require(‘http-proxy‘);

// 新建一个代理 Proxy Server 对象
var proxy = httpProxy.createProxyServer({});

// 捕获异常
proxy.on(‘error‘, function (err, req, res) {
res.writeHead(500, {
‘Content-Type‘: ‘text/plain‘
});
res.end(‘Something went wrong. And we are reporting a custom error message.‘);
});

// 另外新建一个 HTTP 80 端口的服务器,也就是常规 Node 创建 HTTP 服务器的方法。
// 在每次请求中,调用 proxy.web(req, res config) 方法进行请求分发
var server = require(‘http‘).createServer(function(req, res) {
// 在这里可以自定义你的路由分发
var host = req.headers.host, ip = req.headers[‘x-forwarded-for‘] || req.connection.remoteAddress;
console.log("client ip:" + ip + ", host:" + host);

switch(host){

case ‘vmcc.oa.com‘:
proxy.web(req, res, { target: ‘http://vmcc.oa.com‘ });
break;
case ‘vmcdn.oa.com‘:
proxy.web(req, res, { target: ‘http://vmcdn.oa.com‘ });
break;
default:
res.writeHead(200, {
‘Content-Type‘: ‘text/plain‘
});
res.end(‘Welcome to my server!‘);
}
});

console.log("listening on port 80")
server.listen(80);

时间: 2024-10-07 12:58:27

Nodejs实现简单的反向代理的相关文章

nginx简单实现反向代理和负载均衡

一.环境 一台nginx做反向代理:192.168.88.142 两台tomcat机器做web:192.168.88.143  192.168.88.144 安装过程略,下一篇详细说明 二.nginx配置文件 nginx:192.168.88.142 user  www www;                     ##用户和组 worker_processes  1;               ##和cpu核数有关 events { use epoll;                

go实现简单的反向代理工具

最近Jetbrians系列IDE更新至2017.3版本,激活检测机制也变成了动态封禁域名,导致大部分域名激活被屏蔽了,所以找了下资料,根据ilanyu的代码,改了下地址,实现了本地反向代理激活服务器. 具体Go代码如下test.go: 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 32 33 34 35 36 package main import ( "flag"

配置简单的反向代理

注意点: 1.location如果不是直接写/,而是/xxx,那么访问的时候就需要输入你的域名/xxx.还有一个问题就是你的静态资源路径需要重写,或者干脆拿nginx当静态资源服务器.一般情况下,为了简单,如果需要代理多个域名或者说网站,可以建多个server,给多个域名,都是80端口 2.proxy_pass的地址http://xxxx.xxx.xxx.xxx:xxx/;最后的“/”要带上 3.确保端口开放了并且未被占用 4.windows下重启nginx可以用nginx.exe -s rel

servlet实现简单的反向代理

项目基于Spring 须要的依赖为: <dependency> <groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</artifactId> <version>1.7</version> </dependency> 只需要添加一个java文件即可,原理有待继续研究 package *.*.*.*

IIS简单的反向代理设置

下载IIS扩展 1.URL Rewrite 地址: https://www.iis.net/downloads/microsoft/url-rewrite 2.Application Request Routing 地址:https://www.iis.net/downloads/microsoft/application-request-routing 操作 原文 https://blogs.msdn.microsoft.com/friis/2016/08/25/setup-iis-with-

腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理

本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理. 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署. 一. 新版 nodejs 安装 这里强烈推荐使用 nvm (Node版本管理器),其它方式的安装或多或少都有些问题. 具体步骤如下: 1. 通过 git 指令下载nvm 执行指令如下,我们把nvm下载到 /root/git/ 中去(记得要先安装 git): [[em

nginx简单反向代理和负载均衡(ubuntu)

nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机    均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.130),u3(192.168.240.131)代表三台虚拟机 简单的反向代理配置:(u1反向到u2) u1的配置: server { listen 80 default_server; server_name  a.jh.net; index index.html index.php root /ho

nginx + IIS 反向代理

简化拓扑如图 我们这里只简单为描述原理来说明反向代理的过程 前端nginx反向代理true IIS server nginx反向代理配置代码如下.这里我只摘取其中一server,主要在header头,当后端只有一台IIS服务器且运行多个虚拟主机的时候适用. server { listen 80; server_name site1.cxsz.com; #charset koi8-r; #access_log logs/host.access.log main; location / { prox

(转)ubuntu apache2 的负载均衡和反向代理

apache功能其实很是强大,最近一段时间研究了下apache的反向代理和负载均衡,反向代理网协的外网出口和我的博客出口就是通过apache的反向代理实现的,总结一下,重点说说负载均衡的配置. 首先说先实验环境吧 操作系统:DEBIAN 5.03(Ubuntu也可以同理配置) 一.安装apache加载模块 apt-get install apache2然后进入到apache的配置目录cd /etc/apache2apache的反向代理和负载均衡其实利用的都是反向代理的原理,至于什么叫做反向代理可