Articles of 反向代理

dynamic地重新configurationhaproxy后端

我的要求是有约50 haproxy HTTP后端,这将被dynamic地添加和删除(没有我的参与)在内部networking的任何地方。 我可以假设每个http后端知道它的IP地址并知道haproxy的IP地址。 我可以假设我可以向每个http后端添加一点代码,以便在haproxy注册时,只要它启动并注销,就会在注销之前注销。 我有haproxy在80端口收听: frontend main *:80 另外我公开一个统计sockets: stats socket 0.0.0.0:8080 我的设置工作,特别是我可以使用socat readline TCP4:<haproxyIP>:8080连接到统计套接字socat readline TCP4:<haproxyIP>:8080 让我们假设在10.0.0.1:4040和10.0.0.2:4040上有两个http后端服务,并且haproxy可以到达两个地址。 我需要通过统计套接字发送什么stat套接字命令,以便对<haproxyIP>:8080/backend1/status任何请求路由到10.0.0.1:4040/status并且对<haproxyIP>:8080/backend2/version路由到10.0.0.2:4040/version ? 一般情况下:如何将[GET|POST] <haproxyIP>:<haproxyPort>/<backendID>/<remainingPath> http请求dynamic代理为[GET|POST] <backendIP>:<backendPort>/<remainingPath>我知道从backendID -> backendIP, backendPort的地图。

IIS6多个SSL网站到一个HTTP网站?

在Windows 2003上运行IIS6服务器。所有网站使用ASP.NET 我有许多网站都运行单独的HTTP网站: www.domain1.com www.domain2.com www.domain3.com 我有一个单独的HTTPS网站 www.secure.com 这些网站都在同一台服务器上运行。 我现在希望以透明的方式将www.secure.com的内容整合到每个域中。 使每个网站尽pipe有自己的SSL连接显示相同的网站。 这个并发症是www.secure.com需要知道连接来自哪个网站来应用适当的品牌。 这个背后的想法是只有一个网站和位置,但它保持了核心网站的品牌。 https://domain1.com看起来更好从营销的angular度(并避免用户对我们的安全网站是什么感到困惑) SSL www.domain1.com/secure – >显示www.secure.com(品牌域1) SSL www.domain2.com/secure – >显示www.secure.com(品牌域2) SSL www.domain3.com/secure – >显示www.secure.com(品牌域名3) 如何实现这个最好的方式,我打算使用额外的软件,如果需要的话。 反向代理是否适合这种情况?

我应该使用哪个端口来从nginx到Apache 2的反向代理?

我有nginx设置为事实上的端口80 。 我想在Apache2上设置django + mod_wsgi。 我很担心,如果我离开Apache2为80会导致冲突。 避免头痛并将Apache更改为另一个端口更好吗? server { listen 80; server_name work.domain.org; access_log /www/work.domain.org/log/access.log; error_log /www/work.domain.org/log/error.log; location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Magic-Header "secret"; client_max_body_size 10m; } }

如何干这个Nginx的configuration?

我在Nginx 0.8.54试图尽可能实现以下DRYly: 代理直接到localhost:8060如果cookie no_cache为true或者请求方法不是GET 。 否则,从$document_root/static/$uri提供静态文件。 如果不存在这样的文件,请尝试$document_root/cache/$uri和$document_root/cache/$uri.html 。 如果请求path是/ ,请尝试不使用静态文件,只使用$document_root/cache/index.html 。 最后回退到localhost:8060如果找不到静态文件和caching文件。 当前configuration文件: server { root /srv/web/example.com; server_name example.com; location @backend { proxy_pass http://localhost:8060; } location / { if ($cookie_no_cache = true) { proxy_pass http://localhost:8060; } if ($request_method != GET) { proxy_pass http://localhost:8060; } try_files /static/$uri /cache/$uri /cache/$uri.html @backend; } location = / { if […]

反向代理Outlook

我们使用Outlook Web Access的反向代理。 有人曾经告诉我,你最好不要在公司内部使用这个反向代理,因为这样做是不安全的(实际上,你到外面去,回到你自己的公司服务器)。 有人可以解释我是否属实,如果是这样,为什么?

在Tomcat上的反向代理

我有一个Tomcat应用程序。 我现在想把一些页面反向代理到不同的服务器上监听不同的端口。 在一个普通的Apache服务器上,我会做下面的事情。 ProxyPass /dir1 http://localhost:1234/dir1 ProxyPassReverse /dir1 http://localhost:1234/dir1 这会将dir1下的所有URL传递给监听port1234的其他服务器。 我如何在Tomcat上做同样的事情? 请注意,我的服务器只运行Tomcat和Java。 我不在我的设置中运行Apache。 端口1234上的服务器是独立的,而不是Apache或Tomcat。

nginx与real_ip – logging客户端remote_addr和代理地址

我有一个在多个负载平衡代理后面设置的nginx实例,我正在使用real_ip获取remote_addr中的客户端IP地址,以供我的Python应用程序处理。 然而,在我的日志中,我想logging实际发出请求的代理服务器,但$remote_addr现在已被覆盖,而且我找不到任何说明它的副本。 我将如何能够做到这一点?

如何使用nginx代理基于请求域名的服务器?

有一种情况,首先当前的所有请求都应该像当前为特定域名工作一样工作。 例如www.hello.com dynamicDNS将指向相同的静态IP www.hello.com服务器(somedomain.dnsdynamic.com —> XXX.XXX.XXX.XXX) 所有的请求 ,包括GET,POST等,都被代理到另一台带有主机名为finalserver.example.com的服务器 。 (注意这个服务器没有静态IP地址,所以必须使用主机名) 代理服务器只能在www.hello.com服务器获得服务器名称somedomain.dnsdynamic.com的请求时才能使用 已经尝试记住这个答案,但失败了,无论是得到502坏网关或404页面未find

如何创build条件ProxyPass?

我有一个站点可用.conf文件的以下configuration。 如果您点击blog.example.com则其configuration可以加载ghost博客。 不知何故,它引起的example.com也提供了博客。 但是,这也很好。 <Virtualhost *:80> ServerName blog.example.com ServerAdmin [email protected] ProxyPass / http://localhost:2368/ ProxyPassReverse / http://localhost:2368/ </Virtualhost> 所以我刚刚安装了phpmyadmin ,我意识到我无法访问http://example.com/phpmyadmin 。 访问该页面将会出现鬼找不到的404页面。 所以我想我需要一些条件ProxyPass来忽略/phpmyadmin ? 我尝试了以下它不起作用。 <Virtualhost *:80> ServerName blog.example.com ServerAdmin [email protected] ProxyPass /phpmyadmin http://localhost/phpmyadmin ProxyPassReverse /phpmyadmin http://localhost/phpmyadmin ProxyPass / http://localhost:2368/ ProxyPassReverse / http://localhost:2368/ </Virtualhost> Apache只是挂了,我必须重新启动时,我打http://example.com/phpmyadmin 。 更新 : 我尝试了以下,并加载了phpmyadminlogin页面。 刚刚添加:80本地主机后:80 。 并为虚拟主机提供特定的域名而不是* 。 <Virtualhost blog.example.com:80> ServerName […]

只允许一些IP的ProxyPass

通过下面的代码片段,每个人都可以访问/ foo和/ bar ProxyPass /foo http://example.com/foo ProxyPassReverse /foo http://example.com/foo ProxyPass /bar http://example.com/bar ProxyPassReverse /bar http://example.com/bar 但是如果我希望/ foo可以被所有人访问,而/ bar仅仅是来自特定IP的请求,这可能吗?