Articles of 代理

Nginx通过代理redirect,重写和保留URL

在Nginx中,我们一直试图redirect一个URL,如下所示: http://example.com/some/path -> http://192.168.1.24 用户仍然可以在浏览器中看到原始url。 一旦用户被redirect,说他们点击链接到/section/index.html ,我们希望这做一个请求,导致redirect http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html 并再次保留原来的url。 我们的尝试涉及使用代理和重写规则的各种解决scheme,下面显示了使我们最接近解决scheme的configuration(请注意,这是example.com Web服务器的Web服务器configuration)。 但是,这仍然有两个问题: 它不会正确执行重写,因为Web服务器http://192.168.1.24收到的请求URL包含/some/path ,因此无法提供所需的页面。 一旦提供页面,当您将鼠标hover在链接上时,该URL中将缺less/some/path server { listen 80; server_name www.example.com; location /some/path/ { proxy_pass http://192.168.1.24; proxy_redirect http://www.example.com/some/path http://192.168.1.24; proxy_set_header Host $host; } location / { index index.html; root /var/www/example.com/htdocs; } } 我们正在寻找一个解决scheme,只涉及到更改example.com上的Web服务器configuration。 我们可以改变192.168.1.24 (也是Nginx)上的configuration,但是我们想要避免这种情况,因为我们需要为通过example.com访问的数百个不同的服务器重复这个设置。

带有SSL的Apache ProxyPass

我想通过非SSL站点代理来自SSL站点的请求。 我的Apache httpd.conf看起来像这样: <VirtualHost 1.2.3.4:80> ServerName foo.com ProxyPass / https://bar.com/ </VirtualHost> 所以,当我访问http://foo.com时 ,我希望apache向https://bar.com发出请求,并向我发送它提取的页面。 相反,我得到一个500错误,并在错误日志中,我看到: [error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com) 大概我在这里错过了一个指令。 这可能是什么? 没关系安全影响。 我完全理解风险。

ssh代理转发和sudo到另一个用户

如果我有一个服务器A,我可以使用我的ssh密钥login到服务器,并且我可以“sudo su – otheruser”,所以我丢失了密钥转发,因为envvariables被删除,并且套接字只能由我原来的用户读取。 有没有一种方法可以通过“sudo su – otheruser”桥接密钥转发,所以我可以使用转发密钥(我的情况下为git clone和rsync)在服务器B上执行一些操作? 我能想到的唯一方法是将我的密钥添加到其他用户的authorized_keys和“ssh otheruser @ localhost”,但是对于我可能拥有的每个用户和服务器组合,这样做很麻烦。 简而言之: $ sudo -HE ssh user@host (success) $ sudo -HE -u otheruser ssh user@host Permission denied (publickey).

如何将Nginx设置为caching逆向代理?

我最近听说Nginx已经将caching添加到其反向代理function。 我环顾四周,但找不到有关它的很多信息。 我想将Nginx设置为Apache / Django之前的caching逆向代理:将一些(但不是全部)dynamic页面的Nginx代理请求发送给Apache,然后caching生成的页面并为来自caching的后续请求提供服务。 理想情况下,我想要以两种方式使caching无效: 在caching的项目上设置到期date 显式使caching项无效。 例如,如果我的Django后端更新了某些数据,我想告诉Nginx使受影响页面的caching无效 是否可以设置Nginx来做到这一点? 怎么样?