时间:2021-05-18
时下不少场景,都是申请一个 VPS 主机来托管运行 Web 项目的,小弟我也不例外,购买了一个小型的 Win 03 VPS 使用着。在使用的过程中,面临一个问题,就是同一类型的服务端环境还好——但如果是一个 PHP、一个 ASP、 一个 JSP 的三种类型的服务端项目并存着,该怎么分配唯一的 80 端口呢?因为商业 域名请求的,分发到 ASP 83 端口执行;…… 如此类推。当然这里的端口只说说明用而已,您可以任意配置,反正就是从 80 端口接收回来的请求,先作一次处理,进而分发。反向代理,通俗地讲,就是左手转右手而已。
每当提起反向代理器,人们通常一想到的就是 Nginx,但是今天我们暂时忽略大名鼎鼎的 Nginx,采用同样也是使用单线程、事件循环的服务端小弟——Nodejs 来达成。首先 Node 采用 JS 作服务端编程,而不是 Nginx 写配置或 Lua,比较符合我的味口,其次自己对 Node 也比较熟悉,配置各方面什么的更为顺手。
完成该项功能的是 node-http-proxy 包。下载、安装请键入:
npm install http-proxy安装完毕后,新建一个 proxy.js 文件,输入:
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) 方法进行请求分发Create your custom server and just call `proxy.web()` to proxy// a web request to the target passed in the options// also you can use `proxy.ws()` to proxy a websockets request//var server = require('http').createServer(function(req, res) { // You can define here your custom logic to handle the request // and then proxy the request. var host = req.url; host = url.parse(host); host = host.host; console.log("host:" + req.headers.host); console.log("client ip:" + (req.headers['x-forwarded-for'] || req.connection.remoteAddress)); proxy.web(req, res, { target: 'http://localhost:8080' });});console.log("listening on port 80")server.listen(80);若说使用代理服务器的代价,可能就是会比不用消耗多的资源,消耗多的 CPU 运算罢了。
使用问题:不能指定文件夹 proxy.web(req, res, { target: 'http://jb51.net:81/foo/' });
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
nginx是一个高性能的HTTP和反向代理服务器。因此常用来做静态资源服务器和后端的反向代理服务器。本文主要记录使用nginx去部署使用vue搭建的前端项目,项
前后端分离,使用nginx解决跨域问题前端:vue.js+nodejs+webpack后台:SpringBoot反向代理服务器:nginx思想:将前端代码打包,
简介Nginx是一个高性能的HTTP服务器和反向代理服务器.最常用的两个功能是反向代理和负载均衡.反向代理反向代理是正向代理的反面.普通的代理服务器是需要用户主
Nginx是一个免费、开源、高性能、可伸缩、可靠、功能全面且流行的HTTP和反向代理服务器,一个邮件代理服务器,以及通用的TCP/UDP代理服务器。Nginx的
NginxNginx简单介绍一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器Nginx命令参数nginx-t测试配置是否正确n