Articles of 反向代理

nginx不检查websocket代理上的server_name和端口

我有三个服务器块(虚拟主机)的http和一个websocket在nginxconfiguration(nginx 1.6.0,Ubuntu 14.04)。 server { listen 80; listen [::]:80; server_name h3400.domain.com; location / { proxy_pass http://localhost:3400/; proxy_http_version 1.1; proxy_set_header Host $host; } } # this one for websocket on ws://h3400.domain.com:3000/ server { listen 3000; listen [::]:3000; server_name h3400.domain.com; location / { proxy_pass http://localhost:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass […]

将TMG设置为反向代理https-to-http

tl; dr我很难让TMG正确地将外部的HTTPS连接代理转换为内部的HTTP连接。 我们有一个局域网(10.0.7.0/24),它安装了一个Windows Server 2008盒子,安装了Spiceworks。 Spiceworks使用Apache,并configuration为同时提供HTTP和HTTPS。 只要你从局域网浏览它,它就可以工作,没有问题。 我们也有一个DMZ(172.32.16.0/24),它承载了Forefront TMG服务器,可以访问局域网和互联网。 所以我们尝试设置的是一个反向代理规则,它可以让用户从互联网上访问Spiceworks实例。 对于HTTP,它完美的工作 – stream量通过TMG,并传递到Apache服务器,groovy。 对于HTTPS,不是那么多。 TMG使用其上的证书build立连接,但无法通过HTTPS连接到Apache服务器,并且死于超时错误。 我不认为这是一个networking问题,因为HTTP工作正常。 这不是Spiceworks的HTTPS问题,因为在局域网上浏览它工作正常。 我怀疑TMG在validation我们在Apache服务器上使用的证书时遇到了麻烦,这就是为什么我得到HTTP 500错误“提供给函数的令牌无效”。 TMG使用的证书与Spiceworks服务器上的证书是同一个证书(都是GoDaddy通配证书) – 可能与它有关吗? 我们无法替代许多地方使用的证书,所以如果有一个解决方法,或者我可以改变的TMGconfiguration设置,那将是完美的。 我的另一个select是让TMG在外部代理https://subdomain.domain.tld:443到http://subdomain.domain.tld:80 ,并完全规避SSL问题,但是没有骰子,TMG固执地拒绝以这种方式重写URL。

通过代理远程Apache重写

我们正在尝试向外部站点写入反向代理规则。 ProxyRequests On ProxyRemote https://abc.company.com http://proxy.company.com:80 ProxyPass /_vti_bin/AccountList.asmx/ https://abc.comany.com/_vti_bin/AccountList.asmx/ ProxyPassReverse /_vti_bin/AccountList.asmx/ https://abc.company.com/_vti_bin/AccountList.asmx/ 由于这是一个内部应用程序,我没有从我的apache http服务器直接连接到外部网站。 我正在尝试通过公司代理。 但它不工作。 什么是解决这个问题的理想方法?

使用nginx作为发送邮件的反向代理

我们有一个生产服务器运行一个单一的网页应用程序和一个单独的代理服务器,出于安全原因。 我们的networking应用程序的每个请求都由代理服务器上的反向代理(nginx)处理。 所以我们的生产服务器的IP地址是外界永远不可见的。 现在我们需要通过nodemailer从我们的生产服务器发送(而不是)电子邮件。 我们想把它发送到mail.proxyserver.com,他应该把它传递给一个新的地址。 我们已经为普通的https请求做了这些,并且能够使用头部variables来确定proxy_pass地址( proxy_pass https://$http_target_ip; ) 是否有可能通过nginx反向代理外发电子邮件,以便服务器可以通过代理发送电子邮件,而不是自己可见? 在通过标准端口通过smtp发送电子邮件时,这个configuration需要如何? 我看了看nginx的文档和各种论坛的post,但atm我不能把它合在一起…

基于后端应用程序会话cookie的HAproxy ACL取代HTTP基本身份validation

我需要HAproxyconfiguration的一些帮助来绕过HTTP基本身份validation,并让用户使用特定的后端,以防从另一个后端应用程序提供有效的会话cookie。 在我的前端定义中,我通常使用以下configuration来工作: # Monitor application response headers for keywords and update user ACL acl has_disallowAPPUser res.hdr(X-APP-DisallowUser) -m found acl has_allowAPPUser res.hdr(X-APP-AllowUser) -m found http-response del-acl(/var/lib/haproxy/app_user_sessions.acl) %[res.hdr(X-APP-DisallowUser)] if has_disallowAPPUser http-response add-acl(/var/lib/haproxy/app_user_sessions.acl) %[res.hdr(X-APP-AllowUser)] if has_allowAPPUser # Monitor application response headers for keywords and update admin ACL acl has_disallowAPPAdmin res.hdr(X-APP-DisallowAdmin) -m found acl has_allowAPPAdmin res.hdr(X-APP-AllowAdmin) -m found http-response […]

如何将IIS中的站点请求redirect到不同的外部服务器?

我即将把我的网站从IIS迁移到Linux VPS。 其中一部分涉及更新区域logging。 从更改我的区域logging到传播到客户端计算机时,会有一段时间。 因此,将向IIS服务器请求指向不同IP的域。 我想configuration我的服务器,以便当它接收到http://example.com/some/path的请求时,透明地(或非透明地)将请求转发到新服务器。 请注意,我不能简单地做一个302redirect,因为域名不变,只有区域logging的域名。 我怎样才能做到这一点? 谢谢,詹姆斯

当平衡成员closures时,Apache 2.2.4代理平衡器非常慢

我在我的DMZ中使用apache 2.2.4作为反向代理服务器。 当两台BalancerMember服务器启动时,代理平衡器看起来效果很好。 但是,如果我closures一个,每次我加载一个页面,大概需要30-45秒才能在我的网站上加载任何内容。 这是我的configuration: ServerName mywebsite.com ProxyRequests Off <Proxy *> Order deny, allow Allow from all </Proxy> <Proxy balancer://mycluster> BalancerMember http://10.10.10.10:80/outside loadfactor=1 retry=60 BalancerMember http://10.10.10.11:80/outside loadfactor=1 retry=60 </Proxy> ProxyPass /outside balancer://mycluster/ ProxyPassReverse /outside balancer://mycluster/ ProxyPass /balancer-manager ! <Location /balancer-manager> SetHandler balancer-manager </Location> 服务器充当位于其后的REST服务的反向代理。 当我加载Web应用程序时,它会多次调用REST服务,所以我不知道是否也可能导致缓慢,因为代理服务器一次碰到很多请求。

Apache作为身份validation代理

我们正试图从Apache httpd实现身份validation代理。 这应该保护使用基本身份validation的应用程序,但是用户应该使用httpd的身份validation进行身份validation(在我们的例子中是mod_auth_cas)。 我可以添加具有适当授权值的RequestHeader,它向应用程序发送凭证,但是只有一个用户进行身份validation才是静态的。 有一些方法来设置RequestHeader的值与脚本? 或者其他一些方法来build立这样的authentication代理? 我已经在考虑将处理代理function的CGI脚本。 但在我看来,就像高速公路一样。

Nginx会话绑定代理

我一直在试图强化一个网站,以防止涉及会话劫持的攻击。 该网站在Node.js应用程序前面运行Nginx。 作为其中一个对策,目标是configurationNginx将应用程序会话ID绑定到SSL会话。 为此,我使用下面的第三方模块: https : //github.com/wburgers/Session-Binding-Proxy ,它实现了以下文章中描述的概念。 我用模块成功地重build了Nginx,但是我很难让它正常工作(甚至是一致的)。 无论我尝试,代理要么: 1)校验和不匹配: 2014/12/17 21:17:32 [debug] 3113#0: *1 ssl_session_master_key: 25a913d0524eb78d8433fdd5f5cf930a9a948ce09f5bfd8d 2014/12/17 21:17:32 [debug] 3113#0: *1 Session Binding Proxy encryption/decryption key: 80F426773F639A33C3279B55BDE9842D3767844DA026AEFF523C08DA03257A00 2014/12/17 21:17:32 [debug] 3113#0: *1 Session Binding Proxy Handler searching for: connect.sid 2014/12/17 21:17:32 [debug] 3113#0: *1 Session Binding Proxy Handler in string: __insp_wid=1037948077; __insp_nv=true; __insp_ref=d; […]

Nginx,proxy_pass和vm后端

我的意图是有几个webapps在不同的虚拟机上运行,​​都通过一个nginx代理。 主要的问题是,url被改变,例如http://example.com/app1/获取到web应用程序(但CSS不显示),并点击例如“login”有这样的: http://example.com/login/ 那么,我得到了什么: example.com/app1/ -> "click" -> example.com/login/ 我想要的是: example.com/app1/ -> "click" -> example.com/app1/login/ 安装程序 虚拟机将所有传入的端口80stream量redirect到Nginx-VM,Webapp在不同的虚拟机上运行,​​在端口8000上托pipe自己的networking服务器。 文件/etc/nginx/sites-enabled/default (abbrev.) : server { listen 0.0.0.0:80; server_name example.com; location /app1/ { proxy_pass http://10.11.100.204:8080/; } } 我尝试了不同的东西,例如在proxy_pass的末尾留下了斜线,但是在调用example.com/app1时给了我一个404。 proxy_set_header Host $host也没有这个把戏。 curl输出 来自Hypervisor机器(如评论): HTTP/1.0 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 3587 Set-Cookie: session=.eJyrVorPTFGyqlZSSFKyUooM98uOCnE0jHIPLfdzcTWMcnGs8s1KrvTNysmOzEo2ijQKrfINdzXwd0m2Va rVUcrJT07MSYVrB2oDCxckpqfGZ2QWl-QXVSpZRStllJQUWOnrF5fmJCbn6-Wm5ZTmF-klZ-grxdYCABkQKVw.B4U2hw.Rbl3k3yxoLQx1UgKpP68uB_X5cI; HttpOnly; Path=/ Server: Werkzeug/0.9.6 Python/2.7.3 […]