Tag: 反向代理

Node.JS前面的反向代理的优点

将nginx或其他Web服务器作为Node.JS之前的反向代理运行的优点是什么? 它提供了什么? (这个问题的目的是关于networking应用程序,而不是网页)。 谢谢。

HAProxy + WebSocket断开连接

我正在使用HAProxy将子域上的请求发送到node.js应用程序。 我无法让WebSockets工作。 到目前为止,我只能够让客户端build立一个WebSocket连接,但之后会有一个断开连接。 我在Ubuntu上。 我一直在使用各种版本的socket.io和node-websocket-server 。 客户端是最新版本的Safari或Chrome。 HAProxy版本是1.4.8 这是我的HAProxy.cfg global maxconn 4096 pidfile /var/run/haproxy.pid daemon defaults mode http maxconn 2000 option http-server-close option http-pretend-keepalive contimeout 5000 clitimeout 50000 srvtimeout 50000 frontend HTTP_PROXY bind *:80 timeout client 86400000 #default server default_backend NGINX_SERVERS #node server acl host_node_sockettest hdr_beg(host) -i mysubdomain.mydomain use_backend NODE_SOCKETTEST_SERVERS if host_node_sockettest backend NGINX_SERVERS server […]

导致504网关超时的Nginx反向代理

我使用Nginx作为反向代理服务器,它接受请求,然后执行proxy_pass从端口8001上运行的上游服务器获取实际的Web应用程序。 如果我去mywebsite.com或做一个wget,60秒后我得到一个504网关超时…但是,如果我加载mywebsite.com:8001,应用程序加载如预期! 所以有些东西不允许nginx与上游服务器通信。 所有这一切都开始后,我的托pipe公司重置机器我的东西在运行,之前没有问题是如此之多。 这是我的虚拟主机服务器块: server { listen 80; server_name mywebsite.com; root /home/user/public_html/mywebsite.com/public; access_log /home/user/public_html/mywebsite.com/log/access.log upstreamlog; error_log /home/user/public_html/mywebsite.com/log/error.log; location / { proxy_pass http://xxx.xxx.xxx.xxx:8001; 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; } } 和我的Nginx错误日志的输出: 2014/06/27 13:10:58 [error] 31406#0:* 1上游超时(110:连接超时)连接上游时,客户端:xxx.xx.xxx.xxx,服务器:mywebsite.com,请求:“GET / HTTP / 1.1”,上游:“ http://xxx.xxx.xxx.xxx:8001/ ”,主机:“mywebsite.com”

如何直接使用NGINX服务所有现有的静态文件,但将其余的代理代理到后端服务器。

location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if (-f $request_filename) { access_log off; expires 30d; break; } if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; # backend server listening break; } } 上面将直接使用Nginx提供所有现有的文件(例如Nginx只显示PHP源代码),否则将请求转发给Apache。 我需要从规则中排除* .php文件,以便对* .php的请求也传递给Apache并进行处理。 我希望Nginx处理所有的静态文件和Apache来处理所有的dynamic的东西。 编辑:有白名单的方法,但它不是很优雅,看到所有这些扩展名,我不想这个。 location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { access_log off; expires 30d; } location / { proxy_set_header X-Real-IP […]

与远程服务器进行SSL握手期间出错

我有Apache2 (在443上进行监听)和一个在Ubuntu上运行在Tomcat7 (监听8443)的web应用程序。 我将apache2设置为反向代理,以便通过端口443而不是8443访问Web应用程序。此外,我需要不仅在浏览器和apache2之间进行SSL通信,还要在apache2和tomcat7之间进行SSL通信,因此我在apache2和tomcat7上都设置了SSL 。 如果我尝试通过直接联系tomcat7访问networking应用程序,一切都很好。 问题是,当我尝试通过apache2(反向代理)访问tomcat的web应用程序,在浏览器上出现错误: Proxy Error The proxy server could not handle the request GET /web_app. Reason: Error during SSL Handshake with remote server

代理与express.js

为了避免同域AJAX问题,我希望我的node.js Web服务器将所有请求从URL /api/BLABLA到另一个服务器,例如other_domain.com:3000/BLABLA ,并返回给用户与此远程服务器相同的事情服务器透明地返回。 所有其他URL(在/api/*旁边)都要直接提供,不需要代理。 如何通过node.js + express.js来实现这一点? 你能给一个简单的代码示例吗? (Web服务器和远程3000服务器都在我的控制之下,都使用express.js运行node.js) 到目前为止,我发现这个https://github.com/nodejitsu/node-http-proxy/ ,但阅读文档没有让我更聪明。 我结束了 var proxy = new httpProxy.RoutingProxy(); app.all("/api/*", function(req, res) { console.log("old request url " + req.url) req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part console.log("new request url " + req.url) proxy.proxyRequest(req, res, { host: "other_domain.com", port: 3000 }); }); 但没有什么是返回到原来的Web服务器(或最终用户),所以没有运气。

代理服务器和反向代理服务器的区别

代理服务器和反向代理服务器有什么区别?

从Docker容器内部,如何连接到本机的本地主机?

所以我有一个在Docker容器中运行的Nginx,我有一个在localhost上运行的mysql,我想从我的Nginx中连接到MySql。 MySql是在本地主机上运行的,而不是向外界暴露一个端口,所以它绑定在本地主机上,不绑定在机器的IP地址上。 有没有办法从这个docker集装箱连接到这个MySql或本地主机上的任何其他程序?