标签: http-proxy

Node.js/Connect使用现有的Connect.SID

我有鸡和鸡蛋的问题.

我使用Node.js HTTPServer将Web请求路由到不同的Node.js工作者,具体取决于它们在请求标头中发送的Connect.SID cookie.

我的每个Node.js工作者都使用Connect/Express,并在第一次连接请求时分配Connect.SID cookie.

问题

显然,如果请求具有未向该节点实例注册的Connect.SID,则Connect会分配新ID.

所以,我有一个新的Connect.SID.我的HTTP代理记录ID 12345并将其路由到工作人员#5.Worker#5将新的ID 56344发送回浏览器.下一个浏览器请求 - HTTP代理看到一个全新的ID - 56344 - 记录它并发送给Worker#6.工人#6看到新的SID和....

Connect Session中间件太......简单......

app.use(express.cookieParser());
app.use(express.session({ secret: "niceTry", cookie: { /* ... */ } }));
Run Code Online (Sandbox Code Playgroud)

有没有办法将逻辑注入到新的会话ID的分配中,如果已经有未注册但有效的Connect.SID,它会跳过它?

cookies http-proxy node.js connect.js

3
推荐指数
1
解决办法
6093
查看次数

节点http-proxy-middleware不能与本地服务器一起使用作为目标

我有一个节点服务器,我正在代理我的api请求http-proxy-middleware,类似于这篇文章中发生的事情.当我代理到真正的生产服务器时,一切正常,但是当我将代理指向本地服务器时,它只是不起作用.

这是我的代码:

app.use('/_api', proxy({target: 'http://localhost:9000', changeOrigin: true}));

服务器上:

http://localhost:9000/hello 工作(我可以从我的浏览器访问它),但是,当我尝试从我自己的服务器访问它时,像这样:

http://localhost:3000/_api/hello

