Articles of 反向代理

基于域的端口转发与VLAN路由

在我的新工作空间中,我想build立一个networking,使我能够在基于不同域(多个网站)的networking外部(受控)访问的开发,testing和接受服务器(VM)上部署我的Web开发工作。 另外我想通过VPN远程访问我的networking。 然而,挑战是我们共享了内部networking,而我自己却无法控制路由器/防火墙(networking由外部pipe理)。 一个图解和很好解释的请求是他们需要为了应用一个新的configuration。 我对networking的知识有限,但研究让我相信我的networking设置应该是可能的。 有人可以确认/评论我的想法关于可行性/最佳实践吗? 我的工作空间有一个光纤(FTTO)连接,公共IP为176.xx.xx.xxx。 networkingstream量由瞻博networkingSSG20防火墙(我无法控制,但有一个公共Web界面在80端口上运行)控制。 内部networking有192.168.30.0/24范围。 我有一个支持VLAN的Netgear Prosafe GS105E交换机。 我有一台戴尔服务器,带有5台虚拟机(运行Ubuntu 12.04 Srv)的VMware vSphere Hypervisor服务器(ESXi): (A)VM:文件服务器(只对本地工作站进行内部访问(E) (B)VM:Webserver(Dev)应该处理dev.domain-1.com (C)VM:Webserver(testing)应该处理test.domain-1.com (D)VM:Webserver(Accept)应该处理accept.domain-1.com 戴尔服务器有3个网卡,我可以创build虚拟交换机来处理VLAN路由。 我有一个eth0接口的多function打印机(F),只能在VLAN内访问。 现有的苹果机场也提供WiFi在同一个子网上,但我可以隐藏我的虚拟机,以便他们不能被其他人在大楼访问(VLANconfiguration我猜)。 实质上,我的目标是: 基于域的端口转发(80,443,5000,8080) dev.domain-a.com – > 192.168.1.10(VM:B) dev.domain-b.com – >“”“”“ test.domain-a.com – > 192.168.1.11(VM:C) test.domain-b.com – >“”“”“ accept.domain-a.com – > 192.168.1.12(VM:D) 限制只能从本地工作站访问文件服务器(VM:A) 能够通过VPN访问networking(和文件服务器) 相关问题: 是否必须在新的ESXi虚拟机上configuration反向代理才能从外部parsing本地计算机(Ubuntu上的Pound Reverse Proxy服务器如何)? 瞻博networkingSSG20防火墙是否需要将本地服务器/ VLAN添加到DMZ? 如果我想为端口80提供端口转发,那么瞻博networkingSSG20防火墙如何仍能访问Web(端口80)? 是否必须将规则添加到反向代理中,将stream量redirect回防火墙? 任何想法都会非常非常有帮助,以便我可以通过物业经理向外部networkingpipe理方提出请求。 […]

有没有办法将X-Forwarded-For头中的IPv6风格的IPv4地址转换为IPv4风格?

我运行一个系统,在一个鱿鱼加速器前面有一个磅反向代理,反过来在Apache2前为几个基于PHP的web应用程序供电。 Pound守护进程被configuration为将X-Forwarded-For头部发送给Apache,所以上述应用程序可以确定消息的真实来源(squid被configuration为透明地传递X-Forwarded-For头部而不需要修改)。 但是,Pound在XFF头文件中注明了IPv4地址,例如::ffff:1.2.3.4而不是简单地写成1.2.3.4 ,这会抛出应用程序。 除了修改每个应用程序以正确处理::ffff:1.2.3.4情况外,是否有一种方法可以阻止Pound使用IPv6表示法或在Apache中将IPv6表示法抢先转换回IPv4表示法?

使用Apache httpdredirect上下文path?

我想代理http://localhost:1006/为http://example.com/public/到外面的世界。 这是我的configuration: RewriteEngine On # Append a slash if necessary RewriteRule ^/public$ public/ [R,L] # Request headers: Replace http://localhost:1006/ with http://example.com/public/ ProxyPass /public/ http://localhost:1006/ # Response headers: Replace http://example.com/ with http://example.com/public/ ProxyPassReverse /public/ http://example.com/ ProxyPassReverseCookiePath / /public/ <Location /public> Require all granted </Location> 这适用于重写头文件,但服务器仍然认为它的上下文path是/而不是/public/所以当它构造的URLembedded到JSON他们是不正确的。 Httpd只重写头文件,而不是JSON文件,所以它没有做任何事情。 我不希望httpd重写JSON(我读的过程是不可靠的)。 我注意到由httpd向服务器发送的Host头包含外部主机名,它使服务器能够更正URL的那部分。 是否有一些其他的头可以设置哪些会指示服务器使用不同的上下文path? 这意味着, 有什么我可以做的httpd这将改变服务器的上下文path,而不直接改变服务器的configuration/代码?

nginx地理位置模块configuration使用地理数据库?

我已经将nginx设置为一对apache后端/上游服务器的反向代理。 使用来自MaxMind的GeoLite数据库 ,我试图根据客户国家代码来调整两个服务器之间的请求。 Nginxconfiguration: geo $geo { default default; include geo.conf; } upstream default.backend { server 192.168.0.1:8080; #Server A server 192.168.0.2:8080; #Server B } upstream DE.backend { server 192.168.0.1:8080; #Server A } upstream US.backend { server 192.168.0.2:8080; #Server B } server { listen 80; server_name myserver.com; location / { proxy_pass http://$geo.backend; proxy_set_header Host $host; proxy_set_header […]

如何使其他nginx服务器前面的nginx反向代理caching失效?

我在一个IP地址上运行Proxmox服务器,根据请求的主机将HTTP请求分发到容器。 我在Proxmox端使用nginx来侦听HTTP请求,并且在我的不同server块中使用proxy_pass指令来根据server_name分派请求。 我的容器在Ubuntu上运行,也运行一个nginx实例。 我在一个完全静态的特定网站上caching有麻烦:在文件更新之后,nginx会继续为我提供陈旧的内容,直到我: 清除/ var / cache / nginx /并重新启动nginx 或者 proxy_cache off此服务器的proxy_cache off并重新加载configuration 以下是我的configuration的详细信息: 在服务器(proxmox)上: /etc/nginx/nginx.conf : user www-data; worker_processes 8; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; use epoll; } http { ## # Basic Settings ## sendfile on; #tcp_nopush on; tcp_nodelay on; #keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; # […]

在GitLab的Nginx反向代理上configurationSSL

我在我的个人gitlab设置有一个小问题。 我想将所有来自http://gitlab.example.com的stream量redirect到https://gitlab.example.com 。 SSL确实在https://gitlab.example.com上工作,但必须专门input。 下面是我的nginx conf文件。 server { listen 192.168.1.139:443; server_name gitlab.example.com; listen 443; ssl on; ssl_certificate /etc/nginx/ssl/gitlab.crt; ssl_certificate_key /etc/nginx/ssl/gitlab.key; location / { proxy_pass http://192.168.1.139:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header x-Forwarded-For $proxy_add_x_forwarded_for; } } GitLab安装是一个综合安装。 我在configuration文件中更改了什么以允许sslredirect?

nginx反向代理在连接closures之前发送输出

我已经设置了一个反向代理与nginx webmin ..但它看起来像nginx之前不会发送HTTP响应连接closures后? 如果请求长请求(cronjob)请求结束后,输出将首先由最终用户接收? 如何设置nginx,以便在第一个字节被发送回代理(nginx)后立即发送响应? location / { proxy_pass https://xx.xx.xx.xx:10000/; }

是否值得在HTTP 1服务器前设置HTTP 2反向代理?

假设我将Nginx设置为IIS前面的反向代理,并在Nginx上为浏览器启用HTTP / 2支持。 我会看到任何好处吗?

什么是反向代理攻击?

在这个问题上,我在Apacheconfiguration文件中find了这部分代码: # rewrite rule to prevent proxy exploit RewriteCond %{REQUEST_URI} !^$ RewriteCond %{REQUEST_URI} !^/ RewriteRule .* – [R=400,L] 什么是代理漏洞? 它是如何工作的,这些线路如何防止这种攻击?

对于RoR应用程序,强制URL根为HTTPS而不是HTTP

我试图通过Apache反向代理运行Redmine(RoR)。 Mongrel提供Apache保护的纯文本页面,并向我的用户提供服务。 问题是,Redmine中的各种链接和redirect将用户发送到http://而不是https://。 pipe理页面上的设置为httpsconfiguration,但这似乎没有帮助。 我也将这一行添加到environment.rb来解决一个相对的根问题(解决它,但不是https问题): ActionController::AbstractRequest.relative_url_root = "/r/" 我如何强制Redmine总是使用https? 请注意,redirect将无法正常工作,因为我的服务器只有:443打开,因此:80个请求将不会被重写。 重写网站的数据可能工作,但似乎不理想。