Articles of 反向代理

使用nginx-proxy容器(如前端服务器)访问同一主机上的多个容器时出现错误503

我希望能够访问包含Web应用程序的同一个主机上的多个容器。 当我想访问主机(通过IP地址)或容器(例如通过host_ip_adress /容器1),我得到了来自nginx的503错误。 我想要的是通过ip_addrress_host / container1访问我的container1。 我在网上find的解决scheme是设置一个nginx-proxy前端服务器(来源: https : //blog.florianlopes.io/host-multiple-websites-on-single-host-docker/ ) 我的docker合成文件: docker-compose.yml version: '2' services: nginx-proxy: image: jwilder/nginx-proxy ports: – "80:80" volumes: – /var/run/docker.sock:/tmp/docker.sock site_a: image: php:7.0-apache expose: – "80" environment: – VIRTUAL_HOST=container1 volumes: – ./php:/var/www/html site_b: image: php:7.0-apache expose: – "80" environment: – VIRTUAL_HOST=container2 volumes: – ./php:/var/www/html 我用这个命令运行它: docker-compose up 我在/ etc / […]

Kestral,IIS和端口耗尽

通过AWS Beanstalk部署.NET CORE web-socket应用程序。 默认情况下,这将IIS用作反向代理。 不幸的是反向代理使用端口来完成他们的工作,导致端口耗尽。 我们如何configurationIIS扩展到100,000个佣金以上? 或者,我们如何configurationAWS Beanstalk直接在没有IIS的情况下运行kestrel?

IIS10 URL重写2.1双重编码问题

我有一个IIS10服务器与ARR 3.0和URL重写模块2.1充当其他几个Web服务器的反向代理。 其他服务器运行在不同的端口上,因此IIS10服务器在端口80上提供“友好的URL”。URL重写用于将请求交给后端服务器。 一个这样的服务器是jenkins 。 Jenkins有一个警告消息,告诉您反向代理是否configuration正确( 更多细节在这里 ),这个警告消息帮助我在反向代理中发现问题。 问题是,url重写是解码和编码我的url,当他们到达jenkins时,他们是不同的浏览器要求。 例: URL重写规则: <rule name="Jenkins Rewrite" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern=".*jenkins.mydomain.*" /> <add input="{HTTPS}" pattern="on" /> </conditions> <action type="Rewrite" url="http://localhost:8080/{R:1}" appendQueryString="true" /> <serverVariables> <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" /> <set name="HTTP_X_FORWARDED_SCHEMA" value="https" /> <set name="HTTP_X_FORWARDED_PROTO" value="https" /> </serverVariables> </rule> 发送以下URL时: HTTPS://jenkins.mydomain/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/https%3A%2F%2Fjenkins.mydomain%2Fmanage%3F 我注意到在触发规则之前解码的编码字符,使得{R:1}看起来像这样: /administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/https:/jenkins.mydomain/manage/ : /administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/https:/jenkins.mydomain/manage/ 经过一番研究,我发现我可以在解码之前使用{UNENCODED_URL}而不是{R:1}来获取请求string,所以我调整了我的规则动作: […]

在反向代理服务器之后将远程客户端IP传递给WSUS服务器

我们有一个互联网面向我们的远程Windows客户端(笔记本电脑,远程用户等)的WSUS服务器。 作为额外的保护层,我们使用ARR / URL Rewrite将WSUS服务器置于反向代理服务器后面,ARR / URL重写将请求代理到我们的更新URL并将其转发给实际的WSUS服务器。 似乎所有的工作都很好 – 客户端从WSUS获取更新信息,并且能够下载任何需要的更新。 不过,我最近注意到了一个小问题,那就是试图使用本质上位于WSUS服务器之上的Patch Management解决scheme(来自Solarwinds),并且可以主动pipe理远程客户端。 如果我尝试通过修补程序pipe理器来pipe理远程客户端,它将使用该客户端的PROXY服务器的IP地址,而不是客户端的ACTUAL远程IP地址。 DNSparsing失败,身份validation失败,可能是因为请求正在代理服务器,而不是远程客户端。 如何确保内部WSUS服务器获取客户端的实际远程IP地址?

如何使NGINX负载平衡服务器不代理请求?

我无法find问题的解决scheme,所以这是我的问题。 假设我有3台服务器,其中2台是上游服务器,1台是负载平衡器。 这是我的基本configuration 上游服务器 user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } […]

邮件服务器的反向代理(用于Web客户端的SMTP + HTTP)

