标签: http-proxy

如何使用nginx、capistrano和passenger部署React前端+Rails api后端

我正在部署一个应用程序,其中使用 React 前端创建create-react-app,并使用 Rails API 作为后端。我对配置网络服务器和代理不太了解,所以我不确定如何让它在生产中工作。我正在将应用程序部署到 Amazon EC2 实例上的 Ubuntu。Nginx 是网络服务器。我需要配置它,以便 Nginx 提供目录中的静态文件client/build,然后发送任何请求/api到端口 3001 上运行的 Rails 应用程序。现在 Nginx 正在提供 index.html 并且 Javascript 运行正常,但请求/api是没有去正确的地方。关于如何配置 Nginx 来做到这一点有什么想法吗?这是我的/etc/nginx/sites-enabled/default文件:

server {
       listen 80 default_server;
       listen [::]:80 default_server;
       server_name mydomain.com;
       passenger_enabled on;
       rails_env    staging;
       root         /home/ubuntu/app-name/current/client/build;
       index index.html;

       location /api {
          proxy_pass http://127.0.0.1:3001;
       }
}
Run Code Online (Sandbox Code Playgroud)

我缺少什么?如何让 Rails 应用程序在端口 3001 上运行并使所有请求都发送到/api该端口?我需要server在此配置中使用单独的块吗?

deployment ruby-on-rails nginx http-proxy reactjs

2
推荐指数
1
解决办法
4172
查看次数

Android:无法在防火墙后面建立httprequest

当没有防火墙时,标准的getUrlContent工作正常.但是当我尝试在防火墙后面进行操作时,我得到了例外.

我试过在AVD管理器中设置"http代理服务器",但它没有用.知道如何正确设置吗?

和btw:来自android文档"你可以使用-verbose-proxy选项来诊断代理连接问题." -verbose-proxy根本不是一个有效的选项.

