前一段时间我问了同样的问题,但是我想我没有把我的问题说得对。 我试图将一个整个虚拟主机域的代理逆转到另一个虚拟主机的子目录,例如http://host2.com – > http://host1.com/host2 。 Apache的默认站点文件是这样的 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName "host1.com" <Directory /srv/www/host1> Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow Allow from all </Directory> DocumentRoot /srv/www/host1 WSGIScriptAlias / /srv/www/host1/apache/django.wsgi </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName "host2.com" ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://host1.com/host2 ProxyPassReverse / http://host1.com/host2 […]
我有一个相当奇怪的情况,但是很简单,我发誓。 我有一个服务器(我们称之为主机A),它连接到互联网,我用于一些网站和其他几个目的。 我有另一个服务器(我们称之为B),它承载文件和其他一些东西,但它在防火墙和NAT之后。 我想要做的就是设置主机A上的一个特定端口接受某个端口上的TCPstream量,并通过VPN或其他点对点隧道将其转发给主机B.然后主机B将能够回应。 基本上,主机A将充当反向代理/负载均衡器,但由于主机B位于不同networking(防火墙后面)的不同位置,我希望A和B通过隧道而不是直接连接。 我知道这样做效率不高,但我相信这是对主机B相当奇怪的networking状况可用的最佳解决scheme。 我认为这个解决scheme将是fproxy和一个ipsec隧道的混合,但我很难找出如何正确设置ipsec(我从来没有使用过)。 我曾经看过OpenSwan和StrongSwan,但麻烦在于,两者似乎都是为了连接两个局域网,而且在ipsec中穿越NAT的文档似乎超出了我的理解范围。 在我的情况下,我希望隧道只能展示给两台机器,可能是作为每台机器上自己的接口。 通过这种方式,我可以设置fproxf(或另一个反向代理)来代理虚拟IP地址,该虚拟IP地址将自动将stream量传输到另一台计算机,并将该计算机上的软件显示为另一个虚拟地址。 然而,我在这里问的关键问题是因为我不知道这是否是最好的办法。 对于如何configurationipsec来启用两台机器之间的通信,我很乐意提供任何build议或build议。
我想负载平衡我的应用程序服务器,以及caching来自他们的回应。 我已经阅读了一篇可以追溯到2012年的HAProxy网站上的文章,这本来是为了澄清HAProxy和Varnish之间的混淆: http://blog.haproxy.com/2012/07/04/haproxy-and-varnish-comparison/ 本文基本上说,HAProxy只是一个反向代理负载平衡器(无caching),而Varnish是一个反向代理caching(无负载平衡),因此它们是互补的。 但是今天,我可以看到在Varnish docs中它也有负载平衡: https://www.varnish-cache.org/trac/wiki/LoadBalancing 所以我只能猜测这个function是从2012年开始引入的,现在它直接和HAProxy在负载均衡方面进行竞争。 现在考虑到我需要一个反向代理caching+负载平衡器,是真的,我可以使用一个单一的服务器只有光油,这将做到这两个? 与典型的HAProxy光油设置相比,任何限制都是可能的。
我想将来自foo.com的80和443上的所有stream量映射到内部服务器:192.168.1.101。 我有一个VirtualHost(在Ubuntu上的Apache 2.2)设置如下(注意,我不得不打破下面的超链接,因为我是一个“新用户”): <VirtualHost *:80> ServerName foo.com ServerAlias *.foo.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://192.168.1.101/ ProxyPassReverse / http://192.168.1.101/ </VirtualHost> 这对于httpstream量很有效。 但是,我似乎无法为https做同样的事情。 我努力了: 更改VirtualHost *:80到* – 但这不起作用(我需要http-> http和https-> https) 为*:443创build一个新的VirtualHost条目,redirect到http://192.168.1.101/ ,但也失败了(浏览器超时) 我在这里和其他地方做了一些search,我能find的最接近的问题就是这个 ,但是没有完全回答。 另外,出于好奇,我试图将所有端口映射到https(通过从http到https更改两个ProxyPass行(并从VH中删除:80),这也不起作用。 ? 有什么想法吗? 提前致谢。
我正在使用apache2反向代理虚拟主机。 当apache后面的服务器closures的时候,第一个到apache的请求显示错误页面。 但在随后的请求中,似乎apache延迟了一段时间,再次询问后端服务器。 在所有这段时间(这是短暂的,但在开发中,我不想延期),只有浏览器显示apache错误页面,尽pipe后端服务器已经启动。 在apache中这个设置在哪里,这是什么行为,我怎样才能将延迟时间设置为零? 编辑:我不想改变一个请求的超时。 我想改变阻塞时间。 根据我的经验,apache在再次询问一个曾经失败的后端服务器之前阻塞了一段时间的进一步请求。 Edit2:这是Apache提供的: 服务暂时不可用 由于维护停机或容量问题,服务器暂时无法处理您的请求。 请稍后再试。 Apache / 2.2.8(Ubuntu)PHP / 5.2.4-2ubuntu5.7与Suhosin-Patch proxy_html / 3.0.0服务器在本地端口80 在Firefox中按Ctrl-R 60秒后,页面终于出现。
我已经将nginx设置为负载均衡器,将代理请求反向代理到2个Apache服务器。 我已经使用ab进行了基准testing,并且每秒获得约35个请求,并在两个后端服务器(不使用ip_hash)之间分配请求。 令我困惑的是,如果我通过ab直接查询后端服务器,那么每秒可以获得约50个请求。 我已经在ab中尝试了许多不同的值,其中最常见的是具有100个并发连接的1000个请求。 任何知道为什么stream量分布在2台服务器上的结果是每秒钟的请求数量比直接打到的要less? 附加信息: 我已经尝试了1到8之间的worker_processes值,1024到8092之间的worker_connections,并尝试了keepalive 0和65。 我的主要configuration目前看起来像这样: user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; worker_rlimit_nofile 8192; events { worker_connections 2048; use epoll; } http { include /etc/nginx/mime.types; sendfile on; keepalive_timeout 0; tcp_nodelay on; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } 我有一个虚拟主机(在可用的站点中),通过本地networkingredirect到/ 2后端的所有内容。
我试图设置Nginx使用proxy_pass转发请求到几个后端服务。 其中一些不支持在子文件夹下访问,所以我必须添加一个重写来剥离附加的子文件夹,以允许从同一端口访问它们。 有关改进重写的任何提示? curl输出; :~$ curl -I -k https://example.net/internal HTTP/1.1 404 Not Found Server: nginx/1.0.5 Date: Thu, 19 Jan 2012 22:30:46 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive Content-Length: 145 :~$ curl -I -k https://example.net/internal/ HTTP/1.1 200 OK Server: nginx/1.0.5 Date: Thu, 19 Jan 2012 22:31:12 GMT Content-Type: text/html Connection: keep-alive Content-Length: 1285 Accept-Ranges: bytes Last-Modified: […]
我正在尝试使用代理MongoDB的REST接口的HTTPvalidation来设置反向代理。 到目前为止,我有这样的: server { listen 80; server_name tld.example.com; charset utf-8; access_log /home/jill/logs/nginx.access.log main; # Redirect all HTTP traffic to HTTPS URL rewrite ^(.*) https://tld.example.com$1 permanent; } server { listen 443; server_name tld.example.com; ssl on; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 SSLv3; ssl_ciphers HIGH:!ADH:!MD5:@STRENGTH; ssl_session_cache shared:TLSSL:16m; ssl_session_timeout 10m; ssl_certificate /path/to/cert/tld.example.com.bundle.crt; ssl_certificate_key /path/to/cert/tld.example.com.key; gzip on; gzip_vary on; gzip_comp_level 6; […]
通常的看法是,置身于可信networking(如Exchange)内部的内部应用程序,只要它们暴露于Internet,就应该是反向代理服务器。 Microsoftbuild议使用UAG / TMG,因为它具有一些内置的安全function。 mod_security在apache反向代理场景中有类似的作用。 但是,我发现使用反向代理的安装非常多,但是这个额外的安全层没有被使用。 为什么在这种情况下甚至打扰了反向代理? 如果你不使用一些L7逻辑来减轻攻击,那么添加代理层与直接暴露应用程序的好处是什么?
我正在尝试重写以我的网站为目标的url,以便将所有网域名称重写为www.example.com并具有以下configuration: mysite块 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name _; rewrite ^ $scheme://www.example.com$request_uri permanent; location / { # Allow for large file uploads client_max_body_size 0; proxy_http_version 1.1; proxy_pass http://mysite; proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } tomcat服务器块 server { listen 80; root /opt/site2/www; […]