Questions tagged «reverse-proxy»

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

1
为Socket.IO 1.0配置Apache 2.4 mod_proxy_wstunnel
我正在尝试配置Apache 2.4,以使用mod_proxy_wstunnel将socket.io的websocket连接代理到node.js websocket服务器。我们可以在socket.io 0.9上正常工作,但是在1.0版本中,他们将套接字端点更改为查询参数,现在我在使用正确的代理指令配置apache时遇到了麻烦。 的所有请求/socket.io/?EIO=N&transport=websocket(其中N是任意数字,通常为2)都需要转发给ws://localhost:8082/socket.io/,但是所有其他请求都需要转发给http://localhost:8082/socket.io/。 我已经尝试了以下两个配置的变体: ProxyPass /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPassReverse /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ 。 RewriteRule /socket.io/?EIO=([0-9]+)&transport=websocket ws://localhost:8082/socket.io/ [QSA,P] ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ 我从谷歌搜索中了解到ProxyPass和Locations无法定位查询字符串,因此这里还有其他选择吗?这些路径被硬编码到socket.io中,因此如果没有分叉整个库,我就无法更改它们。

7
Web服务器前的反向代理是否可以提高安全性?
第三方安全专家建议我们在Web服务器(全部托管在DMZ中)之前运行反向代理,以作为最佳实践安全措施。 我知道这是一种典型的推荐体系结构,因为它在Web应用程序之前提供了另一种安全级别,可以防止黑客入侵。 但是,由于反向代理很乐意在用户和内部Web服务器之间来回穿梭HTTP,因此它无法提供任何防止Web服务器本身被黑客攻击的措施。换句话说,如果您的Web应用存在安全漏洞,则代理将无法提供任何有意义的安全性。 鉴于攻击Web应用程序的风险远比攻击代理的风险高得多,在中间添加一个额外的框真的能带来很多收益吗?我们不会使用反向代理的任何缓存功能-只是一个笨拙的工具来回传送数据包。 我还有其他想念的地方吗?反向代理HTTP数据包检查的性能是否如此出色,可以检测到有意义的攻击而没有主要的性能瓶颈,或者这仅仅是Security Theater的另一个示例? 反向代理是MS ISA的缺点。