protected static synchronized String getUrlContent(String url) throws ApiException {
    if(url.equals("try")){
        return "thanks";

    }
    if (sUserAgent == null) {
        throw new ApiException("User-Agent string must be prepared");
    }

    // Create client and set our specific user-agent string
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet(url);
    request.setHeader("User-Agent", sUserAgent);

    try {
        HttpResponse response = client.execute(request);

        // Check if server response is valid
        StatusLine status = response.getStatusLine();
        if (status.getStatusCode() != HTTP_STATUS_OK) {
            throw new ApiException("Invalid response from server: " …
Run Code Online (Sandbox Code Playgroud)

android firewall http-proxy

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

创建一个http代理,可以在将http响应发送到客户端之前修改它

我正在wget尝试从网上抓一些东西,但我不想跟随页面的一部分.我以为我可以设置一个代理,删除我不想处理的网页部分,然后再将其返回给wget,但我不确定如何实现这一点.

是否有代理可以让我轻松修改python或node.js中的http响应?

python proxy http http-proxy node.js

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

使用http-node-proxy创建转发https代理

我正在尝试创建一个能够处理HTTPS网站的转发代理.我正在尝试观察和修改不同站点的流量.这是我的代码,适用于http网站,但不适用于https网站.

httpProxy.createServer(function(req, res, next) {
   //custom logic
   next();
}, function(req, res) {
   var proxy = new httpProxy.RoutingProxy();
   var buffer = httpProxy.buffer(req);
   var urlObj = url.parse(req.url);
   req.headers.host = urlObj.host;
   req.url = urlObj.path;
   console.log(urlObj.protocol);
  setTimeout(function() {
     proxy.proxyRequest(req, res, {
        host: urlObj.host,
        port: 80,
        buffer: buffer,
    }
   )}, 5000);

}).listen(9000, function() {
console.log("Waiting for requests...");
});
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

http-proxy node.js node-http-proxy

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

了解请求模块中的proxies参数

requests在我的脚本中使用模块,我想了解方法中的proxies参数get().这个答案已经发布了以下代码来说明proxies参数的用法:

http_proxy  = "10.10.1.10:3128"
https_proxy = "10.10.1.11:1080"
ftp_proxy   = "10.10.1.10:3128"

proxyDict = {"http":http_proxy,  "https":https_proxy, "ftp":ftp_proxy }

r = requests.get(url, headers=headers, proxies=proxyDict)
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

  1. 为什么我们传递多个代理get()?怎么get()用它们?它一个接一个地尝试吗?

  2. 有代理人说,a.b.c.d:port我怎么知道它的协议类型?当您从hidemyass.com购买高级代理时,它ip:port仅以格式发送代理,并且不发送协议类型.那么我应该传递给requests.get()方法呢?

我有这些疑虑,因为我对代理一般都不太了解,以及它们是如何工作的.如果有人解释这一点,那将会很棒.

python proxy http-proxy python-requests

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

仅通过 Webpack Dev Server 代理 POST 请求(或任何其他 HTTP 方法)?

有没有办法只允许使用 Webpack Dev Server 代理 POST 请求?我的应用程序将 /login 用于 GET 请求,不幸的是,无论 HTTP 方法如何,它都被代理到我的其他主机。

    // Serve the Relay app
    const compiler = webpack(config);
    appServer = new WebpackDevServer(compiler, {
        contentBase: '/public/',
        proxy: {
            '/login': `http://localhost:${GRAPHQL_PORT}`, // only for POST?
        },
        publicPath: '/js/',
        stats: {
            colors: true,
            chunks: false,
        },
        historyApiFallback: true
    });
Run Code Online (Sandbox Code Playgroud)

http-proxy webpack-dev-server

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

Selenium WebDriver 3.0.1 chromedriver.exe 2.25 --whitelisted-ips=""

我想要一个能够打开 chrome 浏览器并能够通过代理打开 url 的解决方案。

我决定使用以下内容:

  • Selenium WebDriver 3.0.1 与 Java 1.8.0_111-b14

  • chromedriver.exe 2.25

我面临一个奇怪的问题:

“只允许本地连接。”

请看我困惑的原因

请看我的代码:

package seleniumFiles;

import java.util.Arrays;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.DesiredCapabilities;
public class SeleniumClass {


    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "C:\\work\\selenium-java-3.0.1\\chromedriver.exe");

        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability("network.proxy.http", "93.180.7.246");
        capabilities.setCapability("network.proxy.http_port", "8080");
        capabilities.setCapability("webdriver.chrome.args", Arrays.asList("--verbose --whitelisted-ips=''"));
        WebDriver driver = new ChromeDriver(capabilities);
        driver.get("http://www.whoishostingthis.com/tools/user-agent/");

    }

}
Run Code Online (Sandbox Code Playgroud)

在cmd中运行“chromedriver.exe --verbose --whitelisted-ips=''” sais“白名单允许远程连接<''>”这似乎有效,但我无法弄清楚我在代码中做错了什么.

任何想法或建议表示赞赏。

java google-chrome http-proxy selenium-chromedriver selenium-webdriver

1
推荐指数
1
解决办法
2万
查看次数

如何通过节点 http-proxy 记录 websocket 流量数据

我想通过 http-proxy 代理 websockets,我可以记录接收数据,但是我无法从代理获取发送数据。我能怎么做 ?

#!/usr/bin/env node

var wstarget = 'ws://localhost:8080/?r='+(Date.now() / 1000 | 0);

var httpProxy = require('http-proxy');
var http = require('http');

var proxy = httpProxy.createProxyServer({});

proxy.on('open', function (proxySocket) {
 proxySocket.on('data', function (data) {
    //console.log('\n'+data);
    console.log('',data);  // Just log the receive data! Can't get the Send data?
 });
});

var server = http.createServer();

server.on('upgrade', function (req, socket, head) {
  console.log("Proxying websocket connection to "+wstarget);
  proxy.ws(req, socket, head, {
   target: wstarget,
   changeOrigin: true,
   ws: true});
}); …
Run Code Online (Sandbox Code Playgroud)

logging traffic http-proxy websocket node.js

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

在 Node 中使用 http-proxy 时 UNABLE_TO_VERIFY_LEAF_SIGNATURE

全部,

我正在尝试创建一个简单的代理,它将所有请求逐字转发到另一台服务器。为此,我使用“http-proxy”npm。我正在尝试从本地服务器转到云服务器。起初,当我设置 http 代理时,我看到一个错误“无法验证第一个证书”。经过在线研究后,我发现这可能与我拥有自签名证书有关。因为它是自签名的,所以它不在证书存储中,因此无法进行验证。但是,因为我在开发过程中不需要这个,所以我添加了“secure: false”来忽略证书验证。我知道这对于生产来说是不安全的,但我现在只是想解决这个问题。这次更新实际上解决了这个错误。

现在,我收到另一个错误“UNABLE_TO_VERIFY_LEAF_SIGNATURE”。

任何人都可以帮我弄清楚如何消除这个错误吗?我尝试添加以下内容: process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'

但这仍然显示错误。我在 http 代理发出的事件中看到错误(有关此事件,请参阅下面的代码)。如果我深入了解“proxyRes”,我可以在 proxyRes -> 连接 -> 授权错误 -> UNABLE_TO_VERIFY_LEAF_SIGNATURE 中看到此错误

下面是我的代码:

'use strict'
require('dotenv').config({silent: true})
var util = require('util');
const loggerFactory = require('./utils/logger')
const express = require('express')
const defaultRouter = require('./routes/default')
var logger = loggerFactory.consoleLogger
const proxy = require('http-proxy');

module.exports = (config) => {
const app = express()
// app.use(loggerFactory.requestLogger())
app.set('json spaces', 2)
app.set('port', config.express.port)

app.use('', defaultRouter)

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'
var apiProxy = proxy.createProxyServer({});
var proxyUrl = process.env.HOMEINSPECTIONSERVER_URL;

app.use((req,res,next) …
Run Code Online (Sandbox Code Playgroud)

self-signed http-proxy node.js

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

使用节点 http 代理转发 http 代理

我正在使用 node-http-proxy 库来创建转发代理服务器。我最终计划使用一些中间件来动态修改 html 代码。这是我的代理服务器代码的样子

var  httpProxy = require('http-proxy')
httpProxy.createServer(function(req, res, proxy) {
  var urlObj = url.parse(req.url);
  console.log("actually proxying requests")
  req.headers.host  = urlObj.host;
  req.url           = urlObj.path;

  proxy.proxyRequest(req, res, {
    host    : urlObj.host,
    port    : 80,
    enable  : { xforward: true }
  });
}).listen(9000, function () {
  console.log("Waiting for requests...");
});
Run Code Online (Sandbox Code Playgroud)

现在我修改 chrome 的代理设置,并启用 web 代理服务器地址为 localhost:9000

但是,每次我访问一个普通的 http 网站时,我的服务器都会崩溃说 "Error: Must provide a proper URL as target"

我是 nodejs 的新手,我不完全明白我在这里做错了什么?

proxy http-proxy node.js web

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

NodeJS代理路由器表

我正在尝试使用路由器表创建一个NodeJS http代理.我看到一些使用http-proxy的例子并尝试这样:

var httpProxy = require('http-proxy');

var proxyTable = {};

proxyTable['testproxy.com/toto'] = 'google.com:80';
proxyTable['testproxy.com/tata'] = 'gmail.com:80';

var httpOptions = {
    router: proxyTable
};

console.log('Proxy Server Listening on port 80');
console.log('Requests to textproxy.com/toto (on port 80) are redirected to google.com:80');
console.log('Requests to textproxy.com/tata (on port 80) are redirected to gmail.com:80');

httpProxy.createServer(httpOptions).listen(80);
Run Code Online (Sandbox Code Playgroud)

仅供参考:testproxy.com参考127.0.0.1.

它似乎工作(它只拦截testproxy.com/toto和tata的请求),但当我尝试:

curl http://testproxy.com/toto
Run Code Online (Sandbox Code Playgroud)

我有一个NodeJS错误:

var proxyReq = (options.target.protocol === 'https:' ? https : http).reque
                              ^
TypeError: Cannot read property 'protocol' of undefined
    at Array.stream [as 3] (D:\workspace\Proxy W_S\node_modules\http-proxy\l
ib\http-proxy\passes\web-incoming.js:103:35) …
Run Code Online (Sandbox Code Playgroud)

proxy routing router http-proxy node.js

0
推荐指数
1
解决办法
4844
查看次数