Questions tagged «reverse-proxy»

反向代理是一种代理服务器,可以从一组特定的特定客户端服务器中获取资源。出于安全原因或由于缺少可用的公共IP地址而在不直接向Web服务器公开内容的情况下使用此方法。

5
Nginx反向代理+ URL重写
Nginx在端口80上运行,我正在使用它来反向代理URL并/foo通过3200以下方式传递端口: location /foo { proxy_pass http://localhost:3200; proxy_redirect off; proxy_set_header Host $host; } 这可以正常工作,但是我在port上有一个应用程序3200,我不希望将/foo其发送给该应用程序。那就是-当我访问时http://localhost/foo/bar,我只/bar希望成为该应用程序收到的路径。所以我尝试将这行添加到上面的位置块: rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent; 这将导致302重定向(URL更改),但我要301。我该怎么办?

13
如何将Nginx设置为缓存反向代理?
最近我听说Nginx已将缓存添加到其反向代理功能中。我环顾四周,但找不到太多信息。 我想将Nginx设置为Apache / Django前面的缓存反向代理:让Nginx代理向Apache发送一些(但不是全部)动态页面的请求,然后缓存生成的页面,并从缓存中为这些页面提供后续请求。 理想情况下,我想以两种方式使缓存无效: 在缓存的项目上设置到期日期 显式使缓存的项目无效。例如,如果我的Django后端已更新某些数据,我想告诉Nginx使受影响的页面的缓存无效 是否可以设置Nginx来做到这一点?怎么样?


7
使nginx在反向代理时传递上游的主机名
我使用主机名运行几个Docker容器: web1.local web2.local web3.local 这些路由由nginx根据主机名完成。我在此设置之前(在连接到互联网的另一台计算机上)有一个代理,在其中我将上游定义为: upstream main { server web1.local:80; server web2.local:80; server web3.local:80; } 以及实际的虚拟主机说明: server { listen 80; server_name example.com; location / { proxy_pass http://main; } } 现在,由于容器收到的主机名是“ main”而不是“ web1.local”,因此它们无法正确响应请求。 问题:代理请求时,如何告诉nginx在Host:标头中传递上游服务器的名称而不是上游服务器组的名称?


2
上游响应被缓冲到一个临时文件
我有一个相当大的和缓慢的(复杂的数据,复杂的前端)的Web应用程序建立RoR并担任Puma与nginx作为反向代理。查看nginx错误日志,我看到很多条目,例如: 2014/04/08 09:46:08 [warn] 20058#0: *819237 an upstream response is buffered to a temporary file /var/lib/nginx/proxy/8/47/0000038478 while reading upstream, client: 5.144.169.242, server: engagement-console.foo.it, request: "GET /elements/pending?customer_id=2&page=2 HTTP/1.0", upstream: "http://unix:///home/deployer/apps/conversationflow/shared/sockets/puma.sock:/elements/pending?customer_id=2&page=2", host: "ec.reputationmonitor.it", referrer: "http://ec.foo.it/elements/pending?customer_id=2&page=3" 我很好奇,因为对于不同的用户和不同的用户交互,页面不太可能保持相同,并且我认为在磁盘上缓冲响应不是必要/有用的。 我知道proxy_max_temp_file_size并将其设置为0,但在我看来有点尴尬(我的代理尝试缓冲,但没有文件可缓冲到……如何更快?)。 我的问题是: 如何删除[警告]并避免缓冲响应?关闭proxy_buffering还是将其设置proxy_max_temp_file_size为0 更好?为什么? 如果nginx缓冲响应:何时缓冲响应,向谁提供?为什么? 为什么默认情况下nginx打开proxy_buffering它,然后如果它实际上缓冲了响应,然后[警告]您呢? 响应何时触发该选项?服务响应需要几秒钟(几秒钟?)?这是可配置的吗? TIA,ngw。

3
nginx real_ip_header和X-Forwarded-For似乎错了
HTTP标头的维基百科描述X-Forwarded-For为: X-Forwarded-For:client1,proxy1,proxy2,... 该指令的Nginx文档real_ip_header部分读取: 该伪指令设置用于传输替换IP地址的标头名称。 如果是X-Forwarded-For,则此模块使用X-Forwarded-For标头中的最后一个 ip进行替换。[强调我的] 这两种描述似乎相互矛盾。在我们的方案中,X-Forwarded-For标头与描述的完全相同-客户端的“真实” IP地址是最左侧的条目。同样,nginx的行为是使用最正确的值-显然,这只是我们的代理服务器之一。 我的理解X-Real-IP是应该使用它来确定实际的客户端IP地址- 而不是代理。我是否缺少某些东西,或者这是nginx中的错误? 而且,除此之外,是否有人对如何使X-Real-IP标头显示最左边的值有任何建议,如的定义所示X-Forwarded-For?

3
如何使用反向代理正确处理相对URL
我在Apache中有一个反向代理设置,如下所示: 地址为www.example.com/folder的服务器A是反向代理服务器。 它映射到:地址为test.madeupurl.com的服务器B。 这种作品。但是我遇到的问题是,在www.example.com/folder上,所有相对链接的格式都是www.example.com/css/examplefilename.css,而不是www.example.com/folder/css/examplefilename。的CSS 我该如何解决? 到目前为止,我的反向代理在服务器A(www.example.com)上具有以下功能: <Location /folder> ProxyPass http://test.madeupurl.com ProxyPassReverse http://test.madeupurl.com </Location>


2
使用上游SSL将Nginx配置为反向代理
我尝试将Nginx服务器配置为反向代理,以便它从客户端收到的https请求也通过https转发到上游服务器。 这是我使用的配置: http { # enable reverse proxy proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for; upstream streaming_example_com { server WEBSERVER_IP:443; } server { listen 443 default ssl; server_name streaming.example.com; access_log /tmp/nginx_reverse_access.log; error_log /tmp/nginx_reverse_error.log; root /usr/local/nginx/html; index index.html; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_verify_client …

5
Nginx vs Apache作为反向代理,选择哪一个
可能在这里有人问过这种问题,但我找不到与我的问题真正匹配的问题。听说nginx的性能非常出色,但是Apache有更多文档,社区(阅读:专家)来获取帮助 现在我想知道的是,两台Web服务器在性能,配置的简易性,自定义级别等方面如何进行比较。在vps环境中作为REVERSE PROXY服务器? 我仍在权衡薄(红宝石Web服务器之一)的红宝石Web应用程序(不是ROR)的两者之间。 具体答案将不胜感激。一般的回答是不碰红宝石部分就可以了。我仍然对Web服务器管理不满意。

7
是否有基于名称的虚拟主机SSH反向代理?
我已经在开发环境中非常喜欢HTTP反向代理,并且发现基于DNS的虚拟主机反向代理非常有用。在防火墙上仅打开一个端口(和标准端口)可以简化管理。 我想找到类似的方法来进行SSH连接,但是运气不高。我不想简单地使用SSH隧道,因为这需要打开标准端口以外的端口范围。有什么可以做到的吗? HAProxy可以这样做吗?

4
除了错误日志,我该如何调试Nginx?
我目前正在收到相当大的HTTP洪水,这导致我的Nginx反向代理产生502错误网关。 我有一个运行nginx的前端服务器作为我的后端服务器的代理,但是这只是一堆connect() failed (110: Connection timed out) while connecting to upstream错误。他们吨。如果我绕过代理服务器连接到后端,则可以正常运行该站点,因此我知道它位于反向代理服务器中。但是,我不知道如何确定超时的原因。 有什么帮助吗? 在CentOS 6.2上运行nginx 1.2.3

3
在Apache Loadbalancer和后端之间使用Https
我在2个apache服务器之前使用配置为负载均衡器的apache(2.4)服务器。当我在负载均衡器和后端之间使用http连接时,它工作正常,但是使用https不起作用。负载均衡器的配置: SSLProxyEngine on SSLProxyVerify none SSLProxyCheckPeerCN off <Proxy balancer://testcluster> BalancerMember https://[Backend1]:443/test BalancerMember https://[Backend2]:443/test </Proxy> ProxyPass /test balancer://testcluster 后端目前仅具有自签名证书,这就是禁用证书验证的原因。 负载平衡器上的错误日志包含以下内容: [proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1]) [proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server …

3
使用NGINX代理HTTPS请求到HTTP后端
我已将nginx配置为我的外部可见的Web服务器,该服务器通过HTTP与后端通信。 我要实现的方案是: 客户端向nginx发出HTTP请求,该请求重定向到同一URL,但通过HTTPS Nginx代理通过HTTP请求到后端 nginx通过HTTP从后端接收响应。 Nginx通过HTTPS将其传递回客户端 我当前的配置(正确配置了后端)是: 服务器{ 听80; server_name localhost; 位置〜。* { proxy_pass http:// backend; proxy_redirect http://后端https:// $ host; proxy_set_header主机$ host; } } 我的问题是通过HTTP而非HTTPS发送对客户端的响应(第4步)。有任何想法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.