标签: proxy

PHP+Apache作为正向/反向代理:如何在PHP中处理客户端请求和服务器响应?

我在正确配置 Apache mod_proxy.so 以便按需要工作时遇到很多麻烦......

主要思想是在网络中的本地计算机上创建一个代理,该代理将能够在 PHP 中处理客户端请求(通过 Apache 准备的代理连接的客户端)。而且,它也有能力处理 PHP 上的服务器响应。

这是两个功能,它们彼此独立。

让我介绍一下我需要实现的目标:

替代文本

正如您在这里看到的,有两种方法:蓝色一种和红色一种。

对于蓝色的,我基本上连接了本地网络(家庭)上的客户端(机器 B - 手机),并将其配置为通过代理,即同一网络上的机器 A(个人计算机)。

所以我们可以说(不是 DHCP):

机器 A: 192.168.1.40 --> Apache 正在该机器上运行,并配置为侦听端口 80。

机器 B(手机): 192.168.1.75 --> 配置为通过代理,即 IP 192.168.1.75 和端口 80(基本上是机器 A)。

正确配置 Apache 后,基本上是从 httpd.conf 中删除 mod_proxy.so(主要工作程序)、mod_proxy_connect.so(SSL、allowCONNECT,...)和 mod_proxy_http.so(需要处理 HTTP 请求/响应),在我的例子中,有这样的行:

# Implements a proxy/gateway for Apache.
Include "conf/extra/httpd-proxy.conf"

# Various default settings
Include "conf/extra/httpd-default.conf"

# Secure (SSL/TLS) connections
Include "conf/extra/httpd-ssl.conf"
Run Code Online (Sandbox Code Playgroud)

这使我能够配置文件 httpd-proxy.conf 来准备正向代理或反向代理。

所以我不确定我需要的是正向代理还是反向代理。

对于转发代理,我这样做了:

<IfModule proxy_module>
<IfModule proxy_http_module>

#
# FORWARD Proxy …
Run Code Online (Sandbox Code Playgroud)

php proxy process apache-2.2

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

如何通过 SOCKS5 代理使用 MacPorts (rsync)?

MacPorts 依靠 rsync 来完成其工作,而我依靠 SOCKS5 代理来完全访问互联网。如何让 rsync 通过我的代理运行其所有查询?

proxy rsync mac-osx socks

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

NGINX mod _proxy_html 可用吗?

有人已经为 Nginx 创建了类似的http://apache.webthing.com/mod_proxy_html/ mod_proxy_html 模块?

我认为最接近的模块是http://wiki.nginx.org/HttpSubsModule但我不知道应该如何配置它来重建 apache 模块的功能。

谢谢!

nginx proxy apache-2.2

5
推荐指数
0
解决办法
1027
查看次数

Linux 更改传入流量的源 ip 地址

我有一个在端口 X 上运行的 Web 服务。它从来没有打算在本地网络之外运行,但我想通过 Internet 访问它。因此,我需要将所有传入数据包的源 IP 地址更改为本地地址(例如 192.168.2.100)。否则,Web 服务会响应错误。

所以这是我需要的:

如果我使用公共 IP X 从我的家庭计算机发送数据包到我服务器的公共 IP 地址 Y,则源 IP 地址(在这种情况下 X)需要更改为本地 IP 地址(例如 192.168.2.1) . 之后,数据包应该传递到在端口 80 上运行在同一服务器上的 Web 应用程序。

networking linux proxy iptables

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

为 Docker 重定向 SSH 用户:Gitlab 和 Docker:Bitbucket

正如您在标题中已经读到的,我目前正在运行多个用作 git 服务器的 docker 容器,通常应该在端口 22 下运行。这显然不起作用,但我的请求如下。

在端口 22 上提供以下内容:

  • git@HOST - 重定向到 gitlab docker 容器
  • bitbucket@HOST - 重定向到 bitbucket 容器
  • root@HOST -(我根本不是以 root 身份工作,但出于理解原因)对 Docker Mainhost 的正常 SSH 访问。

我知道我必须跨容器和帐户同步 ssh 密钥,但这不会是一个大问题,但我不知道是否可以构建重定向系统。

我的一种方法是使用ForceCommand,但我无法重定向使用的 SSH 密钥...