我正进入(状态:

不能GET/_api /你好

如果我用真正的服务器替换localhost:9000,一切正常......

javascript proxy http-proxy node.js node-http-proxy

3
推荐指数
1
解决办法
4002
查看次数

http-proxy-middleware 不转发完整路径

我正在尝试将 BrowserSync 配置为在服务器模式下工作,并使用http-proxy-middleware将我的 API 请求代理到在不同端口的同一台机器上运行的后端。我使用 Gulp 来启动 BrowserSync。

BrowserSync 在端口 8081 上运行。我的后端在 8080 上运行。

这是我创建代理中间件的方法:

var proxyApi = proxy('/api', {target : 'http://localhost:8080/api', logLevel : 'debug'});
Run Code Online (Sandbox Code Playgroud)

这是我从 Gulp 任务运行 BrowserSync 的方式:

// Init BrowserSync with proxies as middleware and based on the dest dir
browserSync.init({
    open: true,
    port: config.proxyPort,
    server: {
        baseDir: config.destDir,
        middleware: [proxyApi]
    },
    browser: "google chrome"
});
Run Code Online (Sandbox Code Playgroud)

输出 :

[HPM] Proxy created: /api  ->  http://localhost:8080/api
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错。

但是当我点击 eg 时http://localhost:8081/api/users,输出是:

[HPM] GET /api/users/123 -> http://localhost:8080/api …
Run Code Online (Sandbox Code Playgroud)

javascript proxy http-proxy node.js browser-sync

3
推荐指数
1
解决办法
5816
查看次数

如何转储HTTP GET请求的响应并将其写入http.ResponseWriter

我正在尝试这样做以转储HTTP GET请求的响应,并将相同的响应写入http.ResponseWriter。这是我的代码:

package main

import (
    "net/http"
    "net/http/httputil"
)

func handler(w http.ResponseWriter, r *http.Request) {
    resp, _ := http.Get("http://google.com")
    dump, _ := httputil.DumpResponse(resp,true)
    w.Write(dump)
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

我得到了一整页的google.com的HTML代码,而不是Google的首页。有没有办法可以达到类似代理的效果?

proxy go http-proxy

3
推荐指数
1
解决办法
1680
查看次数

使用HTTP连接到HTTPS请求的代理服务器是否安全?

我有一个用例,我想用连接到代理服务器HTTP,但基础请求实际上是GETHTTPS。我一直在阅读什么时候应该在HTTP代理服务器上使用CONNECT和GET HTTP方法?,但我想需要澄清一下。由于基本请求是否HTTPS意味着我“连接”到代理服务器时,它将自动打开a CONNECT并仅通过我的HTTPS请求?我主要关心的是,如果我HTTP用来连接到代理服务器,那么基础HTTPS请求就会以某种方式暴露,直到命中代理服务器。提前致谢。

https proxy http http-proxy proxy-server

3
推荐指数
1
解决办法
1478
查看次数

在 ansible playbook 中动态设置 HTTP_PROXY

我正在一堆不需要 http_proxy 的服务器和其他需要它的服务器上运行剧本(在不同的运行中)。

我已经阅读了https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html但它并没有真正回答这个问题......

这是一个例子:

- hosts: all tasks: - name: install vi become: true apt: name: vi state: present

我想在没有代理的情况下使用一组服务器(假设 server01-atlanta)启动它,并在另一个运行中使用一组服务器(假设 server01-berlin)使用代理启动它,并且不更改每次运行之间的代码(因此设​​法用库存变量来做)。

我会

proxy http-proxy ansible

3
推荐指数
1
解决办法
7111
查看次数

node-http-proxy,如何将新的查询参数传递给初始请求?

我试图将新的查询参数添加到我的node-http-proxy中的原始请求中,像这样直接调整req.query是行不通的:

app.all(path, function (req, res) {
    req.query.limit = 2;
    apiProxy.web(req, res, { target: target });
});
Run Code Online (Sandbox Code Playgroud)

limit目标未收到

我想通过这种方式隐藏 API 密钥,是否可以添加新的查询参数?

javascript http-proxy node.js express node-http-proxy

3
推荐指数
1
解决办法
3683
查看次数

连接到代理后面的 Azure 存储队列

我有一个 .NET Core 2.2 控制台应用程序可以连接到 Azure 存储队列。它在我的电脑上工作,但我无法让它在公司代理后面工作。我需要做什么?(我对存储帐户名称和密钥以及代理主机名进行了匿名处理。)

.csproj:

<Project Sdk="Microsoft.NET.Sdk">    
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <NullableContextOptions>enable</NullableContextOptions>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>    
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Management.Fluent" Version="1.21.0" />
    <PackageReference Include="Microsoft.Azure.Storage.Queue" Version="10.0.1" />
  </ItemGroup>    
</Project>
Run Code Online (Sandbox Code Playgroud)

包装类:

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
using System.Threading.Tasks;

namespace Queue
{
    public class Queue
    {
        public Queue(string connectionString, string queueName)
        {
            var storageAccount = CloudStorageAccount.Parse(connectionString);            
            var cloudQueueClient = storageAccount.CreateCloudQueueClient();
            CloudQueue = cloudQueueClient.GetQueueReference(queueName);            
        }

        private CloudQueue CloudQueue { get; }

        public async Task<string> PeekAsync()
        {
            var m = await CloudQueue.PeekMessageAsync();            
            return m.AsString;
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# azure http-proxy azure-storage-queues .net-core

3
推荐指数
1
解决办法
1551
查看次数

删除全局 http_proxy 而不重启 Android 设备

我使用以下代码通过命令行工具 adb 设置 Android HTTP 代理。

adb shell settings put global http_proxy <ip>:<port>
Run Code Online (Sandbox Code Playgroud)

但是,当我想撤消代理设置时,以下代码不会删除代理。尽管清除了这些系统属性,Android 设备仍会尝试连接<ip>:<port>

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port
Run Code Online (Sandbox Code Playgroud)

我必须重新启动 Android 设备才能删除代理。有没有办法在不重启设备的情况下清理代理?

安卓版本是7.0。

要重现此问题:

# Set up a proxy
adb shell settings put global http_proxy <ip>:<port>

# Remove them
adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

# Then open a browser, it …
Run Code Online (Sandbox Code Playgroud)

proxy android adb http-proxy

3
推荐指数
1
解决办法
1665
查看次数

NodeJS Express 反向代理 TLS_CERT_ALTNAME_INVALID 错误

我的端点上有一个反向代理,如下所示:

var express = require('express');
var app = express();
var httpProxy = require('http-proxy');
var apiProxy = httpProxy.createProxyServer();
var serverOne = 'https://idena.navarra.es/ogc/wms?';

app.all('/idena', function (req, res) {
  apiProxy.web(req, res, {target: serverOne});
});

app.listen(3000, function () {
  console.log('Working!');
});
Run Code Online (Sandbox Code Playgroud)

/idena收到请求时,服务器会抛出如下异常:

错误 [ERR_TLS_CERT_ALTNAME_INVALID]:主机名/IP 与证书的替代名称不匹配:主机:本地主机。不在证书的 altnames: DNS:idena.navarra.es, DNS: www.idena.navarra.es at Object.checkServerIdentity (tls.js:235:17) at TLSSocket.onConnectSecure (_tls_wrap.js:1061:27)在 TLSSocket.emit (events.js:189:13) 在 TLSSocket._finishInit (_tls_wrap.js:633:8)

我该如何解决这个问题?猜测是由于https但不知道如何避免这种情况,谢谢!

javascript ssl http-proxy node.js express

3
推荐指数
1
解决办法
2510
查看次数