gpt4 book ai didi

javascript - 根据URL路径创建代理

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:52 26 4
gpt4 key购买 nike

我需要根据来自浏览器的一些 URL 创建代理,因为我对这个主题相当陌生,所以我不知道如何测试它......:(我需要某种方法来测试它并查看它是否确实有效我使用此博客中的以下代码

http://blog.nodejitsu.com/node-http-proxy-1dot0/

var httpProxy = require('http-proxy')

var proxy = httpProxy.createProxy();

var options = {
'foo.com': 'http://website.com:8001',
'bar.com': 'http://website2.com:8002'
}

require('http').createServer(function(req, res) {
proxy.web(req, res, {
target: options[req.headers.host]
});
}).listen(8000);

我需要的是,当您输入浏览器 localhost:8000 时,您将路由(代理)到具有不同路径的新服务器,如选项中所述。

最佳答案

如果您希望用户输入 foo.com,请转到 http://website.com:8001您需要使用 Nginx 等为 foo.com 设置虚拟主机。

Nginx 将托管 foo.com 和 bar.com 的虚拟主机,这将是 Node.js 应用程序的“代理通行证”。

当用户访问 foo.com 时,它会获取您的 Nginx 服务器,该服务器会将请求传递到您的 Node 应用程序,该应用程序会将请求代理到您在选项中设置的相对 URL。

如果您需要,我可以为您提供所需的 Nginx 配置。

Nginx 虚拟主机配置:

server {
listen 80;

server_name foo.com bar.com;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

当然你需要将 foo.com 和 bar.com DNS 指向 Nginx/Node 服务器。Node 应用程序非常好。你不再需要任何东西了。启动 Nginx 和 Node,就完成了。

关于javascript - 根据URL路径创建代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30951650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com