我正在尝试使用需要基本 HTTP 身份验证的服务器提供的服务,但是我使用的应用程序不支持身份验证。我想要做的是创建一个代理,使我的无身份验证应用程序能够通过代理(将添加身份验证信息)连接到需要身份验证的服务器。我确信这是可以做到的,但是我对那里的代理数量感到不知所措,无法找到如何做到这一点的答案。
基本上,我想要做的就是让代理服务于这个 URL:
http://username:password@remoteserver/path
作为这个网址:
http://proxyserver/path
我可以在 Linux 上运行它,但如果我也可以在 Windows 上运行它,那就更好了。开源或至少免费是必须的。一个很大的好处是它的设置相当简单。
我正在设置 Squid 转发代理,我想知道是否可以将 Squid 配置为从我的 Web 浏览器到 squid 的连接是 https,无论从 squid 到目标网站的连接是 http 还是 https。换句话说,即使我只是通过该代理浏览普通的 http 网站,我也希望对从 Web 浏览器到转发代理的连接进行加密。
可以做到吗?
我的开发人员机器上运行着几个 Web 应用程序。它们模仿我们托管在子域上的生产 Web 应用程序。例如,考虑:
api.myserver.com - is mimicked by 127.0.0.1:8000
www.myserver.com - is mimicked by 127.0.0.1:8008
and so on...
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到,在我的 Windows 7 机器上,对“api.myserver.com”的 HTTP 调用(注意缺少端口号)被重定向到 127.0.0.1:8000 等?请注意,这需要同时应用于客户端调用(在浏览器中)和服务器端调用(从 IIS 到 Python 开发服务器,反之亦然)。
我是否需要在本地运行代理才能实现此目的?你能推荐一个这样的工具吗?
性能方面,将请求从 Apache VirtualHost 重定向到 Node.js 实例是否有意义?代理是否抵消了令人敬畏的 Node.js 性能?
仅供参考:我还需要在同一台机器上解析和运行几个 PHP Web 应用程序,这是我什至考虑使用反向代理的唯一原因。
根据我的研究,Nginx 的开销较小,因此性能稍好一些,但不幸的是不支持 HTTP/1.1。
我还考虑过让 Node.js 作为反向代理并向 Apache 发送某些请求(例如,它然后处理 PHP 文件),但我听说可能存在很多安全问题。
所以我今天在配置 nginx 时遇到了一个奇怪的问题。我试图匹配这样的位置:
location ~ ^/([0-9]+)/(.*) {
# do proxy redirects
}
Run Code Online (Sandbox Code Playgroud)
...对于像“ http://my.domain.com/0001/index.html ”这样的 URL 。
这条规则从来没有匹配过,尽管事实上它应该是所有权利。根据这个文档,我花了一段时间才弄清楚,需要引用正则表达式中的某些字符。问题是,文档是用于重写的,它专门调用了大括号,而不是方括号。经过大量涉及大量咒骂的实验后,我发现我可以通过像这样引用正则表达式来解决问题:
location ~ "^/([0-9]+)/(.*)" {
# do proxy redirects
}
Run Code Online (Sandbox Code Playgroud)
是否有 nginx 需要引用正则表达式的字符列表?或者这里是否还有其他我完全失踪的事情?这是我的第一个 nginx 配置工作,所以很可能我误解了一些东西......
有几个锁定的独立 Windows 2008 R2 服务器(不在域中;没有 WSUS),它们拒绝在每天早上 4 点 25 分左右的美国东部标准时间坚持代理设置,我假设这是一个检查更新的探测器:
Unable to Connect: Windows is unable to connect to the automatic updates service and therefore cannot download and install updates according to the set schedule. Windows will continue to try to establish a connection.
有趣的是,“您有更新”气球总是在确实有更新时出现,而“检查更新”总是可以正常工作。这只是一些差事,计划的探测出于某种原因忽略了代理,击中了防火墙,并向我发送了电子邮件警报。
真的很想安静下来,但我不知道在哪里/为什么会发生这种情况。有没有一点我可以在注册表中翻转以告诉它停止?
编辑
代理是通过 Internet Explorer 手动配置的,正如我所说,工作正常。
netsh winhttp show proxy 也返回正确的代理设置。
我们正在通过 CloudFormation 在 AWS VPC 内部启动基础设施。
我们使用自动扩展组来启动 VPC-EC2 实例(因此,我们不直接启动实例;ASG 负责管理)。
在 PVC 内部,EC2 实例只有一个私有 IP;不做进一步的工作,他们就看不到外面的世界。
当这些实例启动时,我们有一些引导任务需要与各种 AWS API 对话。我们还有一些需要 AWS API 流量的持续任务。
你如何解决这个明显的先有鸡下蛋的问题?
我们已经阅读了:
我想我想知道我们是否可以打开某种后门,允许我们的 VPC EC2 实例访问 AWS API 端点,但没有别的,对于廉价的复杂设置,不会添加另一个网络跃点层到我们用于服务请求的基础设施。
我真的刚刚开始使用 lighttpd,我不确定如何准确配置它。
我想获取流量并重定向到另一台服务器说“ http://localhost/url_a/ ”并将请求和响应重定向到“ http://other_server:8080/ ”
另一个例子是“ http://localhost/url_b/ ”转到“ http://other_server:8081/url_b/ ”
我到底应该研究什么来完成这个?
谢谢。
我在具有多个公共 ip 地址的主机上有一个 Dante 服务器,但它无法绑定到主机的 ips。ips 是可以 ping 的,我有另一个服务在监听它们(不同的端口),它可以工作,所以我知道 ips 工作。在我的测试服务器上,它有 10 个公共地址,它没有问题,但在这个有数百个地址的服务器上却没有问题。错误:
debug: sockaddr2ifname(): address 138.xxx.93.2.51002 does not belong to interface
这是我的配置:
logoutput: /dev/stdout
debug: 1
internal: 138.xxx.93.2 port = 51002
external 138.xxx.93.2
external.rotation: same-same
socksmethod: username none
clientmethod: none
user.privileged: root
user.notprivileged: nobody
client pass {
from: 45.xxx.56.91/32 to: 138.xxx.93.2/32
log: error
}
socks pass {
from: 0/0 to: 0/0
session.state.key: from
session.state.max: 100
session.state.throttle: 10/2
}
Run Code Online (Sandbox Code Playgroud) 我有一项服务在需要 Internet 访问的 Windows 2012 R2 域成员服务器上运行。该服务配置为在托管服务帐户下运行,并且该帐户被授予域成员的本地管理员权限。组策略首选项用于为所有用户配置 Web 代理设置,相关组策略在域顶级链接。
托管服务帐户存在于顶级此类帐户的默认容器中,但是似乎没有将这些设置应用于 HKEY_USERS 下的注册表配置单元,并且手动将设置添加到相关配置单元似乎没有任何效果任何一个。如何以与任何其他普通域帐户相同的方式将代理设置应用于托管服务帐户?
active-directory proxy group-policy windows-server-2012-r2 managed-service-accounts
proxy ×10
amazon-vpc ×1
apache-2.2 ×1
dante ×1
group-policy ×1
http ×1
http-proxy ×1
https ×1
lighttpd ×1
nat ×1
nginx ×1
node.js ×1
regex ×1
routing ×1
socks ×1
squid ×1