另一个想法是在端口 22 上运行一个小工具,它只是在所有 SSH 守护进程之间路由完整的请求,但我还没有(还?)找到这样的工具,不知道是否可以构建这样的工具出于安全原因。

ssh proxy redirect docker

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

Dante 无法绑定到公共 IP 地址

我在具有多个公共 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)

proxy socks dante

5
推荐指数
0
解决办法
812
查看次数

如何让托管服务帐户使用组策略中的 Internet 代理设置?

我有一项服务在需要 Internet 访问的 Windows 2012 R2 域成员服务器上运行。该服务配置为在托管服务帐户下运行,并且该帐户被授予域成员的本地管理员权限。组策略首选项用于为所有用户配置 Web 代理设置,相关组策略在域顶级链接。

托管服务帐户存在于顶级此类帐户的默认容器中,但是似乎没有将这些设置应用于 HKEY_USERS 下的注册表配置单元,并且手动将设置添加到相关配置单元似乎没有任何效果任何一个。如何以与任何其他普通域帐户相同的方式将代理设置应用于托管服务帐户?

active-directory proxy group-policy windows-server-2012-r2 managed-service-accounts

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

Apache HTTPd 2.2 忽略 LocationMatch 正则表达式

我正在尝试创建一个反向代理,它匹配除 Apache 2.2 中的一个之外的每个 URL。它适用于 Apache 2.4 (Centos 7),但不适用于 Apache 2.2 (Centos 6.6) ...

# Do not modify this
<LocationMatch "^/my-website-2">
        ProxyPass http://X.X.X.X:PORT/my-website-2
        ProxyPassReverse http://X.X.X.X:PORT/my-website-2
        (...)
</LocationMatch>

# Match every URL except the one finishing with /redirect
<LocationMatch "^/my-website(?!/redirect)">
        ProxyPass http://X.X.X.X:PORT/my-website
        ProxyPassReverse http://X.X.X.X:PORT/my-website
        AuthType XXX
        RequestHeader set XXX YYY
        (...)
</LocationMatch>

# Do anothers directives with this URL only, finishing with /redirect
<Location "/my-website/redirect">
        AuthType XXX
        (...)
</Location>
Run Code Online (Sandbox Code Playgroud)

当我输入https://my-server.com/my-website因为正则表达式不匹配 ^/my-website时,我的服务器正在寻找 /var/www/html/my-website(不存在的)(?!/重定向)

我知道 Apache 2.2 不能理解每个负面 PCRE 正则表达式,但似乎存在一些技巧......请参阅:

proxy httpd pcre apache-2.2

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

python get-pip.py 不能在代理后面工作

我在尝试运行尝试使用以下命令获取的devstack时遇到问题,我添加了详细参数pip

sudo -H -E python /opt/stack/devstack/files/get-pip.py -c /opt/stack/devstack/tools/cap-pip.txt --verbose
Run Code Online (Sandbox Code Playgroud)

我得到了这个输出,它永远挂在那里,然后再试四次就退出了。

Created temporary directory: /tmp/pip-ephem-wheel-cache-WNf2he
Created temporary directory: /tmp/pip-req-tracker-YNDzMb
Created requirements tracker '/tmp/pip-req-tracker-YNDzMb'
Created temporary directory: /tmp/pip-install-qbbm3e
Setting pip!=8,<10 (from -c /opt/stack/devstack/tools/cap-pip.txt (line 1)) extras to: ()
Collecting pip!=8,<10 (from -c /opt/stack/devstack/tools/cap-pip.txt (line 1))
  1 location(s) to search for versions of pip:
  * https://pypi.org/simple/pip/
  Getting page https://pypi.org/simple/pip/
  Looking up "https://pypi.org/simple/pip/" in the cache
  No cache entry available
  Starting new HTTPS connection (1): pypi.org:443
Run Code Online (Sandbox Code Playgroud)

我的机器坐在一个代理后面,它使用白名单来允许一些域名,这些域名是允许的。

# …
Run Code Online (Sandbox Code Playgroud)

ssl proxy squid whitelist

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

如何判断端口是否为 HTTP 代理

Nmap 结果显示端口 8080 上有一个 HTTP 代理。不尝试代理,你怎么知道它是否是代理?

8080/tcp open http-proxy
Run Code Online (Sandbox Code Playgroud)

proxy

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