2
在Nginx中的位置下服务多个代理端点
我有几个API端点,我想从一个位置提供服务,/api并且子路径将传递到不同的端点。具体来说,我希望可以在以下位置使用webdis并在上使用/api专有的API /api/mypath。 我不担心与webdis API发生冲突,因为我使用的子路径不太可能与redis命令名称发生冲突,并且对API的设计有完全的控制权以避免冲突。 这是我一直在使用的测试服务器上的配置文件: server { listen 80; server_name localhost; server_name 192.168.3.90; server_name 127.0.0.1; location / { root /home/me/src/phoenix/ui; index index.html; } # temporary hardcoded workaround location = /api/mypath/about { proxy_pass http://localhost:3936/v1/about; } location /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://localhost:7379/; } # tried this but it gives …

2
如何根据Nginx中的子域将代理反向到不同的地方?
我有多个子域,都指向一台计算机和一个IP地址。在这台机器上,我想让nginx充当反向代理,并且我希望它使用哪个子域来访问该机器,然后将其反向代理到其他服务器。我所见过的使用nginx作为反向代理的所有示例都使用location,但是据我了解,这仅适用于路径,不适用于不同的子域。我怎样才能实现自己想要的?

1
使用Nginx将子路径重定向到外部主机
我需要在Nginx中创建一个非常简单的映射,将子路径重定向到位于同一子网中的另一台服务器。 Nginx服务器:192.168.0.2 Tomcat服务器:192.168.0.3:8443 我试图把它放在服务器部分 location /tomcatapi/ { rewrite /tomcatapi/(.*) $1 break; proxy_pass http://192.168.0.3:8443; } 但是我只能访问http://www.myservice.com/tomcatapi/的页面是一个500错误页面,在nginx日志文件中,我遇到以下错误: the rewritten URI has a zero length 我在这个会议上缺少什么?

3
如果不存在,请在apache中设置标头
我有一个注入一些标头的代理,但是我想对其进行修改,以便仅在标头不存在的情况下才设置标头: <Location /api> RequestHeader set MY_HEADER "value" ProxyPass http://127.0.0.1:8000/api ProxypassReverse http://127.0.0.1:8000/api </Location> 这可能吗?


2
清漆与其他反向代理
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在与一个将Varnish部署为所有Web流量的缓存反向代理的组织合作。他们的流量构成了许多由客户生成的动态网站,而通常的静态资产集合却悬而未决。 当我尝试喜欢清漆(原则上我认为它具有很好的体系结构)时,我在管理它和解决出现的问题时遇到了一些麻烦,因此我想知道它是否真的是正确的选择。过去,我已经将鱿鱼用作反向代理,但没有以相同的角色使用,因此我没有明确的比较基础。 我的问题针对的是已将清漆投入生产或针对替代品进行了认真评估的人员:您是否坚持使用清漆,还是最终使用了另一个反向代理?您坚持使用或切换的重点是什么?如果您确实使用了其他东西,最终使用了什么?

1
如何配置nginx使其与Express兼容?
我正在尝试配置nginx,以便它proxy_pass向我的节点应用程序发出请求。关于StackOverflow的问题有很多支持:https ://stackoverflow.com/questions/5009324/node-js-nginx-and-now ,我从那里开始使用config。 (但是由于问题是关于服务器配置的,因此应该在ServerFault上) 这是nginx的配置: server { listen 80; listen [::]:80; root /var/www/services.stefanow.net/public_html; index index.html index.htm; server_name services.stefanow.net; location / { try_files $uri $uri/ =404; } location /test-express { proxy_pass http://127.0.0.1:3002; } location /test-http { proxy_pass http://127.0.0.1:3003; } } 使用普通节点: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': …

2
反向代理中的Apache URL重写
我将Apache部署在Karaf托管的应用程序之前(Apache和Karaf在单独的服务器上)。我希望Apache充当反向代理,并且还隐藏URL的一部分。 直接从应用服务器获取应用程序登录页面的URL是http://app-server:8181/jellyfish。页面由Karaf中运行的Jetty实例提供服务。当然,除了反向代理服务器之外,所有防火墙都通常会阻止此行为。 在关闭防火墙的情况下,如果您单击此URL,则Jetty会加载登录页面。浏览器的地址栏正确更改为http://app-server:8181/jellyfish/login?0,一切正常。 我想要的是http://web-server(即从根目录)映射到应用服务器上的Jetty,而jellyfish取消了应用的名称()。例如,浏览器将更改为显示http://web-server/login?0在地址栏中,并且所有后续URL和内容都将由Web服务器的域提供,而不会造成jellyfish混乱。 我可以使用以下配置(代码段)将Apache用作简单的反向代理:- ProxyPass /jellyfish http://app-server:8181/jellyfish ProxyPassReverse / http://app-server:8181/ ...但是这需要浏览器的URL包含在内jellyfish,转到根URL(http://web-server)会显示404 Not Found。 我花了很多时间尝试使用mod_rewrite带有和不带有它的[P]标志的方法来解决这个问题,但是没有成功。然后ProxyPassMatch,我尝试了该指令,但似乎也无法完全正确。 这是当前配置,已加载到/etc/apache2/sites-available/Web服务器上。请注意,这里有一个本地托管的图像目录。我还保留了mod_rewrite代理漏洞利用保护,并抑制了一些mod_security会带来误报的规则。 <VirtualHost *:80> ServerAdmin admin@drummer-server ServerName drummer-server ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /images/ "/var/www/images/" RewriteEngine On RewriteCond %{REQUEST_URI} !^$ RewriteCond %{REQUEST_URI} !^/ RewriteRule .* - [R=400,L] ProxyPass /images ! ProxyPassMatch ^/(.*) http://granny-server:8181/jellyfish/$1 …

1
带有ProxyPass的Apache httpd错误“代理:ap_get_scoreboard_lb”
我设置了apache来代理tomcat,但是当我定位页面时却遇到了以下错误。有时会出现空白页或503: [错误] [Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(2) failed in child 29611 for worker proxy:reverse [Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(1) failed in child 29611 for worker https://localhost:8443/ [Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(0) failed in child 29611 for worker http://localhost:8080/ 我在虚拟机上配置了两个虚拟主机,如下所示: [http主机] <VirtualHost …

2
Nginx中子目录的反向代理
我想设置我的VPS为我的Heroku应用反向代理(http://lovemaple.heroku.com)所以,如果我去拜访mysite.com/blog我就能得到上述内容中http://lovemaple.heroku.com 我按照Apache Wiki上的说明进行操作。 location /couchdb { rewrite /couchdb/(.*) /$1 break; proxy_pass http://localhost:5984; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 我根据自己的情况进行了更改: location /blog { rewrite /blog/(.*) /$1 break; proxy_pass http://lovemaple.heroku.com; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 当我访问时mysite.com/blog,页面显示出来,但是无法获取js / css文件(404)。 他们的联系变成了,mysite.com/style.css但不是mysite.com/blog/style.css。 有什么问题,我该如何解决?

4
配置IIS 7反向代理以连接到TeamCity Tomcat
我们已经配置了IIS 7 Web服务器,并希望在同一台计算机上使用Tomcat为TeamCity安装创建反向代理。 IIS服务器的网站是https://somesite和我想的TeamCity显示为https://somesite/teamcity重定向到http://localhost:portnumber。 我已经安装了IIS URL重写扩展名和“ 应用程序请求路由”,以尝试设置反向代理,但无法使其正常工作。 我找到的最接近的答案是一个旧的StackOverflow问题:https ://stackoverflow.com/questions/331755/how-do-i-setup-teamcity-for-public-access-over-https ,不幸的是它没有任何作用例。 我已经搜索了很多,但似乎找不到相关的示例。 任何帮助表示赞赏!

2
一些Nginx反向代理配置每天停止工作一次
我有一个Nginx反向代理,可以代理从外部亚马逊ELB到内部ELB的请求。 我有6个处理请求的后端实例。启用了站点的配置如下所示,但是端口号和proxy_pass不同。其他所有内容都相同: server { listen 3000; location / { proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000; include /etc/nginx/proxy.conf; } } 大约每隔24小时,其中一种配置就会停止工作。所有其他代理都可以正常工作。如果我重新启动nginx,所有配置将再次起作用。error.log中没有任何内容,访问日志,syslog或dmesg中也没有任何异常。 这是已知的吗?我的代理配置有问题吗?我还可以查看其他日志吗?


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.