我正在寻找一个邮件服务器与相应的Web客户端的一些反向代理工作。 两台服务器都在同一台机器上运行,这不是一个高负载的服务器。 🙂 我与朋友讨论的解决scheme是在我们的内部networking上安装邮件服务器/networking客户端。 然后在DMZ上放置一个反向代理服务器,将SMTP和Web客户端HTTPstream量同时服务于内部networking上的邮件服务器。 据我所知,这是推荐的安全解决scheme? 到目前为止,我已经想到使用postfix的SMTP代理部分,它将接收邮件,做一些spamhause和类似的反垃圾邮件的措施,如果全部检出,发送邮件到邮件服务器的内部。 内部的邮件服务器将所有的外发邮件发送到代理,然后将其发送到互联网上。 对于Web客户端,我不确定在代理服务器上应该运行哪个软件,我一直在考虑使用Squid – 但这基本上是基于我知道squid是一个http代理的事实。 Web客户端数据将通过SSL发送出去。 在这里阅读一些关于Serverfault的文章,我已经看到其他人使用Apache的mod _ proxy + mod _ security来处理类似的情况。 我是否正确地思考这个解决scheme? 你们将使用哪些软件,以及哪些模块? 先谢谢您的帮助! 🙂

使用nginx与Apache作为反向代理

最近我决定从apache切换到nginx,我仍然使用apache作为反向代理来照顾我所有的dynamic内容。 在过去的2 – 3年里,我一直在使用Apache,我知道如何处理大部分可能的configuration,但是对于nginx来说,这是一个新的世界。 问题是当我使用第三方web应用程序,如phpmyadmin,图片将无法加载,通常我会使用apache的别名,但定义一个位置(nginx的别名)将无济于事。 nginx.conf # primary server – proxypass server { listen 80; server_name domain.com www.domain.com; access_log /var/www/domain/logs/access_log.nginx main; error_log /var/www/domain/logs/error_log.nginx warn; root /var/www/domain/html/http; # proxy to Apache 2 and mod_python 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_max_temp_file_size 0; client_max_body_size 10m; client_body_buffer_size 128k; […]

BlueCoat反向代理NTLM身份validation

目前,当我们想从Internet访问一个内部网站(使用NTLM身份validation的IIS)时,我们有两个login屏幕出现: step1:来自BlueCoat的LDAPAuth,它检查login/密码的有效性与Active Directory的关系 第二步:从我们的应用程序NTLM身份validation。 是否可以将反向代理configuration为使用在步骤1提供的LDAP凭据,并将它们提供给请求它们的任何应用程序? 当然,如果这些证书是无效的,什么都不会发生。 我们正在使用BlueCoat SG400。 更新:我们不寻找用户不必input密码的SSO。 我们希望用户在LDAPAuth对话框中input他的域凭证,并使用代理重用它来对我们的应用程序进行validation。 或者使用NTLM的任何应用程序。 我们在逆向代理后面只有1个AD域。

使用反向代理时获得实时stream量/访客分析

我正在实施Varnish作为Ruby on Rails应用程序的反向代理,我正在使用Google Analytics(JS /客户端脚本来logging访问者数据),但延迟了几个小时,因此无法知道现在发生了什么。 我需要一目了然的实时数据,包括引用stream量和当前需求/秒。 现在,我正在使用一个简单的Rack中间件应用程序来执行实时统计(gist.github.com/235745),但是如果大部分stream量都打上光油,Rack将永远不会被击中,所以这将不起作用。 到目前为止,我find的最接近的解决scheme是http://www.reinvigorate.net/,但是它的testing版(头版上也没有实现细节)。 清漆是否有stream量日志,我可以自定义格式来匹配我的Apache日志,所以我可以将它们结合起来,还是我将不得不推出像GA一样的实时显示数据的JS实现?

如何使某些虚拟文件夹由iis服务,而其他人则由Apache服务?

我有一个使用PHP编写的站点,它由安装在Linux上的Apache提供服务。 说,它的url是example.com ,它有子文件夹audio , games , photo ,所以用户指向它example.com/photo 。 现在,我正在ASP.Net中编写新的function(例如,查看电影的function),并希望用户可以通过example.com/video访问它。 而IIS的服务是在另一台服务器上看不到的(只有Apache可以直接访问互联网),但是很容易通过内部网从apache到达。 用户会话不重要! 我应该如何configuration它才能有效地工作? 可能我需要安装更多的软件? 我发布了我的解决scheme,据我了解的是Farseeker的意思,但是如果有的话我想听听其他的build议。