在代理后面运行 http 服务器

在代理后面运行 http 服务器

我一直尝试让 lighttpd 或 apache2(我更喜欢 lighttpd)在代理后面工作,但到目前为止还没有成功。

我想要的是在代理后面运行 lighttpd(或端口 80),这样当有人访问 some.website.com 时,该域的 DNS 指向代理服务器的 IP 地址,他们最终会进入我的 http 服务器的页面。

这将允许我使用服务器的资源,同时隐藏其 IP 地址。

不幸的是,使用该proxychains程序没有奏效。对于 lighttpd,它给出了错误getaddrinfo failed: Unknown error ' ::'proxychains apache2 start启动正常,但似乎什么也没做。我确实测试了 proxychains 程序本身是否有效,它在 what-is-my-ip 类型的网站上使用 curl 很好地使用了代理。

如果你想知道;我暂时使用家庭服务器,并且不想公开我的 IP 地址。

有什么想法吗?HTTPS 代理 (squid) 或 SOCKS5 (dante) 代理都可以。

答案1

您选择的代理必须支持“反向 HTTP 代理”。请参阅:http://en.wikipedia.org/wiki/Reverse_proxy

答案2

您提到 squid 可以很好地工作。您没有直接启动 squid 有什么原因吗?它可能是配置起来最简单的代理解决方案。

答案3

使用 Apache 和mod_proxy您可以编写一个或多个简单规则,例如

ProxyPass /foo http://internal-ip/bar

这样,Apache 服务器就隐藏了内部服务器。

答案4

代理服务器上没有 VirtualHost 的示例:

<Location /<stuff after domain name of proxy server>/>
    ProxyPreserveHost On

    ProxyPass http://<localIP>:<localPort>/
    ProxyPassReverse http://<localIP>:<localPort>/
</Location>

代理服务器上虚拟主机的示例:

<VirtualHost *:80>
  ServerName <subdomainname>.<example.com>

  ProxyPreserveHost On
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyRequests On
  ProxyPreserveHost On
  ProxyPass / http://<localIP>:<localPort>/
  ProxyPassReverse / http://<localIP>:<localPort>/

</VirtualHost>

编辑:两者都在 apache2 上工作

相关内容